LINUX.ORG.RU

[gentoo] [CFLAGS] make.conf


0

1

до недавнего времени использовал -march=native, но свободная минутка за кохфэ побудила попробывать уйти с fail-safe флагов

глянул gcc -Q --help=target -march=native получил http://pastebin.org/413692

что в выхлопе смутило так это отсутствие включенных sse*, что для core2 само собой не свойственно, кроме того: http://pastebin.org/413695

версия gcc 4.4.4

вопросы следующие: грозит ли чем нибудь нехороим сборка с -mmmx -msse -msse2 -msse3 -mssse3 и свойственно ли для gcc исключение этих опций?

★★★★★

>грозит ли чем нибудь нехороим сборка

Вообще нет, эти опции только разрешают использование соотв. инструкций.
Если хотите экстрима на i686, то -mfpmath=sse для вас.

anon_666 ()

Ох блин, каждый начинающий гентушник считает своим долгом такой тред создать

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

а что мне еще делать в свободное от безделья время? =)

суть вопроса не совсем в генте, а в том, что компилятор подсовывает, я же написал

свойственно ли для gcc исключение этих опций?

x0r ★★★★★ ()
Ответ на: комментарий от x0r
$ gcc -Q --help=target -march=native |grep sse
  -march=                     		k8-sse3
  -mno-sse4                   		[включено]
  -msse                       		[выключено]
  -msse2                      		[выключено]
  -msse2avx                   		[выключено]
  -msse3                      		[выключено]
  -msse4                      		[выключено]
  -msse4.1                    		[выключено]
  -msse4.2                    		[выключено]
  -msse4a                     		[выключено]
  -msseregparm                		[выключено]
  -mssse3                     		[выключено]

Это на x86_64, sse3 поддерживается.

свойственно ли для gcc исключение этих опций?

Очевидно, да.

anon_666 ()

соберите hello world

#include <stdio.h>
int main (void) { printf("%s\n", "hello"); return 0; }

gcc -v -march=native hello.c -o /tmp/hello_world

можете сами там посмотреть с какими там параметрами вызывается cc1 (если есть сомнения - на pastebin)

gcc -Q достаточно часто выдает не то что должен выдавать, поэтому лучше добавлять туда -fverbose-asm

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

>Если хотите экстрима на i686, то -mfpmath=sse для вас

это не экстрим, даже для x86

Sylvia ★★★★★ ()
CFLAGS="-msahf -O2 -march=core2 -mmmx -fpeel-loops -fvpt -mssse3 --param l1-cache-size=32 --param l1-cache-line-size=32 --param l2-cache-size=4096 -funroll-loops -fomit-frame-pointer -ffast-math -ftree-vectorize -pipe"

Итог emerge -ave с такими флагами это сегфолтящийся Firefox (из - за zlib) и неработающий WINE который ругается на fixme:win:EnumDisplayDevicesW ((null),0,0x35df87c,0x00000000), stub!

CFLAGS="-msahf -O2 -march=core2 -mmmx -mssse3 --param l1-cache-size=32 --param l1-cache-line-size=32 --param l2-cache-size=4096 -fomit-frame-pointer -mfpmath=sse,387 -pipe"

Итог этих флагов - стабильно работающая система, ничем не тормознее предыдущей.

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

у меня с

CFLAGS="-march=native -mtune=native -O2 -pipe -mcx16 -msahf -floop-interchange -floop-block -floop-strip-mine -ftree-vectorize -g0"

всё стабильно и отлично работает, кроме вайна, я его без этих флагов соберу потом

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

>он работает, просто ни одна игра не запускается

у меня gcc-4.5.1_pre9999


старый снапшот GCC какой-то, или вайн старый, 1.2rc уже работали с 4.5.1pre, у меня по крайней мере, флаги там фильтруются, так что получается что собиралось у меня с -O2 -march=pentium4 -mtune=core2 (x86)


Кстати 4.5.1 должен был уже выйти в релиз, просто релиз менеджер похоже в отпуске ;)

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

Да, да. Именно так. Работает сам, но при запуске любой 3D шпилялки кричит что нет типа OpenGL. И дело как выяснилось не в нем самом, а в какой то библиотеке системной,так как при сборке флаги фильтруются и из всех своих остается по моему только -march и -fomit... В случае с Firefox удалось найти что дело в zlib, а вот из - за чего WINE так делает я не знаю. собирал 4.4.3-r2

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