This is the mail archive of the glibc-linux@ricardo.ecn.wfu.edu mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

ld.so cares about /usr/X11R6?


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]