CFLAGS для сборки ядра

Люди, подскажите! При сборке ядра и модулей "make bzImage modules" испрользуются CFLAGS из /etc/make.conf или где-то еще их надо указывать?

http://www.gentoo.ru/node/157

http://www.gentoo.ru/node/15777

см CFLAGS_KERNEL

dbeketov написал(а): Люди,

dbeketov написал(а):
Люди, подскажите! При сборке ядра и модулей "make bzImage modules" испрользуются CFLAGS из /etc/make.conf или где-то еще их надо указывать?

Инструкции предписывают использовать в /etc/make.conf
Но и самодеятельность никто не запрещал... Только уже на свой страх и риск :)

Ядро использует только свои

Ядро использует только свои внутренние CFLAGS прописанные у него в мейкфайлах. менять их крайне не рекомендуется если вы не разбираетесь в потрохах ядра на уровне разработчика

___________________________________________
Working on Gentoo for iPAQ hx4700 and Openmoko Neo Freerunner :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

Ну, можно и KERNEL_LDFLAGS

Ну, можно и KERNEL_LDFLAGS прописать, при желании... Я как-то пробывал. В 9 случаев из 10 - ядро либо не грузилось ваще, либо странно себя вело =)

ну "елсли без фанатизму" то

ну "елсли без фанатизму" то все нормально работает.
PS как иниче люли собирают ядра для всякие армов

я собираю ядор с

я собираю ядор с CFLAGS_KERNEL="march=native mtune=native -pipe"... работает пошустрее, чем с k8, которое есть в menuconfig... работает стабильно, падает очень редко и в основном в тех же местах, что и с родными CFLAGS...
пытался еще -О3 добавлять, но тада оно падать чаще начинало (((

А CFLAGS_KERNEL надо прямо в

А CFLAGS_KERNEL надо прямо в /etc/make.conf прописывать?

Нет. make вообще не

Нет. make вообще не использует make.conf, это фича портажа, несмотря на название.

Юзать, к примеру, так:
CFLAGS_KERNEL="-fbreak-my-kernel" make -j4

Эти флаги добавляются к дефолтным, так что на этот счет можно не беспокоится.

если вам лень каждый раз

если вам лень каждый раз писать CFLAGS_KERNEL="..." непосредственно перед запуском make, то создайте файл /etc/profile.d/cflags_kernel.sh и запишите в него строку с вашим CFLAGS_KERNEL... ваша строка будет всегда с вами ;-)

Theli написал(а): создайте

Theli написал(а):
создайте файл /etc/profile.d/cflags_kernel.sh и запишите в него строку с вашим CFLAGS_KERNEL

1. В какой форме записать - просто CFLAGS_KERNEL="..." или set CFLAGS_KERNEL="..."?
2. Это добавится к дефолтным, или заменит их?
3. При экспериментах с Makefile выяснилось, что если среди прочих флагов в CFLAGS_KERNEL указать -pipe, при компиляции это воспринимается как ошибка и игнорится (кстати - игнорится вся строка?) - почему так?
4. Там же, в Makefile, есть разница в указании CFLAGS_KERNEL = ... и CFLAGS_KERNEL += ... ?
5. Раз уж речь зашла об опциях компиляции - ещё вопрос. При указании -O2, задействуется некий набор флагов. Так вот, если я хочу один из этих флагов изменить (не важно какой - к примеру falign-jumps), и укажу своё значение - оно воспримется, или для этого потребуется убирать -O2 и вручную вписывать то, что в него входило (с требуемыми изменениями)?

Мы тоже не всего читали Шнитке!.. © В. Вишневский

1. добавить в том же виде как

1. добавить в том же виде как все остальные переменные export CFLAGS_KERNEL=...
2. если почитать make-файлы, то там CFLAGS_KERNEL просто добавляется к другой переменной... CFLAGS_KERNEL сделана специально для внесения изменений без изменения скриптов и изначально пуста...
3. тут не знаю... ошибок не замечал...
4. полагаю, что = перезадает значение переменной, а += добавляет значение к текщему...
5. емнип, если указать -foption и -fno-option в одной строке, то это будет равносильно тому, что вы бы вообще ничего не писали... соответственно, чтобы отключить опцию, включенную -Ox надо добавить параметр ее отключающий :)

Theli написал(а): ...

Theli написал(а):
3. тут не знаю... ошибок не замечал

Просто ошибки очень быстро проскакивают в терминале в самом начале и цветом не выделяются, а результат вполне работоспособен. Сами ошибки точно такие же, как их показывает gcc -march=native blablabla -pipe -Q --help=target

Цитата:
4. полагаю, что = перезадает значение переменной, а += добавляет значение к текщему

Ну да, это очевидно, вопрос в том, какое значение на момент добавления является текущим...

Цитата:
5. емнип, если указать -foption и -fno-option в одной строке, то это будет равносильно тому, что вы бы вообще ничего не писали... соответственно, чтобы отключить опцию, включенную -Ox надо добавить параметр ее отключающий

Стоп себе, думаю,- не срастается как-то... По первой (констатирующей) части Вашего ответа получается, что если -Ox включает некую опцию -foption, а я её отключаю "обратным" флагом -fno-option - это равносильно исчезновению какого бы то ни было задания этой опции, и чтобы её всё-таки как-то обозначить, надо этот же "обратный" флаг указать ещё раз (дважды)? Актуально для опций, где не просто логические значения да/нет, а присваиваются какие-либо значения, к примеру -falign-jumps=16

Мы тоже не всего читали Шнитке!.. © В. Вишневский

быстрая подсказка: для выбора

быстрая подсказка:
для выбора CFLAGS http://en.gentoo-wiki.com/wiki/Safe_Cflags ;

cyberdimk

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

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