编译我已修改的内核的问题

问题描述 投票:0回答:1

我采用了Linux内核版本4.9.30,添加了一个新目录/ fsac,其文件包含来自其他目录(/ include / fsac)的标头,这几乎是我所做的全部更改。尝试编译时,在/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’

(...)

在网上搜索时,我发现建议是简单地从功能中删除“静态”。这样做有效地避免了该错误,但是相反,我开始从objtool收到很多警告,例如对于每个静态被删除的函数,如“框架指针状态不匹配”。

我发现可以通过更改配置文件CONFIG_STACK_VALIDATION=n来避免这些警告。可以,但是即使没有警告,编译也会失败(错误2)。

因此,我想知道:

1-从冒犯的功能中删除“静态”是正确的解决方法吗?

2-如果是这样,我该如何处理objtool警告?仅这些警告会构成编译错误,还是必须存在其他错误?

3-您认为我应该降低GCC吗?

这是项目的源代码:https://github.com/Zildj1an/FSAC_Kernel这是不删除静态变量的编译日志:https://github.com/Zildj1an/FSAC_Kernel/blob/master/build_err

我会很乐意提供您可能需要的其他信息。

欢呼声。

c linux makefile compilation kernel
1个回答
0
投票

发现问题,我在函数内部有一个函数...可能在复制其他内容时被移动了。

© www.soinside.com 2019 - 2024. All rights reserved.