Portál AbcLinuxu, 6. listopadu 2025 19:01
$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.