大佬教程收集整理的这篇文章主要介绍了Linux内核编译错误:未定义引用`__udivdi3’和`__umoddi3′,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
drivers/built-in.o: In function `gem_rxmac_reset': clkdev.c:(.text+0x212238): undefined reference to `__bad_udelay' drivers/built-in.o: In function `divide.part.4': clkdev.c:(.text.unlikely+0x7214): undefined reference to `__udivdi3' clkdev.c:(.text.unlikely+0x7244): undefined reference to `__umoddi3'
我用Google搜索并找到了这个补丁:https://lkml.org/lkml/2008/4/7/82
--- a/include/linux/time.h +++ b/include/linux/time.h @@ -174,6 +174,10 @@ static inline void timespec_add_ns(struct timespec *a,u64 ns) { 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++; }
但未能申请(可能是由于新版本的文件).
patching file linux/time.h Hunk #1 Failed at 174. 1 out of 1 hunk Failed -- saving rejects to file linux/time.h.rej
令人惊讶的是,文件time.h.rej不存在!
你有Sun GEM或Apple GMAC网卡吗?如果没有,您可能只是禁用该驱动程序并摆脱第一条错误消息.
对于第二种,您可能需要在clkdev.c文件中实现类似的asm技巧 – 当我浏览我的副本以进行重复的减法操作时,我没有发现一个 – 但也许你可以简单地窃取一个新的clkdev.c还是clkdev.h来解决这个问题? (这是一个很长的镜头,git log drivers / clk / clkdev.c中只有一个条目.)
以上是大佬教程为你收集整理的Linux内核编译错误:未定义引用`__udivdi3’和`__umoddi3′全部内容,希望文章能够帮你解决Linux内核编译错误:未定义引用`__udivdi3’和`__umoddi3′所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。