u-boot - 源对象具有EABI版本5,但目标具有EABI版本0

时间:2014-02-03 20:39:20

标签: u-boot

当我尝试编译u-boot时,我收到以下错误:

enter image description here

此链接解释了错误:

  

http://www.denx.de/wiki/DULG/SourceObjectHasEABIVersion4ButTargetHasEABIVersion0

但是,我不知道在源代码中需要更改的位置。

1 个答案:

答案 0 :(得分:1)

我改变了行

PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)

在cpu / arm926ejs / config.mk中

PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=aapcs-linux)

这一次,我收到以下错误:

/home/ubuntu/Desktop/lpc3250/toolchain-final-armv5l-timesys-linux-uclibcgnueabi/bin/../lib/gcc/armv5l-timesys-linux-uclibcgnueabi/4.5.3/libgcc.a(_dvmd_lnx.o): In function `__aeabi_ldiv0':
/home/timesys/work/ea313x_factory/factory-HEAD/build_armv5l-timesys-linux-uclibcgnueabi/gcc-4.5.3/gcc-4.5.3/libgcc/../gcc/config/arm/lib1funcs.asm:1265: undefined reference to `raise'
/home/ubuntu/Desktop/lpc3250/toolchain-final-armv5l-timesys-linux-uclibcgnueabi/bin/../lib/gcc/armv5l-timesys-linux-uclibcgnueabi/4.5.3/libgcc.a(bpabi.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
/home/ubuntu/Desktop/lpc3250/toolchain-final-armv5l-timesys-linux-uclibcgnueabi/bin/../lib/gcc/armv5l-timesys-linux-uclibcgnueabi/4.5.3/libgcc.a(_divdi3.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
/home/ubuntu/Desktop/lpc3250/toolchain-final-armv5l-timesys-linux-uclibcgnueabi/bin/../lib/gcc/armv5l-timesys-linux-uclibcgnueabi/4.5.3/libgcc.a(_udivdi3.o):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'

似乎问题与libgcc.a有关。

我学到的是u-boot只用很少的编译器编译。

链接

  

http://communities.mentor.com/community/cs/archives/arm-gnu/msg02478.html

将我的问题解释为

  

这是一个需要修复的简单问题。首先你需要了解这一点   ARM EABI和ARM GNU / Linux工具链是不同的。 Linux内核   和应用程序是用ARM GNU / Linux工具链编译的   bootloaders是使用ARM EABI工具链编译的。

     

U-boot是一个裸机应用程序,因此使用ARM EABI   工具链。这是编译U-boot和其他非Linux的最佳方法   应用。可以使用Linux工具链编译U-boot   但不推荐。