Date: Mon, 14 Oct 2002 22:40:07 -0700 (PDT) From: Marcel Moolenaar <marcel@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ia64/ia64 elf_machdep.c src/sys/kern link_elf.c src/sys/sys linker.h Message-ID: <200210150540.g9F5e7ls022614@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
marcel 2002/10/14 22:40:07 PDT
Modified files:
sys/ia64/ia64 elf_machdep.c
sys/kern link_elf.c
sys/sys linker.h
Log:
Fix kernel module loading on ia64. Cross-module function calls
were improperly relocated due to faulty logic in lookup_fdesc()
in elf_machdep.c. The symbol index (symidx) was bogusly used for
load modules other than the one the relocation applied to. This
resulted in bogus bindings and consequently runtime failures.
The fix is to use the symbol index only for the module being
relocated and to use the symbol name for look-ups in the
modules in the dependent list. As such, we need a function to
return the symbol name given the linker file and symbol index.
Revision Changes Path
1.7 +11 -4 src/sys/ia64/ia64/elf_machdep.c
1.63 +12 -0 src/sys/kern/link_elf.c
1.33 +1 -0 src/sys/sys/linker.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210150540.g9F5e7ls022614>
