пишем x86_универсальный make.conf [v1.1]

*обновление топика*

Я решил попробовать написать хоть чуточку универсальный make.conf. Его универсальность заключается в том, что в его комментариях есть несколько ссылок на основную документацию, относящуюся к рядом стоящей переменной. К сожалению, в хэндбуке слишком мало инфомации об этом, и приходиться терять время в поисках нужной доки. Так может впишем сразу все нужные доки для других, что бы им было легче?

Просмотрите ссылки, приведённые в комментах этого make.conf и дополните, пожайлуста, если я что то забыл.

А заодно я бы хотел выяснить ответы на некоторые вопросы:
1. зачем люди пользуються LDFLAGS="-s bla-bla" ? Я проверял на нескольних маленьких программках - результата (уменьшение зармера пакета) оно практически не даёт, а иногда даже больше в размере получается (из-за других bla-bla флагов). В плане уменьшения размера действительно действенным является флаг -Os компилятору. А флаг линкера использовать бесполезно/глупо. Или нет?
2. некоторые вставляют флаг -s в переменную CFLAGS - это и вовсе ошибка - у gcc нет такого флага.
3. некоторые приписывают к скоему интел-процессору множество других флагов, но, как я опнял, все флаги, что нужны для выбранной в march архитектуры, включаются автоматически. или нет? Что значит выражения А. Федорчука "флаги, спецефичные для моего процессора"? (мне кажеться, что есть лишь один специфичный для процессора флаг: mcpu/march/mtune, или я ошибаюсь?) (ссылка на его статьи есть в коментах мейкфайла)
4. Насколько я понял, флаг AUTOCLEAN по дефолту установлен в "yes", т.е. в make.conf его указывать не надо. make.conf.example я читал но не понял: что меняется с включанием в мейк.конф флага AUTOCLEAN="yes"?


####### UNI-x86-MAKE.CONF ####################################################
####### by f1ufx #############################################################
####### f1ufx00 gmail com ####################################################

CHOST="i686-pc-linux-gnu"


####### for CFLAGS ###########################################################
# use 'cat /proc/cpuinfo' and go to
# http://gentoo-wiki.com/Safe_Cflags or
# http://admin-world.net/content/view/70/29/ (rus)
# optimization flags:
# -O or -O1 - fast compilation, lilte size, lilte speed
# -O2 - all medium
# -O3 - long compilation, big size, fast speed
# -Os - minimal size
# more info: 
# http://gentoo-wiki.com/CFLAGS
# http://gcc.gnu.org/onlinedocs/
# http://unix.ginras.ru/apps/test000.html (rus)


####### for USE ##############################################################
# all use-flags: http://www.gentoo.org/dyn/use-index.xml
# write specific flags in /etc/portage/package.use
# also use emerge -av eselect && eselect profile list
# eselect profile set [what you liked]


####### for PORTAGE_BINHOST ##################################################
# if use have install binary packets, like this:
# emerge -avG foo or emerge -avgK foo, go to
# http://gentoo-wiki.com/TIP_Using_PORTAGE_BINHOST
# for example:
# PORTAGE_BINHOST="http://packages.ututo.org/i686/"
# PORTAGE_BINHOST="http://packages.ututo.org/pentium3/"
# PORTAGE_BINHOST="http://packages.ututo.org/pentium4/"


####### for OTHER FLAGS ######################################################
# PKGDIR default is '/usr/portage/packages'
# DISTDIR default is '/usr/portage/distfiles'
# ROOT default is '/'
# GENTOO_MIRRORS is 'mirrorselect -s3 -b10 -o -D >> /etc/make.conf'
# SYNC is 'mirrorselect -i -r -o >> /etc/make.conf'
# also 'cat /etc/make.conf.example' 'man make.conf' 'man portage'
# http://www.gentoo.org/doc/en/handbook/index.xml
# http://www.gentoo.org/doc/ru/handbook/index.xml
# http://gentoo-wiki.com
# http://ru.gentoo-wiki.com
# also for full update gentoo
# http://www.gentoo.ru/?q=node/193 (rus)
# http://ru.gentoo-wiki.com/HOWTO_Полное_обновление_системы (rus)


####### notes ################################################################
# "-1->" - for my notebook
# "-2->" - for my PC
# "-3->" - default


####### FLAGS SETINGS ########################################################
####### uncomment what you want ##############################################
####### and don't use LDFLAGS this - it's stupid ;) ##########################



#-1-> CFLAGS="-march=pentium-m -O2 -pipe -fomit-frame-pointer -mmmx -msse2 -mfpmath=sse"
#-2-> CFLAGS="-march=pentium2  -O2 -pipe -fomit-frame-pointer -mmmx"
#-3-> 
CFLAGS="-march=i686      -O2 -pipe"

#-1-> USE="-ipv6 -cups -kde -gnome -gtk -qt3 -qt4 -alsa mmx sse sse2"
#-2-> USE="-ipv6 -cups -kde -gnome -gtk -qt3 -qt4 -alsa mmx"

