predator 09.08.2010 01:24
Gentoo Linux — --as-needed добавлен по умолчанию во флаги линкера
Флаг --as-needed говорит линкеру линковать с новым бинарным файлом только те библиотеки, функции которых он использует напрямую (в коде).Посему, если раньше приложение требующее gtk библиотеки использовало pkg-config, а именно что-то вроде этого:
gcc -o hello_world hello_world.c `pkg-config gtk+-2.0 --libs`
то последняя часть `pkg-config gtk+-2.0 --libs` выдавала все библиотеки, которые относятся к gtk и приложение загружало их все! хотя для своей работы фактически нуждалось только в gtk-x11-2.0. Теперь же, собранное с флагом линкера --as-needed оно будет загружать только необходимые библиотеки.
Чтобы передать этот флаг линкеру из gcc нужно добавить в команду сборки "-Wl,--as-needed".
PS: пост-копипаст из eselect news и http://www.gentoo.org/proj/en/qa/asneeded.xml
PPS: почему раньше этого не было?
PPPS: кто знает ещё какие-нибудь полезные флаги gcc или as?
digiwhite 09.08.2010 08:02 #
+ 1 -
Хм, а в Watcom C/C++ компиляторе начала 90 такая фитча по дефолту есть. Правда в остальном он как то уныл, да еще и проприетарщина. Используется он в qnx 4x.
немного не в тему, но еще был добавлен флаг -deblob при сборке того же ядра. из него понятно, что это собирает все кроме блолбов. =) почувствуй опенсорс.
Генту такой дистр, постоянно что-то добавляется, совершенствуется... за всем и не уследишь. Вот сегодня к примеру в очередной раз пересобрав ядрышко преодолел "звуковой барьер" -- время старта 1,992912сек =) Помнится с год назад эта цифра была 6-7 секунд. Что тоже показатель развития как ни крути :) Почему бы и компилятору не дорасти до уровня когда этот флаг признан абсолютно стабильным и рекомендованным к использованию по умолчанию? Всё логично.
ну а когда добавили флаг автоопределения процессора, чтоб вместо того чтоб самому искать и думать где какие флгаи, он автоматом определяет. конечно в одной машине не сложно настроить, а если много и все разные? а так один конфиг для всех
ну нас, гентушников не много, да и не сильно здесь любят. палками тыкают, красноглазиками обзывают =(
кстати, вот я бы попросил не переносить статьи из личных блогов и из категория "для собложников". мне на карму насрать, и пофиг когда и сколько минусуют, но есть вещи в которых хочется пообщаться только с единомыленниками, уютно и дружно. вот там меня бесят минусы и комменты холиваров.
ну так есть собложники, и есть друзья, когда ты видишь их личный блог.
Наступит зима, попробую опять вернуться, много вкусного там последнее время сделали. Сейчас жарко, на бинарных дистрибутивах нетбук греется как черт.
не наш путь, лучше уж тогда fedora поставить чтобы этим пакетным менеджером пользоваться.
ну нетбук, он и есть нетбук, на нем не самое лучшее компилять. хотя если поставить стабильную версию, то не так уж и проблемотично. у меня не стабильная, и бывает, что за неделю много обновлений, но в основном раз в пару дней пересобрать пару вещей и все. браузеры и Оо есть в бинарниках (как то раз на лаптопе попробывал хром собрать, а комп слабый... но я смог :) ). ну а так ты прав, если сурсбэйзд, то сурсбейзд до конца =)
надеюсь не сарказм, просто я пытался на ноуте держать генту. но там комп слабый, плюс я на нестабильной системе сидел. включал его очень редко(из-за ненадобности), и даже компилять не было проблемой, столько сколько обновлятся раз в полгода на генту плохо. часто бывают нововведения, переходы на другие технологии и так далее, что делается постепенно, но если эти шаги-обновления пропустить, то ломается весь "мир", зависимости, флаги и так далее. мне надоело, поставил недобунту
>PPS: почему раньше этого не было?
Как я понял, что это "как бы отложили на потом". И вот недавно одни из разрабов поднял эту тему в актуальные и привел массу веских доводов. Видимо, убедил.
>PPPS: кто знает ещё какие-нибудь полезные флаги gcc или as?
-g0 только добавляю в safe cflags.
Как я понял, что это "как бы отложили на потом". И вот недавно одни из разрабов поднял эту тему в актуальные и привел массу веских доводов. Видимо, убедил.
>PPPS: кто знает ещё какие-нибудь полезные флаги gcc или as?
-g0 только добавляю в safe cflags.