Hallo, Liste! Ich stehe vor folgendem Problem: Ich möchte gerne auf meinem SuSE 9.0-System ein C-Programm kompilieren, das dann auf einem anderen System (das ist so ein abgespecktes Firewall-Linux) laufen soll. Dei Schwierigkeit ist nun, dass sich auf diesem anderen System eine ältere glibc befindet, so dass das anscheinenend nicht so einfach ist. Leider darf ich das Programm nicht direkt auf diesem System kompilieren, wozu ich ja erstmal gcc, make und andere Tools installieren müsste, und das hat der Admin verboten (der Rechner ist zu wichtig als dass daran herumpepfuscht werden dürfte...). Mein erster Lösungsansatz: alte glibc organisieren, parallel zu meinen libc6 installieren, alle Bibliotheken dafür kompilieren, Programm kompilieren, zusammenpacken und auf Zielrechner installieren. Das wäre aber ein riesiger Aufwand, da ich einerseits nicht genau weiss, wie man gcc sagt, welche libc er benutzen soll und es andererseits 13 (!) dynamische Bibliotheken zu kompilieren gibt. An dieser Stelle sollte ich erwähnen, dass ich kein C-Programmierer und auch noch nicht lange mit Linux unterwegs bin und mir diese Aufgabe ein wenig zu groß für mich scheint. Mein zweiter Lösungsansatz: Alle Bibliotheken, inklusive libc6 statisch dazulinken, so dass ich mich nicht mehr mit Abhängigkeiten von dynamischen Bibliotheken herumärgern muss. Ich weiss, das Binary wird dann deutlich größer (und langsamer???) und bei jeder wichtigen Bibliotheksaktualisierung müsste neu kompiliert werden, dafür sollte es aber auf jedem System laufen, egal welche libc.so.yx gerade installiert ist. (Bitte verbessert mich, wenn ich da auf dem Holzweg bin!!!) Mit kleinen Dummyprogrammen (HelloWorld.c) funktioniert das auch. gcc mit der Option -static gibt ein funktionierendes Binary, von dem ldd behauptet es hätte "not a dynamic executable". Genau was ich will! Wie bringe ich das aber make bei??? Mit ./configure CFLAGS="-static" funktioniert es nur zur Hälfte, einige Bibliotheken werden statisch gelinkt, folgende bleiben aber weiterhin dynamisch gelinkt. obwohl die statischen Bibliotheken alle im gleichen Verzeichnis stehen (/usr/lib): libssl.so.0.9.7 => /usr/lib/libssl.so.0.9.7 (0x40024000) libcrypto.so.0.9.7 => /usr/lib/libcrypto.so.0.9.7 (0x40054000) libdl.so.2 => /lib/libdl.so.2 (0x40146000) libz.so.1 => /lib/libz.so.1 (0x40149000) libpthread.so.0 => /lib/i686/libpthread.so.0 (0x40159000) libm.so.6 => /lib/i686/libm.so.6 (0x401aa000) libc.so.6 => /lib/i686/libc.so.6 (0x401cd000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) Hat irgendjemand ein paar nützliche Tipps für mich, ich bin mit meinem Latein am Ende. Vielen Dank schon im Voraus! Gruß Andreas