#-1-> VIDEO_CARDS="fglrx radeon vesa"
#-2-> VIDEO_CARDS="nvidia nv vesa"


####### STATIC FLAGS #########################################################
####### for my computers #####################################################
####### and don't use LDFLAGS this - it's stupid ;) ##########################

FEATURES="parallel-fetch buildpkg noinfo nodoc candy"

LINGUAS="ru"
MAKEOPTS="-j2"
CXXFLAGS="${CFLAGS}"

ACCEPT_KEYWORDS="x86"
INPUT_DEVICES="keyboard mouse"

PORTAGE_NICENESS=19
CLEAN_DELAY=0

GENTOO_MIRRORS="
	http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/
	http://mirror.yandex.ru/gentoo-distfiles/
	http://gentoo.supp.name/"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

3.

3. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html .
4. в /etc/make.conf.example есть инфа.
5. Я для удобства разбиваю USE-флаги по категориям.

не совсем то,

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

Quote:Я для

void написал(а):
Я для удобства разбиваю USE-флаги по категориям.

каким образом?

я просто в

я просто в несколько строчек пишу

А я по

А я по алфавиту.
________________
Software is like sex; it's better when it's free.

Что, ручками

Что, ручками чтоли редачишь? или скрипт с каким-нить особым парсером написал?

:)

руками

руками

Мне как то ufed

Мне как то ufed больше для редактирования нравится =)
___________________________________________
Gentoo GNU/Linux 2.6.26 GCC 4.3.1
Working on Gentoo for iPAQ hx4700 :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

А я вот

А я вот наткнулся на такую забавную вещь, что необьявлённый флаг интерпретируется раными пакетами по разному. В хэндбуке об этом сказано, но столкнулся я с этим только сейчас.
Когда emerge info | grep minimal ничего не выдаёт - это не значит флаг обьявлен по минусу. Это так же может означать, что флаг не обьявлен вовсе. Так, у одного из пакетов по emerge -pvuDN world я увидел этот флаг включённым.
Так что я твёрдо для себя решил, что положительные USE флаги надо использовать по минимому, только в случае острой необходимости, когда не субьективно "на будующее пригодится", а когда "надо сдесь и сейчас". Так что для оптимизации я пользуюсь только отрицательными USE флагами, и то только глобальными, типа '-kde -gnome -ipv6 и т.п.' Я полагаюсь на фой файл-профайл, eselect profile set 9 (2008.0 desctop).
Хотя опыта в генте у меня пока что практически нет, но вот пока что я сделал для себя именно такой вывод %)

package.use тебе в

package.use тебе в помощь ;)
________________
Software is like sex; it's better when it's free.

глобальные

глобальные флаги нужны, чтобы весь софт собирался с поддержкой нужных тебе вещей ВСЕГДА

например такой флаг как alsa(да и не только он) при наличае звука в системе должен быть указан глобально
в один прекрасный момент ты попадеш в ситуацию когда у тя что то будет работать не так, а потом выяснится, что ты недоглядел и пакет у тя собрался без какого то флага, хотя ты будеш уверен - "Да точно с ним собрано, я знаю"

Переодически такие темы в форуме всплывают...

Так что нужно по возможности(и при желании) контролировать все флаги у всех пакетов - только тогда ты получишь полностью заточеную систему

и у людей, которые долго и бережно вынашивают свою gentoo при смене профиля почти ничего не пересобирается ))

В том случае,

В том случае, если флаг переписывается в package.use, то на это есть веские причины: либо это сам пользователь сделал, либо это сделали меинтейнеры. Если первый виноват - его проблемы, если второй - на то, повторюсь, были причины (нестабильность, неподдерживаемость архитектурой и т.д.).
Да, и дайте пожалуйста линк, где отключался флаг, прописанный в make.conf ;)
________________
Software is like sex; it's better when it's free.

это вы мне?

это вы мне?

Ммм... Ну

Ммм... Ну да.

t17fenics написал(а):
глобальные флаги нужны, чтобы весь софт собирался с поддержкой нужных тебе вещей ВСЕГДА

например такой флаг как alsa(да и не только он) при наличае звука в системе должен быть указан глобально
в один прекрасный момент ты попадеш в ситуацию когда у тя что то будет работать не так, а потом выяснится, что ты недоглядел и пакет у тя собрался без какого то флага, хотя ты будеш уверен - "Да точно с ним собрано, я знаю"

Признаюсь, такого у меня еще не случалось. Если глобально (в make.conf) прописываешь флаг, то если он не отменен package.use и он может быть применен на текущей архитектуре, ни разу не бывало, чтобы он собирался без оного.

t17fenics написал(а):
Переодически такие темы в форуме всплывают...

Вот я вас и попросил дать хоть одну ссылку, где такое происходит.

________________
Software is like sex; it's better when it's free.

вот например

