CFLAGS для сборки ядра
dbeketov 12 Августа, 2009 - 06:32
Люди, подскажите! При сборке ядра и модулей "make bzImage modules" испрользуются CFLAGS из /etc/make.conf или где-то еще их надо указывать?
»
- Для комментирования войдите или зарегистрируйтесь
http://www.gentoo.ru/node/157
http://www.gentoo.ru/node/15777
см CFLAGS_KERNEL
dbeketov написал(а): Люди,
Инструкции предписывают использовать в /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 написал(а): создайте
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 написал(а): ...
Просто ошибки очень быстро проскакивают в терминале в самом начале и цветом не выделяются, а результат вполне работоспособен. Сами ошибки точно такие же, как их показывает gcc -march=native blablabla -pipe -Q --help=target
Ну да, это очевидно, вопрос в том, какое значение на момент добавления является текущим...
Стоп себе, думаю,- не срастается как-то... По первой (констатирующей) части Вашего ответа получается, что если -Ox включает некую опцию -foption, а я её отключаю "обратным" флагом -fno-option - это равносильно исчезновению какого бы то ни было задания этой опции, и чтобы её всё-таки как-то обозначить, надо этот же "обратный" флаг указать ещё раз (дважды)? Актуально для опций, где не просто логические значения да/нет, а присваиваются какие-либо значения, к примеру -falign-jumps=16
Мы тоже не всего читали Шнитке!.. © В. Вишневский
быстрая подсказка: для выбора
быстрая подсказка:
для выбора CFLAGS http://en.gentoo-wiki.com/wiki/Safe_Cflags ;
cyberdimk