linux内核未定义的引用,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'

--- 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不存在!

+0

[这将是可取的(http://meta.stackexchange.com/q/8259),包括这里问题的关键部分:这不仅对我们来说比在其他网站上阅读内容容易得多,而且Stack Overflow与其问题和答案一样有用 - 而且如果你的URL永远消失了,这个问题将来对其他人来说是无用的。 Thanks1 –

+0

[该补丁只是一行asm和评论](http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blobdiff;f=include /linux/time.h;h=d32ef0ad4c0aaf8964d94abe215c5dbf4dde8aaf;hp=2091a19f1655aab8e5130256f83af4103efa9e3f;hb=38332cb98772f5ea757e6486bed7ed0381cb5f98;hpb=e48af19f56eb47a1f908ee8f16df9d246f955b21) - 你尝试不仅仅是手打字那些由ASM到正确的位置的文件? –

+0

Sarnold,但问题是while循环不存在于新文件中。 (while(不太可能(ns> = NSEC_PER_SEC))) –

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值