我正在编译android内核v3.10.108。我在 defconfig 中启用了内核模块,当尝试编译时,我遇到了这个错误。这是完整的登录hastebin 。这是kernel source 。我不是编程语言专家,我需要帮助。还请指出发生错误的原因。
最佳答案
内核源码实际上是here 。发生错误的原因是有两次提交都将行 EXPORT(sched_setscheduler_nocheck);
添加到文件“kernel/sched/core.c”中,从而导致重新定义错误。提交是 here和 here .
发生错误的原因是提交更改的人没有检查以确保在启用模块时它仍然正确构建。
我建议筹集issue在 github 上报告错误。
您可以通过删除“kernel/sched/core.c”中有问题的 EXPORT(sched_setscheduler_nocheck);
行之一或在本地恢复这两个 git 提交中的第二个来在本地修复问题.
编辑:
我从来没有注意到你的构建日志中有两个错误。另一个是由于两次提交应用于“fs/fs_struct.c”here和 here .
编辑2
随后的链接器错误是由于内核 .config 中的某些内容被配置为模块(或者可能根本没有配置),而这些内容被配置为内置的其他内容链接到。
配置 CONFIG_HW_RANDOM_MSM=y
(不是 =m
)以有望修复“sensors_ssc.c”链接器问题。
配置 CONFIG_IPV6=y
(不是 =m
)和 CONFIG_NF_DEFRAG_IPV6=y
(不是 =m
)以希望修复“ipc_router_security.c”链接器问题。
关于android - 如何修复错误: redefinition of '__kstrtab_sched_setscheduler_nocheck' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47697009/