[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: