Re: Mehrere GCC-Versionen
Am Sa, 31 Dez 2005 04:43:09 +0100 schrieb David Haller:
Warum eigentlich? Bzw. koennte man die libnss_* (rein theoretisch) auch als statische libs erstellen?
Nein.
aber ich weiss, dass du dich mit der GNU libc besser auskennst als ich, vielleicht weisst du das ja ohne in den Sourcen/Dokus zu wuehlen, wie ich es muesste.
So gut kenne ich mich damit nicht aus. Aber wenn man für SUSE arbeitet, bekommt man halt eine Menge "so nebenbei" mit :)
oder beisst sich dlopen generell mit statisch gelinkt?)...
Ja, dlopen funktioniert nicht mit statisch gelinkten binaries. Philipp
Hallo, [Sorry, ich verwende verschiedene emails in suse-linux und hier, das CC kam hier also nicht an] Erstmal wuensche ich allen ein gutes neues Jahr! Am Sat, 31 Dec 2005, Philipp Thomas schrieb:
Am Sa, 31 Dez 2005 04:43:09 +0100 schrieb David Haller:
Warum eigentlich? Bzw. koennte man die libnss_* (rein theoretisch) auch als statische libs erstellen?
Nein.
Schade[tm].
aber ich weiss, dass du dich mit der GNU libc besser auskennst als ich, vielleicht weisst du das ja ohne in den Sourcen/Dokus zu wuehlen, wie ich es muesste.
So gut kenne ich mich damit nicht aus. Aber wenn man für SUSE arbeitet, bekommt man halt eine Menge "so nebenbei" mit :)
Eben :))
oder beisst sich dlopen generell mit statisch gelinkt?)...
Ja, dlopen funktioniert nicht mit statisch gelinkten binaries.
Hm. Also, das hat mir jetzt keine Ruhe gelassen:
==== dlopen-static.c ====
#include
Hi David, * David Haller (lists@dhaller.de) [20060101 04:55]:
Erstmal wuensche ich allen ein gutes neues Jahr!
Ebenso!
Ja, dlopen funktioniert nicht mit statisch gelinkten binaries.
Hm. Also, das hat mir jetzt keine Ruhe gelassen:
Offensichtlich ist meine Erinnerung fehlerhaft :( Ich werde mich mal bei meinen lokalen Orakeln schlau machen, sobald diese nächste Woche wieder im Lande sind :)
: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
Ich kapiere aber nicht ganz, warum ich "at runtime" die dyn. glibc brauche...
Auch da muss ich mal nachfragen. Philipp -- Anything whose specification is too complicated to explain easily probably needs to be redesigned. David Abrahams on boost
* Philipp Thomas (pth@suse.de) [20060102 15:40]:
Ich kapiere aber nicht ganz, warum ich "at runtime" die dyn. glibc brauche...
Auch da muss ich mal nachfragen.
Und schon habe ich die Erklärung :) Die per dlopen eingebundene dynamische Bibliothek (in deinem Fall die zlib) benötigt ihrerseits die dynamische glibc, weil die Symbole der eingebundenen statischen Bibliothek ja nicht exportiert werden. Deshalb benötigst du zur Laufzeit genau die dynamische glibc, gegen die zlib gelinkt wurde. Damit hast du nun aber den Sinn des statischen Linkens ad Absurdum geführt :) Dlopen und Freunde in statischen binaries macht also nur Sinn, wenn diese widerum keinerlei Funktionen von dynamischen Bibliotheken aufrufen. Macht das Ganze IMO ziemlich sinnfrei. Philipp
Hallo, Am Mon, 02 Jan 2006, Philipp Thomas schrieb:
* Philipp Thomas (pth@suse.de) [20060102 15:40]:
Ich kapiere aber nicht ganz, warum ich "at runtime" die dyn. glibc brauche...
Auch da muss ich mal nachfragen.
Und schon habe ich die Erklärung :) Die per dlopen eingebundene dynamische Bibliothek (in deinem Fall die zlib) benötigt ihrerseits die dynamische glibc, weil die Symbole der eingebundenen statischen Bibliothek ja nicht exportiert werden. Deshalb benötigst du zur Laufzeit genau die dynamische glibc, gegen die zlib gelinkt wurde.
Aeh, ja klar (vgl. ldd libz.so). Logisch. *hand -> stirn*
Damit hast du nun aber den Sinn des statischen Linkens ad Absurdum geführt :)
Jup.
Dlopen und Freunde in statischen binaries macht also nur Sinn, wenn diese widerum keinerlei Funktionen von dynamischen Bibliotheken aufrufen. Macht das Ganze IMO ziemlich sinnfrei.
ACK. Und danke. -dnh -- "You don't have to spamvertise good porn." -- Bisky, in a conversation
participants (3)
-
David Haller
-
Philipp Thomas
-
Philipp Thomas