linux 内核编译错误总结

本文详细阐述了在使用arm-2008q3的Gcc4.3版本进行Linux内核编译时,遇到的`__aeabi_uldivmod`引用未定义的问题。通过分析include/linux/time.h文件的变化,解释了代码优化导致问题产生的原因,并提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 linux 内核编译错误总结

1. include/linux/time.h:174: undefined reference to `__aeabi_uldivmod'
此问题是由于arm-2008q3的Gcc 4.3版,进行了代码优化导致。
 

--- include/linux/time.h 2008-10-09 19:47:23.000000000 +0200
+++ include/linux/time.h.new 2008-10-09 19:47:54.000000000 +0200
@@ -173,6 +173,10 @@
 {
        ns += a->tv_nsec;
        while(unlikely(ns >= NSEC_PER_SEC)) {
+ /* The following asm() prevents the compiler from
+ * optimising this loop into a modulo operation. */

+ asm("" : "+r"(ns));
+
                ns -= NSEC_PER_SEC;
                a->tv_sec++;
        }

 

2.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值