From owner-cvs-all Fri Apr 26 22:32:54 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id D787C37B404; Fri, 26 Apr 2002 22:32:51 -0700 (PDT) Received: (from marcel@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g3R5Wpj17829; Fri, 26 Apr 2002 22:32:51 -0700 (PDT) (envelope-from marcel) Message-Id: <200204270532.g3R5Wpj17829@freefall.freebsd.org> From: Marcel Moolenaar Date: Fri, 26 Apr 2002 22:32:51 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/libexec/rtld-elf rtld.c src/libexec/rtld-elf/ia64 reloc.c 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/04/26 22:32:51 PDT Modified files: libexec/rtld-elf rtld.c libexec/rtld-elf/ia64 reloc.c Log: Fix handling of weak references to undefined symbols on ia64: o Set st_shndx for sym_zero to SHN_UNDEF instead of SHN_ABS. This gives us something to reliably test against. o For weak references to undefined sysmbols (as indicated by having st_shndx equals SHN_UNDEF) in the context of OPDs, the address of the OPD is to be zero, not the address of the function it contains. o For weak references to undefined symbols in all other cases (only DIR64LSB at this time), the actual relocated value is to be zero, not the value prior to relocating. Roughly speaking, weak references to undefined symbols are no-ops. Tested on: i386, ia64 Revision Changes Path 1.5 +21 -29 src/libexec/rtld-elf/ia64/reloc.c 1.65 +1 -1 src/libexec/rtld-elf/rtld.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message