From owner-freebsd-bugs Fri Jun 15 23:50:28 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 0325C37B40A for ; Fri, 15 Jun 2001 23:50:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.3/8.11.3) id f5G6o1a30862; Fri, 15 Jun 2001 23:50:01 -0700 (PDT) (envelope-from gnats) Received: from topperwein.dyndns.org (acs-24-154-28-172.zoominternet.net [24.154.28.172]) by hub.freebsd.org (Postfix) with ESMTP id 8DB4137B401 for ; Fri, 15 Jun 2001 23:48:56 -0700 (PDT) (envelope-from behanna@topperwein.dyndns.org) Received: (from behanna@localhost) by topperwein.dyndns.org (8.11.4/8.11.4) id f5G6nqP89676; Sat, 16 Jun 2001 02:49:52 -0400 (EDT) (envelope-from behanna) Message-Id: <200106160649.f5G6nqP89676@topperwein.dyndns.org> Date: Sat, 16 Jun 2001 02:49:52 -0400 (EDT) From: Chris BeHanna Reply-To: behanna@topperwein.dyndns.org To: FreeBSD-gnats-submit@freebsd.org Cc: jdp@polstra.com X-Send-Pr-Version: 3.113 Subject: bin/28191: rtld-elf apparently ignores LD_LIBRARY_PATH Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 28191 >Category: bin >Synopsis: rtld-elf ignores LD_LIBRARY_PATH >Confidential: no >Severity: critical >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jun 15 23:50:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Chris BeHanna >Release: FreeBSD 4.3-STABLE i386 >Organization: >Environment: System: FreeBSD topperwein.dyndns.org 4.3-STABLE FreeBSD 4.3-STABLE #0: Tue Jun 12 09:06:55 EDT 2001 root@topperwein.dyndns.org:/usr/obj/usr/src/sys/TOPPERWEIN i386 CPU: AMD Athlon, 1.333 GHz (AMD K-7) Affected file: /usr/libexec/ld-elf.so.1 >Description: The XFree86 4.1.0_4 port fails on this box when attempting to build the Type 1 fonts. In particular, this line fails: LD_LIBRARY_PATH=../../../exports/lib XFT_CONFIG=../../../lib/Xft/XftConfig ../../../exports/bin/xftcache . /usr/libexec/ld-elf.so.1: ../../../exports/bin/xftcache: Undefined symbol "XftDirSave" where `pwd` is /usr/ports/x11/XFree86-4/work/xc/programs/xftcache. According to rtld(1), LD_LIBRARY_PATH should supercede the default search path except for setuid and setgid executables, of which xftcache is neither. I verified this problem by running the command by hand and by doing "LD_LIBRARY_PATH=../../../exports/lib ldd xftcache". The output pointed to the installed /usr/X11R6/lib/libXft.so instead of the one within the XFree86 build tree and, indeed the installed libXft.so doesn't have the symbol XftDirSave, but the one in the build tree does. Note that ldconfig -r reveals an entry for libXft.so that does indeed point to /usr/X11R6/lib/libXft.so. That said, if I can't selectively override that by setting LD_LIBRARY_PATH on the command line, that's a big problem. From the comment from find_library(), I see that the executable's RPATH entry takes precedence over LD_LIBRARY_PATH. If that's the case, then how can LD_LIBRARY_PATH be used to force an executable to bootstrap itself from a build tree? >How-To-Repeat: Attempt to build XFree86 4.1.0_4 on an Athlon running 4.3-STABLE from the date indicated in uname -a, above. >Fix: Change find_library() to look in LD_LIBRARY_PATH before RPATH for non-setuid, non-setgid executables: --- rtld.c Mon May 14 01:01:35 2001 +++ rtld.c.new Sat Jun 16 02:45:03 2001 @@ -803,8 +803,8 @@ dbg(" Searching for \"%s\"", name); if ((refobj != NULL && - (pathname = search_library_path(name, refobj->rpath)) != NULL) || (pathname = search_library_path(name, ld_library_path)) != NULL || + (pathname = search_library_path(name, refobj->rpath)) != NULL) || (pathname = search_library_path(name, gethints())) != NULL || (pathname = search_library_path(name, STANDARD_LIBRARY_PATH)) != NULL) return pathname; If I completely misunderstand, please let me know, and I'll raise no fuss about closing this PR. >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message