Linux内核编译错误:未定义引用`__udivdi3’和`__umoddi3′
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux内核编译错误:未定义引用`__udivdi3’和`__umoddi3′,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1520字,纯文字阅读大概需要3分钟。
内容图文
![Linux内核编译错误:未定义引用`__udivdi3’和`__umoddi3′](/upload/InfoBanner/zyjiaocheng/963/28cef268e86b43e7817787f1c9dc21b2.jpg)
这是我得到的错误:
http://pastebin.com/VadUW6fy
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不存在!
解决方法:
我应该仔细阅读一下.该补丁适用于timespec_add_ns(),并且您有gem_rxmac_reset()和divide.part.4函数失败.可能与您找到的补丁无关 – 相反,可能标准的64位div / mod函数在您的目标平台上没有实现.
你有Sun GEM或Apple GMAC网卡吗?如果没有,您可能只是禁用该驱动程序并摆脱第一条错误消息.
对于第二种,您可能需要在clkdev.c文件中实现类似的asm技巧 – 当我浏览我的副本以进行重复的减法操作时,我没有发现一个 – 但也许你可以简单地窃取一个新的clkdev.c还是clkdev.h来解决这个问题? (这是一个很长的镜头,git log drivers / clk / clkdev.c中只有一个条目.)
内容总结
以上是互联网集市为您收集整理的Linux内核编译错误:未定义引用`__udivdi3’和`__umoddi3′全部内容,希望文章能够帮你解决Linux内核编译错误:未定义引用`__udivdi3’和`__umoddi3′所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。