Я взял Linux ядро версии 4.9.30, добавил новый каталог / fsa c, файлы которого включают заголовки из другого каталога (/ include / fsa c), и это почти все, что я изменил. Пытаясь скомпилировать, я получаю много ошибок в /kernel/sched/core.c, которые выглядят так:
kernel/sched/core.c:2326:20: error: invalid storage class for function ‘set_schedstats’
kernel/sched/core.c:2342:19: error: invalid storage class for function ‘setup_schedstats’
(...)
При поиске в Интернете я увидел, что рекомендуется просто удалить 'stati' c 'из функций. Это позволило эффективно избежать этих ошибок, но вместо этого я начал получать множество предупреждений от objtool, таких как «несоответствие состояния указателя кадра» для каждой функции, чье состояние было c удалено.
Я обнаружил, что эти предупреждения могут быть избегать путем изменения в файле конфигурации CONFIG_STACK_VALIDATION=n
. Это сработало, но, несмотря на отсутствие предупреждения, сборка не удалась (Ошибка 2).
Следовательно, мне интересно:
1 - удаление «stati c» из обиженных функционирует правильное решение?
2 - Если так, как мне обращаться с предупреждениями objtool? Могут ли эти предупреждения представлять собой ошибку компиляции, или должно быть что-то еще?
3 - Как вы думаете, мне следует понизить G CC?
Это исходный код проекта: https://github.com/Zildj1an/FSAC_Kernel Это журнал компиляции без удаления статики: https://github.com/Zildj1an/FSAC_Kernel/blob/master/build_err
Я с радостью предоставлю любую другую информацию, которая может вам понадобиться.
Приветствия.