Ещё раз про AMD_64...
Гость 25 февраля, 2006 - 16:17
После появления нового процессора появлись новые вопросы.
Подскажите стоит ли включать поддержку амд64? А то я слышал, что некоторые пакеты могут не работать и сама система работает нестабильно... или это всё зависит от кривости рук?
вот я начал писать свой make.conf....
CFLAGS="-march=k8 -O3 -fomit-frame-pointer -pipe"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
Чего пишут -march=k8, а не -march=amd64?
Что туда ещё стоит дописать? Где указывать, что у меня sse, sse2, sse3, 3dnow и т.д.?
Подскажите какие флаги "USE" желательно добавить?
make.conf.sample изучил и про "USE" начитался, только вот интересно как делают знающие люди? Дайте для примера свой make.conf.
Спасибо.
»
- Для комментирования войдите или зарегистрируйтесь
Пример
Что может не работать вообще вне зависимости от процессора.
А нестабильно только от двух драйверов hand.drv head.sys
Пример довольно сумбурный но работающий
USE="-userlocales -gnome -arts aac xvid qt kde alsa dvd dvdread dvdr cdr exif win32codecs a52 3dnow sse2 sse -ipv6 directfb acpi hal -oss usb"
CFLAGS="-O3 -march=athlon64 -pipe -fstrict-aliasing -fomit-frame-pointer -msse2 -m3dnow -ftracer -mfpmath=sse"
DISTDIR="/home/distfiles"
PORTDIR="/home/portage"
#ALSA_CARDS="emu10k1"
LANGUAGE="ru"
LINGUAS="ru"
CFLAGS="-Os -march=k8 -pipe
CFLAGS="-Os -march=k8 -pipe -fstrict-aliasing -fomit-frame-pointer" - будет замечательной оптимизацией...про sse не надо упоминать,-Os и так его смажет и сама найдет...
________________
Надоели компы...
-Os Ничего не
-Os
Ничего не даст это оптимизация по размеру она ничего не ищет
вообще. И sse флагами -Oх не включается тоже.
Читаем документацию
http://gcc.gnu.org/onlinedocs/gcc-3.4.5/gcc/Optimize-Options.html#Optimize-Options
sse включается
когда указываешь -march...
-Os естественно на это не влияет. но и явано указывать нет необходимости.
Re: Пример
много лишнего понаписано.
-fstrict-aliasing уже входит в -O3 (тут)
-msse2, -m3dnow уже входят в -march=athlon64 (тут)
хмм. а насчет -mfpmath=sse, кто подскажет. это разве обязательно указывать? он помоему и сам понимает когда ставишь -march=athlon64 что везде sse использовать нужно, или он по дефолту -mfpmath=`sse,387' чтоль испльзует?
для тех, кого ti1
для тех, кого ti1 не убедил насчет того, что не надо запихивать в CFLAGS все подряд, включая то, что написал с перепоя где-нибудь на forums.gentoo.org какой-нибудь хрен с горы, рекомендую выполнить
gcc -v -Q -march=<ваш_тип_CPU> -0<уровень_оптимизации> test.c -o test
и поизучать вывод начиная с "options enabled:"
в test.c можно забить хоть int main() { return 0; }
эх эх
юзать нужно тока -O2 и можно ещё -fomit-frame-pointer. -O3 имеет смысл тока для ресурсоёмких приложений... те которые весят в памяти и жрут до 20% проца тока усугубит производительность так как он забивает стек и пытается все функции зделать inline.
-mfpmath=sse
с -mfpmath=sse если стоит -mno-sse and -mno-sse2 - не собирается glibc почему-то.
и вообще
emerge -e system:
/usr/include/gentoo-multilib/amd64/stdlib.h: In function ‘strtod’:
/usr/include/gentoo-multilib/amd64/stdlib.h:329: error: SSE register return with SSE disabled
Re: -mfpmath=sse
странный вы человек...
с начала говорите компилятору использовать sse -mfpmath=sse, а потом запрещаете ему использовать sse и sse2 -mno-sse -mno-sse2
no - это значит _НЕ_ИСПОЛЬЗОВАТЬ
ОН ВАМ И ПИШЕТ SSE register return with SSE disabled
http://gcc.gnu.org/onlinedocs/gcc-3.4.5/gcc/
идем сюда и внимательно читаем.
k8, opteron, athlon64, athlon-fx - это для данного компилятора одно и тоже
USE
С флагами оптимизации вроде понял... расскажите про USE пожалуйста.
а с USE-флагами
а с USE-флагами еще проще, правило очень простое: "если вы не знаете, что это такое, значит вам это не нужно" ;)
еще можете проконсультироваться у `equery u`
не засовывайте все возможные флаги в make.conf, используйте /etc/portage/package.use для флагов, специфичных для приложений
и вот еще все-таки прочитайте: http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=2
А я делаю так...
В принципе все юзе флаги говорят за себя...
перед установкой делаешь
$ emerge -pv
и смотришь что и как стоит... Если смысл какого-то флага непонятен
$ euse -i <флаг>
Обычно проблем не возникает.
euse ставится вместе с gentoolkit
ухты, за euse
ухты, за euse спасибо, я всю жизнь cat|grep пользовал :)
Т.е. на сколько
Т.е. на сколько я понял, то лучше всего выставить минимальный набор флагов и перед установкой пакета набрать "emerge -av", посмотреть какие ему флаги нужны и если нужен какой-то флаг то или подправить make.conf или # USE="<необходимые флаги> -<ненужные флаги>" emerge <пакет>
еще раз ;) :
еще раз ;) : /etc/portage/package.use
У меня все
У меня все работает вполне стабильно, дяже не смотря на ~amd64.
Бывают некоторые аказии. Например были проблемы со сборой wine, но теперь все работает. Также есть загвоздки с sun java-плагином и macromedia flash для броузеров. Для mplayer'а нельзя исползовать 32битные виндовые кодеки. Для решения этих проблем есть уже скомпелированые 32битые пакеты, например mplyer-bin. Также приходится бинарным пакетом OpenOffice-bin.
_________________
Linux
...because life is too short for reboots