Pfad, in dem während der Ausführung eines Programms dynamische Libraries gesucht werden lautet unter AIX:
LIBPATH
(Bei anderen UNIX-Derivaten heißt es LD_LIBRARY_PATH.)
AIX 6.1 Commands: https://www.ibm.com/support/knowledgecenter/ssw_aix_61/com.ibm.aix.cmds.navigation/alphabeticallistofcommands.htm
Hier eine kleine Auswahl:
Using the GNU C/C++ compiler on AIX: http://www.ibm.com/developerworks/aix/library/au-gnu.html
AIX® Linking and Loading Mechanisms: http://download.boulder.ibm.com/ibmdl/pub/software/dw/aix/es-aix_ll.pdf oder http://public.dhe.ibm.com/software/dw/aix/es-aix_ll.pdf
Damit folgende link-Parameter seitens GCC an den Linker weitergegeben werden, werden sie mit dem vorangestellten Schalter "-Wl" versehen. Zum Beispiel, aus dem "-bexpall" wird "-Wl,-bexpall".
Parameter | Bedeutung |
---|---|
-bexpall | Der Linker exportiert automatisch einige Symbole, mit -bexpall werden mehr Symbole exportiert. Die Symbole mit führendem Unterstrich werden nicht automatisch exportiert. |
-bexpfull | Ab AIX 5.2 steht die link-Option -bexpfull zur Verfügung, mit der alle Symbole werden exportiert, auch die mit führendem Unterstrich (wie z.B. "C++ mangled names"). |
-brtl | Mit diesem Schalter schaut der AIX-Linker nach Libraries mit beiden Endungen nach, ".a" and ".so", wie z.B. "libfoo.a" and "libfoo.so". Ohne "-brtl" sucht der AIX-Linker nur nach "libfoo.a". |
-G | Um das AIX RunTime-Linking zu nutzen, sollte man das SharedObject mit dem GCC-Schalter "-shared -Wl,-G" erstellen und das Executables mit solchen Libraris mit der "-Wl,-brtl" Option für den Linker. |
-b64 | Veranlasst den Linker, das 64-Bit Ergebnis zu erstellen. Für GCC lautet die Option "-Wl,-b64". |
-binitfini | Sorgt für Aufruf von Constructoren und Destructoren in der SO-Library. Wenn der Constructor z.B. "lib_initialize" heißt und der Destructor "lib_finalize", dann lautet der komplette Parameter für GCC "-Wl,-binitfini:lib_initialize:lib_finalize". Dadurch wird bei dlopen() die lib_initialize() und bei dlclose() die lib_finalize() aufgerufen. |
-bloadmap:FileName | Listet alle beim Linken ausgeführten Schritte auf, inklusive gelinkten ObjectFiles und Libraries, und schreibt das Ergebnis in ein MapFile namens "FileName". Falls Referenzen nicht aufgelöst werden konnten, landen entsprechende Hinweise auch dort. Mit der GCC-Opton z.B. "-Wl,-bloadmap:$(TargetFile).map.txt" landet die Ausgabe neben dem gerade erzeugten "TargetFile". |