LINUX.ORG.RU

[gentoo]make.conf

 


0

0

исправил флаги в make.conf на:

CFLAGS="-O3 -march=athlon-mp -pipe" CXXFLAGS="-O3 -march=athlon-mp -pipe"

делаю emerge world, но гцц как был версии 4.1.2 так и остался, хотя гцц добавлен в /etc/portage/package.keywords

процессор AMD Sempron 3500+ (ляптоп)

eselect gcc list пишет что нет такого модуля

может я неправильно написал тип проца?


вот что я нашел в гугле, щас попробую поменять

>>Для AMD Sempron строки выглядят так: CFLAGS="-march=athlon-xp -O3 -pipe -fomit- frame-pointer"

z01
() автор топика
Ответ на: комментарий от Deleted

>И при чём тут make.conf и CFLAGS?

а потому что я их менял, поэтому и не собираеца думаю

z01
() автор топика

Паника у тебя в голове.

Сделай gcc -m64 (или -m32, в зависимости от архитектуры) -fverbose-asm -march=native -Q --help=target

Посмотри какие -march и -mtune он тебе нарисует. Их и ставь. Или тупо поставь -march=native, если не юзаешь distcc.

Никогда, повторяю, никогда! не используй -O3, если не хочешь вонючую кучу вместо системы. Используй -O2 (-Os если кеша мало).

emerge eix, eix-update

eix gcc

И смотри, какой у тебя, какой в портах...

В /etc/portage/package.keywords ничего писать не надо для gcc, если ты не тестишь masked и прочий изврат. gcc 4.4.1 сейчас только в ~arch.

kdf16rc
()

Мои cflags для opteron x86_64 с расшифровкой:

CFLAGS="-march=k8-sse3 -mtune=k8 -O2 -mcx16 -msahf -falign-functions=64 -fomit-frame-pointer --param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=1024 -ftree-vectorize -ftree-loop-distribution -floop-interchange -floop-block -floop-strip-mine"

-march=k8-sse3 -mtune=k8 <---- использую distcc, поэтому объявляю явно, без distcc можно просто -march=native

-mcx16 -msahf - Их включает -march=native. Если -march=native, их не надо.

-falign-functions=64 - самоочевидно

--param l1-cache-size=64 --param l1-cache-line-size=64 --param l2-cache-size=1024 - компилятор на том конце ничего не знает о моих кешах. Помогаю ему. Если не используешь distcc - не нужно.

-ftree-vectorize -ftree-loop-distribution - входят в -O3, ломают часть софта (поэтому -O3 по дефолту в make.conf - не нужен), использовать на свой страх и риск.

-floop-interchange -floop-block -floop-strip-mine - используют graphite в 4.4.1 - на свой страх и риск.

kdf16rc
()
Ответ на: комментарий от kdf16rc

> Никогда, повторяю, никогда! не используй -O3, если не хочешь вонючую кучу вместо системы.

А можно аргументы привести для особо неверующих (или хотя бы ссылки)? Что там не так с -O3?

du_hast
()
Ответ на: комментарий от du_hast

Аргументами полон весь forum.gentoo.org.

В gcc 4.X оптимизации в -O3 стали слегка агрессивными. Например -ftree-vectorize может сломать mesa, wine... Причем оно соберётся, но будет падать. Разрабы в критичных местах фильтруют -O3 в ебилдах, поэтому слоупоки не сильно плачут. А в тех пакетах, где -O3 имеет смысл, оно уже есть и перекрывает -O2 из make.conf, так как gcc учитывает последний аргумент -O, если их несколько.

kdf16rc
()
Ответ на: комментарий от kdf16rc

> Разрабы в критичных местах фильтруют -O3 в ебилдах, поэтому слоупоки не сильно плачут.

А я думаю: от чего это у меня все нормально работает? :)



du_hast
()
Ответ на: комментарий от du_hast

>А можно аргументы привести для особо неверующих (или хотя бы ссылки)? Что там не так с -O3?

Когда я сидел на генте было замечено, что с -O3 многие программы глючат и валяться, после пересборки с -O2 всё стало нормально.

Тебе правильно советуют, используй -O2

golodranez ★★★★
()
Ответ на: комментарий от kdf16rc

>В gcc 4.X оптимизации в -O3 стали слегка агрессивными

в GCC 4.3 и выше
в 4.1 4.2 использование -O3 безопасно, но имеет мало смысла, так что -O2 это то что должно использоваться всегда по умолчанию.
-Os для отдельных пакетов (например bind, если у вас конечно не тяжелонагруженный DNS сервер)

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Ну если ОЗУ <4gb и писалка рожает в tmp образ диска, получается не очень хорошо :) И, помнится, vmware как то хитро память машины в tmp мапила, в результате у меня машины в ОЗУ в два раза больше места занимали :) (уже давно не пользуюсь vmware, как сейчас не знаю). Так что не всегда tmp в мозгу = гуд. И вот тогда -pipe

kdf16rc
()
Ответ на: комментарий от kdf16rc

для записи образов диска можно и другое место назначить )
для CXX с -j<много> использовать -pipe вариант неудачный, пусть лучше на диск пишет, чем перерасход памяти создает.

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

>для записи образов диска можно и другое место назначить )

А можно и забыть :) И вообще, мало ли что туда большой кусок положить может... Браузер например... Да мало ли...

>для CXX с -j<много> использовать -pipe вариант неудачный, пусть лучше на диск пишет, чем перерасход памяти создает.

ППКС

kdf16rc
()
Ответ на: комментарий от kdf16rc

tmpfs 1269760 24 1269736 1% /tmp
мне пока хватает )
хотя да, это зависит от личных предпочтений и использования

