Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Linken gegen gestrippte Lib



LIttleBoy
14-01-2006, 09:25
Hi,
ich habe folgende Situation: Auf einem -wie es so schön heisst- embedded System habe ich eine Linux-Umgebung inkl. libc & Co. Die sind allerdings gestrippt, so dass nur noch die Symbole drinne sind, die von den eigentlichen mitgelieferten Applikationen benötigt werden (gestrippt wird mit mklibs.py)

Jetzt will ich eine Anwendung schreiben, die Symbole benötigt, die eigentlich aus der libc schon rausgestrippt worden sind. Ich habe eine komplette Build-Umgebung mit alles Header-Files, der ungestrippten und der gestrippten libc - kann man dem Linker jetzt irgendwie sagen, dass er die in der gestrpiiten Version "fehlenden" aber von meinem Programm benötigten Symbole irgendwie ins Programm statisch linkt, ohne direkt die ganze libc zu linken?

anda_skoa
14-01-2006, 15:31
Vielleicht durch eine bestimmte Reihenfolge in der Linkerkette.

Also in etwa

gcc -o program liste-von_objects -llibc-stripped -llibc-unstripped

libc-unstripped müßte in diesem Fall eine static lib sein.
Alles unter der Annahme, daß der Linker eine bestimmte Reihenfolge beim Druchsuchen der angegeben Libs beibehält und ein Symbol immer aus der als erstes gefundenen nimmt.

Ciao,
_

undefined
14-01-2006, 15:44
Wenn wir gerade mal dabei sind, warum stript man überhaupt die Symbol Tables ?

objdump -t /usr/lib/libm.so
/usr/lib/libm.so: file format elf32-i386
SYMBOL TABLE:
no symbols

Mit

objdump -Tp /usr/lib/libm.so

Kann ich sie mir doch ansehen.
Strippen verhindert auch keine Linkerfehler oder hat jedenfalls keinerlei Einfluss bei Linkerfehlern.

SeeksTheMoon
16-01-2006, 08:47
kompilier doch erst alles und strip alle Dateien wenn der build fertig ist