From owner-cvs-all Mon Oct 14 22:40:11 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 29A6737B401; Mon, 14 Oct 2002 22:40:08 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E145243EC2; Mon, 14 Oct 2002 22:40:07 -0700 (PDT) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id g9F5e7Mt022616; Mon, 14 Oct 2002 22:40:07 -0700 (PDT) (envelope-from marcel@repoman.freebsd.org) Received: (from marcel@localhost) by repoman.freebsd.org (8.12.6/8.12.3/Submit) id g9F5e7ls022614; Mon, 14 Oct 2002 22:40:07 -0700 (PDT) Message-Id: <200210150540.g9F5e7ls022614@repoman.freebsd.org> From: Marcel Moolenaar Date: Mon, 14 Oct 2002 22:40:07 -0700 (PDT) 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 X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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