LINUX.ORG.RU

Переносимость Xlib бинарника между дистрибутивами


0

0

Всем привет!

Кто-нибудь знает о переносимости бинарника, основанного только на Xlib+стандартная C библиотека между различными дистрибутивами?

К примеру, такое приложение, собранное в убунте, у меня без проблем запустилось сразу под старой версией red hat.

У кого-нибудь есть точные данные? :)

Заранее спасибо.


Re: Переносимость Xlib бинарника между дистрибутивами

это тебе надо статическую сборку.

halturin ★★★★★ ()

Re: Переносимость Xlib бинарника между дистрибутивами

> это тебе надо статическую сборку.

А вот не поможет!

Тама gethostbyname(), и оно через dlopen тащит за собой nss, который тащит кусок libc6. Если версии libc, которая была при линковке, не совпадает с той, что стоИт на компе при выполнении, оно падает.

Единственный способ -- собрать самому libc с --enable-static-nss и поддержкой старых ядер, и линковаться явно с -lnss_files -lnss_dns -lresolv.

Я так делаю:

glibc configure опции (для x86):

--host=i386-linux --enable-kernel=2.4.0 --enable-add-ons --disable-profile --enable-static-nss

для gcc опции:

-static test.c -o test -Wl,--start-group -lc -lnss_files -lnss_dns -lresolv -Wl,--end-group

Die-Hard ★★★★★ ()

Re: Переносимость Xlib бинарника между дистрибутивами

> Тама gethostbyname()

Это же уже сеть? У меня пока ничего сетевого нет в приложении (хотя планируется автообновление). Значит без сети статическая линковка может помочь?

PS К слову, а вообще как посмотреть зависимости бинарника в нормальном виде ? (можно и через less, но хочется удобно)

mrhx ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.