у меня просто в / мало места (это бывш. recovery раздел от венды)

Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 1936396 1018592 898288 54% /

(менять что то в планировке разделов я не хочу, пусть будет как уж вышло)

Sylvia ★★★★★
()
Ответ на: комментарий от Sylvia

Ну стиль у каждого свой... Мне вот светит переползание с EVMS на LVM2, при этом данных ~3tb и бекапить некуда :( Я как то даже начинать боюсь, но чувствую точкой пятой, что EVMS скоро сломают...

kdf16rc
()
Ответ на: комментарий от ss85

Ну... Всё это дело на аппаратном честном райде... Я разметил как мне нужно было, оставил 98% не размеченными, потом раздвигал, создавал или сужал по мере необходимости разделы. Разные разделы под разными соответствующими задачам fs, нерационально используемого места нет, тормозов ввода вывода тоже, скорость чтения у меня в шину упирается. Я давно уже ничего не ставлю без lvm, даже на ноут. Удобно блин. А рабочая станция старая, когда окучивал её EVMS рулил не по деццки, да и нравится он мне :( Только его похоронили в пользу LVM2.

kdf16rc
()

всем спасиба за лекцию, оказывается нада было просто сделать 

#gcc-config 2

laptop Downloads # gcc-config -l
 [1] i686-pc-linux-gnu-4.1.2
 [2] i686-pc-linux-gnu-4.3.4 *

z01
() автор топика
Ответ на: комментарий от du_hast

>А можно аргументы привести для особо неверующих (или хотя бы ссылки)? Что там не так с -O3?

Много лет на нём сидел и проблем не имел кроме редких случаев некомпиляции отдельных пакетов. Ну так это лечится персональными опицями компиляции. Отказался от -O3 в итоге только из-за того, что выигрыша по скорости по сравнению с -O2 практически не даёт, а вот код несколько раздувается в размере и намного дольше компилится.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>выигрыша по скорости по сравнению с -O2 практически не даёт, а вот код несколько раздувается в размере

вот вот ,
из -O3 лучше включать индивидуальные флаги, например -O2 -ftree-vectorize




Sylvia ★★★★★
()
Ответ на: комментарий от KRoN73

Под каждым словом подписываюсь я. Причем кое где вообще -Os рулит. Проверено электроником много раз на третьих пнях, целеронах и дуронах.

kdf16rc
()
Ответ на: комментарий от Sylvia

> ps: и я еще против использования -pipe в CXXFLAGS, особенно если /tmp в tmpfs

Когда памяти >=4G ничего страшного нет, у меня ещё и /var/tmp/portage тоже в tmpfs, сильно экономит дисковые операции. :)

Lumi ★★★★★
()
Ответ на: комментарий от ss85

> Кстати стоит ли менять gcc-4.3.3 на gcc-4.3.4.
Это bugfix, конечно же стоит.

Lumi ★★★★★
()
Ответ на: комментарий от z01

> всем спасиба за лекцию, оказывается нада было просто сделать
> #gcc-config 2


Почему нет отдельного спасибо l-t?

Lumi ★★★★★
()
Ответ на: комментарий от kdf16rc

/var/tmp я тоже кошерно использую, а насчёт /var/portage/tmp смысл для меня есть, всё-равно память не при деле, когда ничего тяжёлого не пускаю, а когда пускаю, мне уже и не до сборки миров.

Lumi ★★★★★
()
Ответ на: комментарий от Lumi

Так мы об одном и том же говорим. Просто мне удобно, когда порты в отдельном /var/portagetmp tmpfs собираются, а /var/tmp на диске в нетронутом портежами виде. Почему я сделал так, уже не помню, чесслово :) Просто так восемь лет назад сложилось и воспроизводится...

kdf16rc
()
Ответ на: комментарий от Lumi

Эти ваши л-т, отправили в маны). спасибо хоть гцц-конфиг подсказали.

//передаю приветы, жобэ, луми и киму за неоценимую помощь Ж;3

z01
() автор топика
Ответ на: комментарий от kdf16rc

>В gcc 4.X оптимизации в -O3 стали слегка агрессивными

Сижу на gcc 4.4 и 4.5 с -O3 и кучей других флагов уже год.
Ничего не сломалось, все работает. ЧЯДНТ?

devl547 ★★★★★
()
Ответ на: комментарий от devl547

>Сижу на gcc 4.4 и 4.5 с -O3 и кучей других флагов уже год. Ничего не сломалось, все работает. ЧЯДНТ?

пора уже встать с них и начать ими конпелировать

z01
() автор топика
Ответ на: комментарий от devl547

>Сижу на gcc 4.4 и 4.5 с -O3 и кучей других флагов уже год. Ничего не сломалось, все работает. ЧЯДНТ?

>Разрабы в критичных местах фильтруют -O3 в ебилдах

>Отказался от -O3 в итоге только из-за того, что выигрыша по скорости по сравнению с -O2 практически не даёт, а вот код несколько раздувается в размере и намного дольше компилится.

А так вопрос религиозный конечно.

kdf16rc
()
Ответ на: комментарий от devl547

Соберите пожалуйста wine с -O3 и запустите что нибудь виндовое.

kdf16rc
()
Ответ на: комментарий от kdf16rc

> Просто мне удобно, когда порты в отдельном /var/portagetmp tmpfs собираются, а /var/tmp на диске в нетронутом портежами виде.

Они итак собираются в отдельном /var/tmp/portage по умолчанию, сам /var/tmp как был на диске, так там и остался. Выносить каталог portage вне /var/tmp не обязательно.

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