linux编译.o文件,使用-O0编译Linux内核

本文详细介绍了在Linux内核编译过程中,如何使用-O0优化等级来避免`modpost: Section mismatches detected.`错误。通过修改Makefile和scripts/mod/modpost.c文件,以及针对报错文件单独设置-O0优化,成功编译内核。此外,还提供了解决编译中遇到的未定义函数问题的方法。
摘要由CSDN通过智能技术生成

文章目录

1. 编译内核

1.1. 修改gcc优化等级

1.2. 防止`modpost: Section mismatches detected.`错误

1.3. 根据需要编译内核

1.4. 修改子目录Makefile

1.5. 重新执行编译

2. 参考资料

1. 编译内核

进入kernel 源码目录

1.1. 修改gcc优化等级

diff --git a/Makefile b/Makefile

index d4d36c619..1047c83c6 100644

--- a/Makefile

+++ b/Makefile

@@ -701,11 +701,11 @@ KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)

KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)

ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE

-KBUILD_CFLAGS += -O2

+KBUILD_CFLAGS += -O0

else ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3

-KBUILD_CFLAGS += -O3

+KBUILD_CFLAGS += -O0

else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE

-KBUILD_CFLAGS += -Os

+KBUILD_CFLAGS += -O0

endif

ifdef CONFIG_CC_DISABLE_WARN_MAYBE_UNINITIALIZED

1.2. 防止modpost: Section mismatches detected.错误

如果此时直接执行make进行编译,会出现modpost: Section mismatches detected.错误。

解决方法是修改scripts/mod/modpost.c。

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c

index d2a30a7b3..58e2237c2 100644

--- a/scripts/mod/modpost.c

+++ b/scripts/mod/modpost.c

@

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值