Re: Tools statisch linken
On 2004-10-30 15:27:09 +0200, Frank Evers wrote:
> Ja, tatsächlich reichte es eine einzige Zeile im root-Makefile zu ändern,
> und die libproc dazu zu bewegen als .a und nicht als .so, ebenfalls
> händisch im entsprechenden Makefile. Ich bekomme jetzt dennoch:
>
> warning: Using 'getpwnam' in statically linked applications requires at
> runtime the shared libraries from the glibc version used for linking
>
> bzw. andere Funktionen die die glibc für statisch gelinkten Programmen
> erfordern.
> Ich bin jetzt überrascht, bedeutet statisch nicht eigentlich, daß
> Programme autonom laufen und gerade _nicht_ auf dynamische libs
> angewiesen sind? Warum muß hier jetzt die glibc vorhanden sein?
>
> Tatsächlich laufen die Programme scheinbar auch ohne, gebaut habe ich auf
> sid, und unter woody laufen zumindest ps und top einwandfrei. Was soll
> ich jetzt von der Compilerwarnung halten?
Was ich letztens auf einer anderen Mailing-Liste gelesen haben
(vermutlich debian-devel) eignet sich die glibc nicht wirklich für
statisches Linken. Die glibc wird zwar statisch in dein Programm
gelinkt, jedoch werden die Bibliotheken für die Namensauflösung
(/lib/libnss_*) bei Bedarf dynamisch geladen (dlopen()) und landen nicht
statisch im Programm. Deshalb die Warnung, du brauchst ein paar
/lib/libnss_* trotz statischen Linken.
Das Problem was beim statischen Linken der glibc dann entsteht, ist wenn
sich die libnss_* ändern (z.B. neue Versionen) und nicht mehr zu der
glibc passen, mit der du damals das Programm statisch gelinkt hast.
Michael
Reply to: