LINUX.ORG.RU

Вопрос о make.conf в Gentoo


0

0

Решил вот попробовать поставить из Stage1 и добавил в make.conf:

CFLAGS="-09 -funroll-loops -ffast-math -malign-double -mcpu=pentium4 -march=pentium4 -fomit-frame-pointer -fno-exceptions"

и CHOST="i686-pc-linux-gnu"

2 вопроса:
1 - действительно ли при таких флагах будет достигнута оптимизация под мой P4
2 - будут ли применяться эти флаги при компиляции программ без emerge?

В make.general помоему, написано что под P4 флаг march лучше ставить либо i686 либо pentium3, на своём опыте нарвался, собрал всё c pentium4, потом gcc матерился на glibc, мол неправильные инструкции генерирует, и просил пересобрать с другими флагами. А вообще в мануалке по инсталяции gentoo советуют использовать менее агрессивные флаги оптимизации (у вас агрессивные). Я использовал : -O3 -pipe -fomit-frame-pointer -march=athlon-xp (у меня атлон), и всё, mcpu и ffast-math можно опустить.

>> 2 - будут ли применяться эти флаги при компиляции программ без emerge?

ОТВЕТ: нет

С уважением V!nt

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

Вот кусок из make.conf.example (Gentoo 2004.0):

# Host and optimization settings # ============================== # # For optimal performance, enable a CFLAGS setting appropriate for your CPU. # # Please note that if you experience strange issues with a package, it may be # due to gcc's optimizations interacting in a strange way. Please test the # package (and in some cases the libraries it uses) at default optimizations # before reporting errors to developers. # # -mcpu=<cpu-type> means optimize code for the particular type of CPU without # breaking compatibility with other CPUs. # # -march=<cpu-type> means to take full advantage of the ABI and instructions # for the particular CPU; this will break compatibility with older CPUs (for # example, -march=athlon-xp code will not run on a regular Athlon, and # -march=i686 code will not run on a Pentium Classic. # # CPU types supported in gcc-3.2 and higher: athlon-xp, athlon-mp, # athlon-tbird, athlon, k6, k6-2, k6-3, i386, i486, i586 (Pentium), i686 # (PentiumPro), pentium, pentium-mmx, pentiumpro, pentium2 (Celeron), # pentium3, and pentium4. # # Note that Gentoo Linux 1.4 and higher include at least gcc-3.2. # # CPU types supported in gcc-2.95*: k6, i386, i486, i586 (Pentium), i686 # (Pentium Pro), pentium, pentiumpro Gentoo Linux 1.2 and below use gcc-2.95* # # CRITICAL WARNINGS: ****************************************************** # # K6 markings are deceptive. Avoid setting -march for them. See Bug #24379. # # ************************************************************************* # # # Decent examples: # #CFLAGS="-mcpu=athlon-xp -O3 -pipe" #CFLAGS="-march=pentium3 -O3 -pipe"

судя по этому pentium4 можно ставить, т.е. я хочу сказать что не нашёл ничего о том что п4 нежелательно ставить. Слышал что в GCC 3.2 был такой баг, что если устанасливать во флагах pentium4 то генерировался неправильный код. Но в Gentoo 2004.0 ведь используется 3.3.2. Короче я в непонятках (( дошёл до момента когда пора делать bootstrap и вот думаю какие настройки поставить, т.к. не хочется потом тратить кучу времени на перекомпиляцию...

И по поводу оптимизации, насколько велика разница между -O3 и -O9 ? и что означает -pipe ?

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

Вот кусок из make.conf.example (Gentoo 2004.0):

# Host and optimization settings
# ==============================
#
# For optimal performance, enable a CFLAGS setting appropriate for your CPU.
#
# Please note that if you experience strange issues with a package, it may be
# due to gcc's optimizations interacting in a strange way. Please test the
# package (and in some cases the libraries it uses) at default optimizations
# before reporting errors to developers.
#
# -mcpu=<cpu-type> means optimize code for the particular type of CPU without
# breaking compatibility with other CPUs.
#
# -march=<cpu-type> means to take full advantage of the ABI and instructions
# for the particular CPU; this will break compatibility with older CPUs (for
# example, -march=athlon-xp code will not run on a regular Athlon, and
# -march=i686 code will not run on a Pentium Classic.
#
# CPU types supported in gcc-3.2 and higher: athlon-xp, athlon-mp,
# athlon-tbird, athlon, k6, k6-2, k6-3, i386, i486, i586 (Pentium), i686
# (PentiumPro), pentium, pentium-mmx, pentiumpro, pentium2 (Celeron),
# pentium3, and pentium4.
#
# Note that Gentoo Linux 1.4 and higher include at least gcc-3.2.
#
# CPU types supported in gcc-2.95*: k6, i386, i486, i586 (Pentium), i686
# (Pentium Pro), pentium, pentiumpro Gentoo Linux 1.2 and below use gcc-2.95*
#
# CRITICAL WARNINGS: ****************************************************** #
# K6 markings are deceptive. Avoid setting -march for them. See Bug #24379. #
# ************************************************************************* #
#
# Decent examples:
#
#CFLAGS="-mcpu=athlon-xp -O3 -pipe"
#CFLAGS="-march=pentium3 -O3 -pipe"

судя по этому pentium4 можно ставить, т.е. я хочу сказать что не нашёл ничего о том что п4 нежелательно ставить.
Слышал что в GCC 3.2 был такой баг, что если устанасливать во флагах pentium4 то генерировался неправильный код. Но в Gentoo 2004.0 ведь используется 3.3.2. Короче я в непонятках (( дошёл до момента когда пора делать bootstrap и вот думаю какие настройки поставить, т.к. не хочется потом тратить кучу времени на перекомпиляцию...

И по поводу оптимизации, насколько велика разница между -O3 и -O9 ? и что означает -pipe ?

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

Ну ежели у вас 2004 gentoo то с флагом -march=pentium4 проблем не должно быть, а с уровнем оптимизации - ставте -O3 и проблем не будет никаких, разница между 9 и 3 огромная, большинство софта собранного с такой дикой оптимизацией скорее всего будет подглючивать (это лишь IMHO, сам я с таким флагом оптимизации не собирал, да и не буду, смысла в этом мало), а вообще по поводу флагов хорошо написано Алексеем Федорчуком сдесь http://www.linuxshop.ru/unix4all/?cid=22&id=82

Удачи, С уважением V!nt

anonymous
()

Установка -march=pentium4 подразумевает автоматическое добавление соответсвующего mcpu, и дублировать это ни к чему.

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

Vsem spasibo.
v itoge ya postavil
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS to ze chto i CFLAGS.

Uze sdelal bootstrap, shas delaetsa 'emerge system' ))

Budu nadeyatsa chto vse poluchitsa, t.k. eto moya pervaya ustanovka gentoo iz stage1...

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