Portál AbcLinuxu, 5. června 2024 21:45
$DESTDIR$PREFIX
apod.).Makefile
typu lib$(LIBNAME).so.x.z : $(OBJS)
je závislost lib$(LIBNAME).la : $(OBJS)
s pravidlem které generuje i .so file. Ve výsledku pokud upravím pravidla a smažu .so tak s novým spuštěním make se .so nevytvoří. make install
balíku pak spadne. Tohle vlastnost považuji za fatální zkriplení systému make
.\\\\\$$ORIGIN
.
Dalším problémem je fakt, že binárky jsou v jiném adresáři a než knihovny a jejich RPATH musí být jiná &emdash $ORGIN/../lib
. Obvykle akceptované LDFLAGS
s tímto ale vůbec nepočítají. Neexistují zvlášť LDFLAGS pro .so knihovny a binárky.
Zkoušel jsem i patchovat výsledné ELFy pomocí programu patchelf
. Ten upravuje jiný string v ELFu - RUNPATH.
Program readelf
ze solarisu v některých případech funguje, ale u ELFu linkovaných pomocí gnu ld z binutils říká, že nemůže přidat string do tabulky dynamických stringů. Asi nepřidává buffer na konec tabulky dynamických stringů jako to dělá ld ze solarisu.
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.