svn commit: r180431 - in head/sys: kern sys

Dag-Erling Smørgrav des at des.no
Tue Jul 22 12:52:51 UTC 2008


"Peter Wemm" <peter at wemm.org> writes:
> I think you should leave it in Juniper's tree for a tad longer:
> ../../../kern/link_elf_obj.c:88: error: redefinition of 'struct elf_file'
> ../../../kern/link_elf_obj.c:119: error: redefinition of typedef 'elf_file_t'
> ../../../sys/link_elf.h:133: error: previous declaration of
> 'elf_file_t' was here
> [...]
> I forgot to mention.. the fact that kld's happen to currently be ELF
> is very specifically and deliberately not part of any public API.  All
> references go via linker_* because there is no guarantee about elf,
> a.out, pecoff, raw binary, whatever.

Speaking of which, as the compiler error demonstrates, amd64 uses a
different file format and a different linker for kernel modules than the
other platforms (ELF relocatable object vs ELF shared object).  I never
understood the reason for this.  I ran into it when I tried to hack the
kernel linker to ignore debugging information when loading a module, so
we wouldn't have to install two copies of every module.  IIRC, it was
easy to do for shared objects but hard to do for relocatable objects.
Can you bring any light to this issue?

DES
-- 
Dag-Erling Smørgrav - des at des.no


More information about the cvs-src mailing list