龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 6690|回复: 17

编译内核,LD的时候,undefined reference to `__udelay'

[复制链接]
发表于 2013-9-14 20:58:26 | 显示全部楼层 |阅读模式
折腾不出来了,麻烦各位了,

我编译的是 linux-loongson-community-3.11
# gcc -v
Using built-in specs.
COLLECT_GCC=/usr/mips64el-unknown-linux-gnu/gcc-bin/4.7.3/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/mips64el-unknown-linux-gnu/4.7.3/lto-wrapper
Target: mips64el-unknown-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.7.3/work/gcc-4.7.3/configure --prefix=/usr --bindir=/usr/mips64el-unknown-linux-gnu/gcc-bin/4.7.3 --includedir=/usr/lib/gcc/mips64el-unknown-linux-gnu/4.7.3/include --datadir=/usr/share/gcc-data/mips64el-unknown-linux-gnu/4.7.3 --mandir=/usr/share/gcc-data/mips64el-unknown-linux-gnu/4.7.3/man --infodir=/usr/share/gcc-data/mips64el-unknown-linux-gnu/4.7.3/info --with-gxx-include-dir=/usr/lib/gcc/mips64el-unknown-linux-gnu/4.7.3/include/g++-v4 --host=mips64el-unknown-linux-gnu --build=mips64el-unknown-linux-gnu --disable-altivec --disable-fixed-point --without-cloog --without-ppl --disable-lto --enable-nls --without-included-gettext --with-system-zlib --enable-obsolete --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --disable-libgomp --with-python-dir=/share/gcc-data/mips64el-unknown-linux-gnu/4.7.3/python --enable-checking=release --disable-libgcj --enable-libstdcxx-time --disable-libquadmath --with-abi=n32 --enable-languages=c,c++ --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.7.3 p1.0, pie-0.5.5'
Thread model: posix
gcc version 4.7.3 (Gentoo 4.7.3 p1.0, pie-0.5.5)


下面是错误信息:
LD      init/built-in.o
arch/mips/built-in.o: In function `bonito_irqdispatch':
(.text+0x2e8): undefined reference to `__udelay'
arch/mips/built-in.o: In function `ec_query_seq':
(.text+0x36e4): undefined reference to `__udelay'
arch/mips/built-in.o: In function `ec_query_seq':
(.text+0x36fc): undefined reference to `__udelay'
arch/mips/built-in.o: In function `ec_query_seq':
(.text+0x3728): undefined reference to `__udelay'
arch/mips/built-in.o: In function `ec_query_seq':
(.text+0x3740): undefined reference to `__udelay'
arch/mips/built-in.o.text+0x394c): more undefined references to `__udelay' follow
drivers/built-in.o: In function `ata_sff_exec_command':
(.text+0x10a574): undefined reference to `__ndelay'
drivers/built-in.o: In function `ata_sff_exec_command':
(.text+0x10a5a0): undefined reference to `__ndelay'
drivers/built-in.o: In function `ata_sff_pause':
(.text+0x10ab14): undefined reference to `__ndelay'
drivers/built-in.o: In function `ata_sff_pause':
(.text+0x10ab3c): undefined reference to `__ndelay'
drivers/built-in.o: In function `ata_sff_dev_select':
(.text+0x10ab9c): undefined reference to `__ndelay'
drivers/built-in.o.text+0x10abc8): more undefined references to `__ndelay' follow
drivers/built-in.o: In function `ata_sff_thaw':
(.text+0x10aed8): undefined reference to `__udelay'
drivers/built-in.o: In function `ata_sff_irq_on':
(.text+0x10b410): undefined reference to `__udelay'
drivers/built-in.o: In function `ata_sff_hsm_move':
(.text+0x10b954): undefined reference to `__udelay'
drivers/built-in.o: In function `ata_sff_hsm_move':
(.text+0x10bf40): undefined reference to `__udelay'
drivers/built-in.o: In function `ata_sff_softreset':
(.text+0x10cc20): undefined reference to `__udelay'
drivers/built-in.o.text+0x10cc3c): more undefined references to `__udelay' follow
make: *** [vmlinux] Error 1
 楼主| 发表于 2013-9-14 21:00:31 | 显示全部楼层
这个udelay 是在哪实现的
 楼主| 发表于 2013-9-14 21:17:54 | 显示全部楼层
本帖最后由 fxzhao 于 2013-9-14 21:22 编辑

找到了
arch/mips/lib 下delay.c  没编译
看了下Makefile
ifndef CONFIG_CSRC_R4K
lib-y   += delay.o
endif
还没弄懂
 楼主| 发表于 2013-9-14 22:17:50 | 显示全部楼层
3.4.10  版本没啥问题,看了下也是没编译这个文件的,不知道差在哪里
 楼主| 发表于 2013-9-15 18:21:44 | 显示全部楼层
看来要在3.4的版本里找找delay是哪里实现的
 楼主| 发表于 2013-9-27 13:05:33 | 显示全部楼层
自己顶起来
发表于 2013-9-28 11:04:59 | 显示全部楼层
回复 3# fxzhao


    问题还没解决吗?
既然发现了没编译,修改Makefile,添加上,编译进去,试一下,行了就ok
不知道是要解决问题?还是要深究问题?
 楼主| 发表于 2013-10-8 12:26:17 | 显示全部楼层
本帖最后由 fxzhao 于 2013-10-8 12:28 编辑

arch/mips/lib 下delay.c  有问题的,
编译进去后,敲完命令,总要顿一下才出结果
3.4版本的 delay 用的也不是这个文件,还没去找是在哪里实现的。
 楼主| 发表于 2013-10-16 23:13:33 | 显示全部楼层
本帖最后由 fxzhao 于 2013-10-16 23:33 编辑

和3.4 版本比较了下,是差在arch/mips/kernel/csrc-r4k.c 这个文件上,3.4这个版本有些改动
 楼主| 发表于 2013-10-22 21:15:37 | 显示全部楼层
看了下 csrc-r4k.c 的日志,Alexandre Oliva 在2013-07-01时 Remove all traces of CONFIG_R4K_TIMER_FOR_CPUFREQ,所以还是 .config 问题,估计CONFIG_CS5536_MFGPT=y 就可以了。
今天在google的论坛里找到相关的话题
fail to compile with lemote2f_defconfig
https://groups.google.com/forum/#!topic/loongson-dev/v_qz8xovRn4

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-7-16 13:57 , Processed in 0.199432 second(s), 20 queries .

快速回复 返回顶部 返回列表