On Sun, 23 Nov 2003 at 19:42 (+0100), Philipp Thomas wrote:
Bernhard Walle
[Sun, 23 Nov 2003 19:26:36 +0100]: Statisches Linken existiert
Aber nur solange du auf *jegliche* Funktionen der libnss* verzichtest, also alles, was mit Namensauflösung zu tun hat, wie z.B. gethostname(). Nur dann ist statisches Linken möglich. Alles andere ist nur pseudo-statisch, da die libnss* _grundsätzlich_ dynamisch geladen werden, auch wenn du die glibc statisch einbindest. Eine statische Bash oder ein statisches rpm sind daher seit glibc2 faktisch nicht mehr möglich.
Ich dachte eigentlich nicht an die libc sondern an Spezialbibliotheken wie Qt, Motif etc. Die glibc muss man halt ab einer bestimmten Version voraussetzen. Die glibc ist eh die eigentliche Betriebssystemversion, der Kernel ist oft weit weniger interessant.
Im Grunde genommen müsste IMHO die glibc sich in den Fällen einfach verweigern, sprich der Linker müsste sich mit Fehler verabschieden, sobald ein statisch zu linkendes Programm Funktionen aufruft, die mittels der libnss* implementiert werden. Und soweit ich weiss, wird bzw. wurde dies auch unter den glibc Entwicklern diskutiert.
Kann es sein dass der Linker eine Warnung ausgibt? Ich kenn beispielsweise das hier: /home/bwalle/cdk-4.9.10-20030418/fselect.c:898: Using 'getgrgid' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking Kann es sein dass es sich um ein ähnliches Problem handelt? Gruß, Bernhard -- _________ http://www.bwalle.de _________________________________________________ "Dieselben Naturkräfte, die uns ermöglichen, zu den Sternen zu fliegen, versetzen uns auch in die Lage, unseren Stern zu vernichten." -- Wernher von Braun