Проблемы с компиляцией ядра, которое я модифицировал - PullRequest
0 голосов
/ 14 апреля 2020

Я взял 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

Я с радостью предоставлю любую другую информацию, которая может вам понадобиться.

Приветствия.

1 Ответ

1 голос
/ 14 апреля 2020

Обнаружена проблема, у меня была функция внутри функции ... Вероятно, был перемещен, копируя что-то еще.

...