kdebase i rpath
Adam Gorzkiewicz
adgor w isn.pl
Pią, 25 Paź 2002, 09:06:14 CEST
Dnia pią 25. of October 2002 01:06, Adam Gorzkiewicz napisał:
(...)
Hmm... zauwazyłem takie coś:
Strace na nie zchrpathowanym kwrite:
(...)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/usr/X11R6/lib/i686/mmx/kwrite.so", O_RDONLY) = -1 ENOENT (No such file
or directory)
stat("/usr/X11R6/lib/i686/mmx", 0xbfffeb14) = -1 ENOENT (No such file or
directory)
(...)
A teraz na zchrpathowanym:
(...)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=51051, ...}) = 0
old_mmap(NULL, 51051, PROT_READ, MAP_PRIVATE, 3, 0) = 0x126000
close(3) = 0
open("/lib/i686/mmx/kwrite.so", O_RDONLY) = -1 ENOENT (No such file or
directory)
(...)
Pierwsze, co sie ciśnie w oczy, to to, że ten nie zepsuty w ogóle nie próbuje
sięgać do ld.so.cache, tylko od razu wie, w jakiej ścieżce szukać libsów.
Jeśli chodzi o stringi to w obu przypadkach są one identyczne - tzn. jest
/usr/X11R6/lib oraz:
/lib/ld-linux.so.2
^^^^^^
(...)
kwrite.so
(...)
libkateinterfaces.so.0
libkatepartinterfaces.so.0
libktexteditor.so.0
libkparts.so.2
i jeszcze parę innych bibliotek - mniej lub bardziej związanych ze "sprawą".
Warto zauważyć, ze ld-linux.so.2 ma dana bezwzgledna sciezkę.
Wygląda na to, że ten nie zchrpathowany kwrite umie powiązać /usr/X11R6/lib z
bibliotekami a ten popsuty - nie. Odwołuje się do ld.so.cache, sprawdza dwie
pierwsze lokacje (/lib i /usr/lib) i sie poddaje.
Mam ochotę dla testu przebudować ld.so.cache tak, żeby tam była tylko ścieżka
/usr/X11R6/lib i zobaczyć czy w tym momencie zepsuty kwrite sięgnie od razu
do własciwego prefixu - ale to juz później.
--
Adam Gorzkiewicz
adgor w isn.pl
Więcej informacji o liście dyskusyjnej pld-devel-pl