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?


Тэги: --as-needed flags gcc Gentoo linker
+ 6 -
Похожие Поделиться

digiwhite 09.08.2010 08:02 #
Хм, а в Watcom C/C++ компиляторе начала 90 такая фитча по дефолту есть. Правда в остальном он как то уныл, да еще и проприетарщина. Используется он в qnx 4x.
ZogG 09.08.2010 08:07 #
немного не в тему, но еще был добавлен флаг -deblob при сборке того же ядра. из него понятно, что это собирает все кроме блолбов. =) почувствуй опенсорс.
haku 09.08.2010 08:08 #
Генту такой дистр, постоянно что-то добавляется, совершенствуется... за всем и не уследишь. Вот сегодня к примеру в очередной раз пересобрав ядрышко преодолел "звуковой барьер" -- время старта 1,992912сек =) Помнится с год назад эта цифра была 6-7 секунд. Что тоже показатель развития как ни крути :) Почему бы и компилятору не дорасти до уровня когда этот флаг признан абсолютно стабильным и рекомендованным к использованию по умолчанию? Всё логично.
ZogG 09.08.2010 10:21 #
ну а когда добавили флаг автоопределения процессора, чтоб вместо того чтоб самому искать и думать где какие флгаи, он автоматом определяет. конечно в одной машине не сложно настроить, а если много и все разные? а так один конфиг для всех
xT 09.08.2010 08:13 #
почему только для друзей\собложников? )
ZogG 09.08.2010 10:23 #
ну нас, гентушников не много, да и не сильно здесь любят. палками тыкают, красноглазиками обзывают =(
ZogG 09.08.2010 14:14 #
кстати, вот я бы попросил не переносить статьи из личных блогов и из категория "для собложников". мне на карму насрать, и пофиг когда и сколько минусуют, но есть вещи в которых хочется пообщаться только с единомыленниками, уютно и дружно. вот там меня бесят минусы и комменты холиваров.
xT 09.08.2010 14:28 #
с собложниками еще понятно, а без блогов категоризация теряется : (
ZogG 09.08.2010 14:42 #
ну так есть собложники, и есть друзья, когда ты видишь их личный блог.
ZogG 09.08.2010 10:24 #
добавь теги =)
silent 09.08.2010 10:49 #
Наступит зима, попробую опять вернуться, много вкусного там последнее время сделали. Сейчас жарко, на бинарных дистрибутивах нетбук греется как черт.
ZogG 09.08.2010 12:04 #
так там можно бинарно собирать. хотя на нетбук врядли бы поставил.
silent 09.08.2010 12:38 #
distcc? некуда.
ZogG 09.08.2010 14:11 #
как пример http://www.gentoo-wiki.info/RPM
silent 09.08.2010 14:20 #
не наш путь, лучше уж тогда fedora поставить чтобы этим пакетным менеджером пользоваться.
ZogG 09.08.2010 14:27 #
ну нетбук, он и есть нетбук, на нем не самое лучшее компилять. хотя если поставить стабильную версию, то не так уж и проблемотично. у меня не стабильная, и бывает, что за неделю много обновлений, но в основном раз в пару дней пересобрать пару вещей и все. браузеры и Оо есть в бинарниках (как то раз на лаптопе попробывал хром собрать, а комп слабый... но я смог :) ). ну а так ты прав, если сурсбэйзд, то сурсбейзд до конца =)
razum2um 09.08.2010 16:53 #
аминь
ZogG 09.08.2010 17:01 #
надеюсь не сарказм, просто я пытался на ноуте держать генту. но там комп слабый, плюс я на нестабильной системе сидел. включал его очень редко(из-за ненадобности), и даже компилять не было проблемой, столько сколько обновлятся раз в полгода на генту плохо. часто бывают нововведения, переходы на другие технологии и так далее, что делается постепенно, но если эти шаги-обновления пропустить, то ломается весь "мир", зависимости, флаги и так далее. мне надоело, поставил недобунту
macumazan 09.08.2010 17:36 #
>PPS: почему раньше этого не было?

Как я понял, что это "как бы отложили на потом". И вот недавно одни из разрабов поднял эту тему в актуальные и привел массу веских доводов. Видимо, убедил.

>PPPS: кто знает ещё какие-нибудь полезные флаги gcc или as?

-g0 только добавляю в safe cflags.
IamCrazy 09.08.2010 17:44 #
Как я понимаю, пользователям ничего делать не надо?
Флаг добавляется по умолчанию, ведь так?

-Wl,--as-needed has been added to the default profile's LDFLAGS.