crosstool-ng的LD在编译内核时给出“源对象a / b / built-in.o具有EABI版本5,但目标b / built-in.o具有EABI版本0”

问题描述

我刚刚使用crosstool-ng为“ arm-unknown-eabi”创建了一个gcc11交叉编译器来编译内核(对于msm8974芯片组为android),但是在链接的某个时刻,LD给出了有关EABI版本的错误,目标文件甚至不存在。 这些是crosstool工具链的组成部分:

  • binutils-2.34.tar.xz
  • gcc-git-46a58c77.tar.bz2
  • gettext-0.20.1.tar.xz
  • gmp-6.2.0.tar.xz
  • isl-0.22.tar.xz
  • libiconv-1.16.tar.gz
  • mpc-1.1.0.tar.gz
  • mpfr-4.0.2.tar.xz
  • ncurses-6.2.tar.gz
  • newlib-3.3.0.tar.gz

给出错误的完整命令是这样的:

  • / root / x-tools / arm-unknown-eabi / bin / arm-unknown-eabi-ld -EL -r -o drivers / gpu / built-in.o drivers / gpu / drm / built-in。 o drivers / gpu / ion / built-in.o
  • / root / x-tools / arm-unknown-eabi / bin / arm-unknown-eabi-ld:错误:源对象驱动程序/gpu/ion/built-in.o具有EABI版本5,但目标驱动程序/ gpu / built-in.o具有EABI版本0
  • / root / x-tools / arm-unknown-eabi / bin / arm-unknown-eabi-ld:无法合并文件驱动程序/gpu/ion/built-in.o的目标特定数据

查看这些文件:

  • drivers / gpu / built-in.o:无法打开“ drivers / gpu / built-in.o”(没有此类文件或目录)
  • drivers / gpu / drm / built-in.o:可重定位的ELF 32位LSB,ARM,版本1(ARM),未剥离
  • drivers / gpu / ion / built-in.o:可重定位的ELF 32位LSB,ARM,EABI5版本1(SYSV),未剥离

真正的目标(drivers / gpu / built-in.o)甚至不存在。尽管很小(320字节,我认为它是由AR创建的),但那里有一个DRM(未显示为EABI5)。

使用另一个工具链,使用完全相同的内核代码,Makefile等,一切都可以很好地进行。我以前使用的是musl gcc 10。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...