|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/73688980dcf3.html, оценка из 5, голосов 10
|