[devel] Re: RFC: test-libs

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Чт Июн 16 19:52:44 MSD 2005


On Thu, Jun 16, 2005 at 07:20:36PM +0400, Dmitry V. Levin wrote:
> > У статической линковки на платформе GNU/Linux (glibc) имеется Одна
> > Большая Проблема: сломанный резольвер.  См.
> > http://www.livejournal.com/users/avva/1380158.html?thread=26193470#t26193470
> 
> По этому адресу про resolver ничего не написано.
> А то, что там написано, напоминает трёп бездельников.
> Ну а в чём, собственно говоря, проблема?

$ cat test.c
#include <stdio.h>
#include <netdb.h>
int main()
{
        struct hostent *h = gethostbyname("localhost");
        printf("%s\n", h->h_name);
        return 0;
}
$ gcc -static test.c
/home/at/tmp/cceSSWrL.o(.text+0x25): In function `main':
test.c: warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
$ filereq /dev/stdout ./a.out
localhost.localdomain
/etc/host.conf
/etc/hosts
/etc/ld.so.cache
/etc/nsswitch.conf
/etc/resolv.conf
/lib/i686/ld-linux.so.2
/lib/libc.so.6
/lib/libnss_files.so.2
$

То есть статически слинкованный c libc.a бинарь всё равно/в любом случае
подгружает разделяемые библиотеки, даже включая libc.so.6!  Причем,
требуется та же самая версия разделяемых библиотек, совпадение soname'ов
недостаточно.  Теряется главное и практически единственное преимущество
статической линковки: независимость от окружающей среды и переносимость
между различными хост-системами; в чем, безусловно, имеется определённая
проблема.  За примерами далеко ходить не надо: после обновления glibc
статически собранный /bin/rpm стал валиться в корку.

Так вот, бездельники и спрашивают: что же это за система, в которой
нихрена статически собрать нельзя - резолвер работать не будет?!
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050616/c6ebc9c4/attachment-0001.bin>


Подробная информация о списке рассылки Devel