[Гайд] Как пофиксить большинство ошибок при сборке ядра. Как отключить Werror'ы и gcc-wrapper.
Олег Кротенко
Привет, Читатель! Сегодня у нас максимально полезный пост, он напрямую связан с темой о сборке ядра. Без долгих рассусоливаний, погнали.
Сегодня в посте будет:
- Что это такое?
- Примеры
- Как выключить
- Результат
1) Что делает gcc-wrapper? Это python-скрипт, который проверяет компиляцию на предупреждения (warning'и) и делает из них ошибки (error'ы). То есть, если при сборке появился варнинг, то он будет считаться за ошибку и компиляция прекратится.
А что же делает Werror? Он делает тоже самое, только он не все варнинги превращает в ошибки. Это не скрипт, а флаг (дополнительный параметр), который указывается при компилировании файла. В нашем случае он будет указан в основной Makefile в папке с ядром.
2) Пример ошибки, вызваной Werror'ом:

Если в сторке с ошибкой есть слово [-Werror=какие-то-слова], значит, эта ошибка вызвана флагом -Werror в Makefile'е.
2.1) Пример ошибки вызваной gcc-wrapper'ом показать не смогу, но скажу, как "вычислить" её. Если появился варнинг (это написано на одной или нескольких строках), а в конце (после строк с предупреждениями) пишется, что это ошибка, значит, тут замешан этот самый враппер.
3) Покажу сначала, как выключить gcc-wrapper, а потом Werror'ы:
3.1) Открываем Makefile, он будет весить ~60-65 КБ (буду всё показывать в ES проводнике).
3.2) Пишем в поиск слово
gcc-wrapper.py
И сносим всё, оставляя только слово $(REAL_CC):


Если же у тебя нету такого в твоём Makefile'е, значит враппер уже выключил умный чел, который загрузил исходники.
3.2) Теперь ищи слово
-Werror
И полностью теперь сноси слова, содержащие в себе слово -Werror, примеры:




И в таком же духе работаешь, пока больше Werror'ов не останется.
3.3) Сохраняешь, выходишь.
4) Результат:

Эта статья тоже очень полезная тем людям, которые только-только начали собирать ядра и ещё многого не знают. Спасибо за прочтение. До скорой встречи, Читатель.
Помогает мне с грамотным написанием текста этот человек - @dodge45.
Купить чай или кофе ему или мне можно тут:
ЯндексДеньги:
410015253696418
ВебМани:
R688369468990
ПриватБанк:
4731219612842256