现在的位置: 首页 > 综合 > 正文

undefined reference to `__aeabi_unwind_cpp_pr0′

2012年09月12日 ⁄ 综合 ⁄ 共 867字 ⁄ 字号 评论关闭
 

 

编译U-boot的时候出现了错误信息,而之前能正确编译的,一定是修改过什么之后
带来的问题!

/usr/local/arm/4.2.2-eabi/usr/bin-ccache/../lib/gcc/arm-unknown-linux-gnueabi/4.2.2/libgcc.a(_udivdi3.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'

于是重新解压一份U-boot,编译,正常通过。 掏出beyond compare,一比较
将不同的文件全部先改名后从OK的那边COPY过来,然后编译,又正常了。
。。。。
经过对文件的替换,最终锁定在nand_base.c这个文件。  又是一番比对苦找后
终于发现错误在于nand_get_flash_type()函数中添加的一句:
printk("%s:chip->chipsize=0x%08x%08x/n",__FUNCTION__,chip->chipsize/(2048*1024*1024),chip->chipsize);
有问题。(2048*1024*1024)还没有超过32bit的空间,不知道怎么不行。   
改为:
printk("%s:chip->chipsize=0x%08x%08x/n",__FUNCTION__,chip->chipsize/(1024*1024*1024),chip->chipsize);
后正常编译。
而改成
printk("%s:chip->chipsize=0x%08x%08x/n",__FUNCTION__,chip->chipsize/(1025*1024*1024),chip->chipsize);
都不行,还是出现那个错误。 
但问题还是得解决,于是我改成
printk("%s:chip->chipsize=0x%08x%08x/n",__FUNCTION__,chip->chipsize/2048/1024/1024),chip->chipsize);
这样就正常了!

抱歉!评论已关闭.