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