Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Valentin Nechayev                    2:5020/400     16 Apr 2003  10:23:27
 To : Dmitry Ivanov
 Subject : Re: libc.a
 -------------------------------------------------------------------------------- 
 
 
 >>> Dmitry Ivanov wrote:
 
 >> Это design issue. Библиотека значительно толще, а линковать её статиком
 >> не рекомендуется совершенно (за исключением крайне ограниченного набора
 >> случаев). Если ты собрался линковать статиком для того, чтобы избежать
 >> проблем при смене libc - обрадую тебя тем, что это, наоборот, метод получения
 >> ещё больших граблей.
 DI> Статически линковать для таскания по куче компов, где
 DI> нет соответствующих библиотек (gsl). В моём понимании,
 DI> это должно занять меньше места, чем перенос динамического
 DI> бинарника и библиотек. И действительно занимает меньше во FreeBSD.
 
 Значит, нужно только эту библиотеку прилинковать статически.
 Это несложно:
 cc ... $(OBJS) -Wl,-Bstatic -lgsl -Wl,-Bdynamic
 или как там у тебя библиотека подключается (я так понял, что `-lgsl')
 
 DI> А к каким граблям может привести полностью статический бинарник?
 
 В glibc есть подключаемые модули (libnss*, модули перекодировок iconv,
 ещё что-то), которые грузятся динамически даже при статической линковке libc
 и интерфейс между которыми и libc не специфицирован как постоянный (то есть
 каждая другая версия может подключаться иначе). Если ты перенесёшь программу
 на другую систему (или обновишь эту) и интерфейс к тем модулям поменяется,
 получишь сложные для поиска и неочевидные по результату грабли.
 
 >> И нахрена в линухе libc.a - не понимаю. Лучше бы альтернативные libc
 >> для таких целей предоставляли.
 DI> Предоставляют иногда. Hапример, в Debian есть собранная dietlibc.
 
 Я не про dietlibc. Я про GNU libc. Которая конструктивно сделана так,
 что статическое подключение даёт только проблемы.
 
 DI> Я вчера с этой штукой поразвлёкся. gsl с ней собралась, но
 DI> программы потом что-то не линкуются. Hадо будет предметно разобраться.
 DI> Кстати, вообще непонятно, нахрена разработчики gsl используют libc?
 
 А что такое gsl?
 -netch-
 --- ifmail v.2.15dev4
  * Origin: Dark side of coredump (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: libc.a   Valentin Nechayev   16 Apr 2003 10:23:27 
Архивное /ru.linux/73688980dcf3.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional