[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