This is the mail archive of the
glibc-linux@ricardo.ecn.wfu.edu
mailing list for the glibc project.
ld.so cares about /usr/X11R6?
- To: glibc-linux@ricardo.ecn.wfu.edu
- Subject: ld.so cares about /usr/X11R6?
- From: Robert Siemer <siemer@i309.hadiko.de>
- Date: Wed, 26 May 1999 23:33:12 +0200 (CEST)
- Reply-To: glibc-linux@ricardo.ecn.wfu.edu
Hi!
A old binary linked against libc5 has problems to run under my
libc6-Environment:
siemer@panorama:/usr/X11R6-libc5/bin > ldd ghostview
/lib/ld-linux.so.1 => /lib/ld-linux.so.1 (0x4000d000)
libXaw.so.6 => /usr/X11R6/lib/libXaw.so.6 (0x40014000)
[...]
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x400cd000)
libm.so.5 => /lib/libm.so.5 (0x4016e000)
libc.so.5 => /lib/libc.so.5 (0x40177000)
libc.so.6 => not found
ld-linux.so.2 => /lib/ld-linux.so.2 (0x40233000)
libc.so.6 => not found
[...]
libc.so.6 => not found
There are some libraries, which are not correct choosen (e.g.
libXaw.so.6), but these are available as ELF-static (at least libc5):
siemer@panorama:/usr/X11R6-libc5/bin > for i in `ldd ghostview | grep -v
libc | cut -d '=' -f 1 `; do /sbin/ldconfig -p | grep "$i"; done
ld-linux.so.1 (ELF) => /lib/ld-linux.so.1
libXaw.so.6 (ELF) => /usr/X11R6-libc5/lib/libXaw.so.6
libXaw.so.6 (libc6) => /usr/X11R6-libc6/lib/libXaw.so.6
[...]
libX11.so.6 (ELF) => /usr/X11R6-libc5/lib/libX11.so.6
libX11.so.6 (libc6) => /usr/X11R6-libc6/lib/libX11.so.6
libm.so.5 (libc5) => /lib/libm.so.5
ld-linux.so.2 (ELF) => /usr/i586-linux-libc6/lib/ld-linux.so.2
ld-linux.so.2 (ELF) => /lib/ld-linux.so.2
Why does the ld.so take the libs from X11R6? There is no /X11R6/ in
ld.so.conf:
siemer@panorama:/usr/X11R6-libc5/bin > grep X11R6 /etc/ld.so.conf
/usr/X11R6-libc5/lib
/usr/X11R6-libc6/lib
What I tried, but what didnt work:
- export LD_LIBRARY_PATH=/lib:/usr/X11R6-libc5/lib
- export LD_PRELOAD=/lib/ld-linux.so.1
- ld.so.conf: /usr/X11R6-libc5/lib=libc5
After hours:
Removing the symlink X11R6 (pointed to X11R6-libc6) solves the problem:
siemer@panorama:/usr/X11R6-libc5/bin > ldd ghostview
/lib/ld-linux.so.1 => /lib/ld-linux.so.1 (0x4000d000)
libXaw.so.6 => /usr/X11R6-libc5/lib/libXaw.so.6 (0x40014000)
libXmu.so.6 => /usr/X11R6-libc5/lib/libXmu.so.6 (0x4004b000)
libXt.so.6 => /usr/X11R6-libc5/lib/libXt.so.6 (0x4005d000)
libSM.so.6 => /usr/X11R6-libc5/lib/libSM.so.6 (0x4009f000)
libICE.so.6 => /usr/X11R6-libc5/lib/libICE.so.6 (0x400a8000)
libXext.so.6 => /usr/X11R6-libc5/lib/libXext.so.6 (0x400bd000)
libX11.so.6 => /usr/X11R6-libc5/lib/libX11.so.6 (0x400c8000)
libm.so.5 => /lib/libm.so.5 (0x40167000)
libc.so.5 => /lib/libc.so.5 (0x40170000)
Question:
Why does ld.so cares more about my directory-hierarchie and its symlinks
instead to decide from LD_LIBRARY_PATH and /etc/ld.so.cache??
How can I run this application even with a symlink from /usr/X11R6 to
X11R6-libc6?
Thanks for any suggestion!
Bye,
Rob