пишем 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:Я для
каким образом?
я просто в
я просто в несколько строчек пишу
А я по
А я по алфавиту.
________________
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.
это вы мне?
это вы мне?
Ммм... Ну
Ммм... Ну да.
Признаюсь, такого у меня еще не случалось. Если глобально (в make.conf) прописываешь флаг, то если он не отменен package.use и он может быть применен на текущей архитектуре, ни разу не бывало, чтобы он собирался без оного.
Вот я вас и попросил дать хоть одну ссылку, где такое происходит.
________________
Software is like sex; it's better when it's free.
вот например
вот например кэдэешник вообще во флагах запутался http://www.gentoo.ru/node/11174
Буду знать, спс )
А по теме топика ещё кто нить добавит что нить? Мне бы ещё ссылочки и ещё ответи на другие вопросы, там их четыре ^_^'
А, блин, вас тут
А, блин, вас тут двое было, сорри :)
У вас обоих ники с цифрами - вот и не стал вчитываться.
________________
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
Очевидно, AUTOCLEAN не используется, а LDFLAGS определён в профиле.
____________
Экономь электроэнергию! Выключи NumLock!