вот например кэдэешник вообще во флагах запутался http://www.gentoo.ru/node/11174

Цитата:
и у людей, которые долго и бережно вынашивают свою gentoo при смене профиля почти ничего не пересобирается

Буду знать, спс )

А по теме топика ещё кто нить добавит что нить? Мне бы ещё ссылочки и ещё ответи на другие вопросы, там их четыре ^_^'

А, блин, вас тут

А, блин, вас тут двое было, сорри :)
У вас обоих ники с цифрами - вот и не стал вчитываться.
________________
Software is like sex; it's better when it's free.

Флаг

Флаг прописаный в /etc/make.conf не включается, если он замаскирован в /usr/portage/profiles/base/use.mask. Может быть речь шла о таких случаях? ;)

____________
Экономь электроэнергию! Выключи NumLock!

Не, речь тут о

Не, речь тут о таком случае, когда флаг не прописан нигде, ни в /etc/portage/package.use ни в make.conf. В этом случае состояние флага вкл/вык определяется умолчательными настройками конкретного приложения. Что весьма логично и об этом сказано в хэндбуке. С этим всё ясно. Вы бы на остальные вопросы топика ответили бы? ^_^'
Вот например про AUTOCLEAN. Как я уже заметил - он и вправду не нужен. Как я понял, он заставляет делать emerge --clean после каждой процедулу установки какого нить пакета. Так я заметил, что он и так это делает, даже когда флага AUTOCLEAN="yes" нету в make.conf. Но многие его почему то всё таки прописывают в свой make.conf.
Ещё я так и не усянил, насколько правильно и полезно вписывать в make.conf переменную LDFLAGS?

l6xus@kris-station ~ $ grep

l6xus@kris-station ~ $ grep -r AUTOCLEAN /usr/portage/profiles/
/usr/portage/profiles/ChangeLog:  removing AUTOCLEAN and PKGDIR as they are rarely relevant.
l6xus@kris-station ~ $ grep -r LDFLAGS /usr/portage/profiles/
/usr/portage/profiles/arch/amd64/make.defaults:LDFLAGS_x86="-m elf_i386"
/usr/portage/profiles/arch/powerpc/ppc64/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/arch/powerpc/ppc64/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/arch/sparc/make.defaults:LDFLAGS_sparc64="-m elf64_sparc"
/usr/portage/profiles/arch/sparc/make.defaults:LDFLAGS_sparc32="-m elf32_sparc"
/usr/portage/profiles/default-linux/amd64/make.defaults:LDFLAGS_x86="-m elf_i386 -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib"
/usr/portage/profiles/default-linux/amd64/vserver/make.defaults:#LDFLAGS_amd64="-m elf_x86_64"
/usr/portage/profiles/default-linux/amd64/vserver/make.defaults:LDFLAGS_x86="-m elf_i386 -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib"
/usr/portage/profiles/default-linux/ppc/ppc64/2007.0/32bit-userland/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2007.0/32bit-userland/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2007.0/64bit-userland/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2007.0/64bit-userland/make.defaults:#LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.0/multilib/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.0/multilib/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.1/32bit-userland/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.1/32bit-userland/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.1/64bit-userland-gcc4/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.1/64bit-userland-gcc4/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.1/64bit-userland/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.1/64bit-userland/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.1/multilib/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/ppc64/2006.1/multilib/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.0/32bit-userland/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.0/32bit-userland/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.0/multilib/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.0/multilib/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.0/64bit-userland/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.0/64bit-userland/make.defaults:#LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.1/32bit-userland/make.defaults:LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.1/32bit-userland/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.1/64bit-userland/make.defaults:LDFLAGS_ppc64="-m elf64ppc"
/usr/portage/profiles/default-linux/ppc/dev/ppc64/2007.1/64bit-userland/make.defaults:#LDFLAGS_ppc="-m elf32ppc"
/usr/portage/profiles/default-linux/sparc/sparc64/make.defaults:LDFLAGS_sparc64="-m elf64_sparc"
/usr/portage/profiles/default-linux/sparc/sparc64/make.defaults:LDFLAGS_sparc32="-m elf32_sparc"
/usr/portage/profiles/default-linux/sparc/sparc32/make.defaults:LDFLAGS_sparc32="-m elf32_sparc"
/usr/portage/profiles/hardened/amd64/make.defaults:LDFLAGS_amd64="-m elf_x86_64"
/usr/portage/profiles/hardened/amd64/multilib/make.defaults:#LDFLAGS_amd64="-m elf_x86_64"
/usr/portage/profiles/hardened/amd64/multilib/make.defaults:LDFLAGS_x86="-m elf_i386 -L/emul/linux/x86/lib -L/emul/linux/x86/usr/lib"
/usr/portage/profiles/info_vars:LDFLAGS

Очевидно, AUTOCLEAN не используется, а LDFLAGS определён в профиле.
____________
Экономь электроэнергию! Выключи NumLock!

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".