amd64 kernel modules: mapping sections to addresses

Navdeep Parhar np at FreeBSD.org
Mon Jun 21 20:44:35 UTC 2010


On Mon, Jun 21, 2010 at 04:10:45PM -0400, John Baldwin wrote:
> On Monday 21 June 2010 11:57:17 am Andriy Gapon wrote:
> > on 21/06/2010 18:43 John Baldwin said the following:
> > > np@ has a patch to gdb to fix this for kgdb.  I haven't committed it as it 
> > > patched gdb internals and wasn't in a kgdb-specific place, but I'm not 
> sure of 
> > > a better way to fix kgdb.
> > 
> > Oh, yes, section mapping is done in common gdb code.
> > Perhaps kld.c shouldn't call build_section_table, but directly call
> > bfd_map_over_sections with a custom variant of add_to_section_table?
> > Can you please share the patch?
> 
> It was deeper level than that, I'd have to dig it up.

I'm using this patch these days:
http://people.freebsd.org/~np/kgdb+kld+amd64.diff

The changes to the kernel linker were not required originally.  See this
for why they had to be made:
http://lists.freebsd.org/pipermail/freebsd-hackers/2009-November/030093.html

The patch is quite crude and I have no idea how it behaves on other
platforms.

Regards,
Navdeep

> 
> > Still, what about a small tool, elf(3)-base porgram or objdump+objcopy shell
> > script, that would set section addresses in amd64 .ko (relocatable object 
> file)
> > similarly to how they are set in i386 .ko (full-blown DSO)?
> > Or is this too much useless hassle?
> 
> No idea.  If this worked and just let gdb work automatically that would be a 
> nice fix to just put into the build process.
> 
> -- 
> John Baldwin


More information about the freebsd-amd64 mailing list