Netscape 3.x na glibc a RedHAT odbornik ??? delsi
Zdenek Kabelac
kabi na fi.muni.cz
Úterý Září 15 13:39:31 CEST 1998
Michal Krause wrote:
>
> Zdenek Kabelac wrote:
>
> No na RH 5.1 se mi deji tyhle dve veci:
> a) zadny libc program neni schopen najit Xove knihovny bez LD_LIBRARY_PATH
> b) vsechny mi konci SIGSEGVem a dumpnutym core (napr. i instalace StarOfficu)
>
Ale zkousel jsem chvili pracovat i se systemem RedHat
(Abych byl konkretnejsi tak s tim, ktery spravcuje sam velky mistr :-)
A nestacil jsem se divit.
Nejprve, jak se k prikazu: ldd /packages/run/netscape/3.04/netscape
stavi cisty Debian:
libXt.so.6 => /usr/lib/libc5-compat/libXt.so.6 (0x4000e000)
libSM.so.6 => /usr/lib/libc5-compat/libSM.so.6 (0x40050000)
libICE.so.6 => /usr/lib/libc5-compat/libICE.so.6 (0x40059000)
libXmu.so.6 => /usr/lib/libc5-compat/libXmu.so.6 (0x4006e000)
libXpm.so.4 => /usr/lib/libc5-compat/libXpm.so.4 (0x40080000)
libXext.so.6 => /usr/lib/libc5-compat/libXext.so.6 (0x4008e000)
libX11.so.6 => /usr/lib/libc5-compat/libX11.so.6 (0x40099000)
libdl.so.1 => /lib/libdl.so.1 (0x40137000)
libc.so.5 => /lib/libc.so.5 (0x4013a000)
A nyni nasleduji vystupy z RedHat na tentyz prikaz:
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x40003000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40046000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4004e000)
libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x40062000)
libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x40074000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40081000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4008c000)
libdl.so.1 => /lib/libdl.so.1 (0x40131000)
libc.so.5 => not found
libc.so.6 => /lib/libc.so.6 (0x40134000)
/lib/ld-linux.so.1 => /lib/ld-linux.so.2 (0x2aaaa000)
po rucnim doplneni promenne LD_LIBRARY_PATH na /usr/i486-linux-libc5/lib/
kde jsou umisteny libc5 knihovny z baliku: libc-5.3.12-27.rpm
se vypis RedHat-u sice vylepsil:
$
$ ldd /packages/run/netscape/3.04/netscape
shell-init: could not get current directory: getwd: cannot access parent
directories
job-working-directory: could not get current directory: getwd: cannot
access parent directories
libXt.so.6 => /usr/i486-linux-libc5/lib/libXt.so.6 (0x40000000)
libSM.so.6 => /usr/i486-linux-libc5/lib/libSM.so.6 (0x4003e000)
libICE.so.6 => /usr/i486-linux-libc5/lib/libICE.so.6 (0x40046000)
libXmu.so.6 => /usr/i486-linux-libc5/lib/libXmu.so.6 (0x4005c000)
libXpm.so.4 => /usr/i486-linux-libc5/lib/libXpm.so.4 (0x4006d000)
libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6 (0x4007b000)
libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6 (0x40085000)
libdl.so.1 => /usr/i486-linux-libc5/lib/libdl.so.1 (0x40118000)
libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x4011b000)
$
ale co me mate je:
- shell-init: warning hlaseni, ktere opet zmizi, pokud je LD_LIBRARY_PATH
nastavena zpet - z cehoz vyvozuji, ze RedHat linker si zrejme nespravne
nacita knihovny.
- system si naprosto vubec nekontroluje jake knihovny jsou k binarce
linkovany
a umoznuje soucasne pripojit verzi libc5 i libc6
- a tento bod povazuji za vubec nejzajimavejsi - presto, ze system
k libc5 binarni verzi netscape3.04 natrvdo prilinkuje libc6 knihovny
alespon podle toho co pise ldd, program presto funguje.
Dokonce system pracuje, pokud k binarce pripoji soucasne libc5 i libc6.
V tomto pripade by me zajimalo, jak linker binduje potrebne funkce
z knihoven??
Tyto experimenty me vede k zaveru:
A) ze tomuto systemu vubec nerozumim
B) ldd nerika pravdu a interne linker spravne detekuje libc5 knihovny
a take je spravne pouzije a prikaz ldd slouzi k totalnimu zmateni
vsech uzivatelu.
Byl bych rad, kdyby mi tuto oblast osvetlil nejaky odbornik na RedHat
linux.
--
Odstranite-li ve Windows95 vsechny chyby
budete mit prazdny disk
Zdenek Kabelac http://www.fi.muni.cz/~kabi/ kabi na fi.muni.cz
Další informace o konferenci Linux