指示GNU链接器忽略float abi不匹配?

时间:2017-03-22 21:34:39

标签: gcc arm cross-compiling linker-errors

我正在尝试将使用float-abi=hard构建的一些目标文件链接到使用float-abi=soft构建的一些目标文件。主要ABI是apcs-gnu,所有目标文件都使用,而CPU是ARM9。

链接器(binutils 2.28)报告了一堆错误,例如:

..../arm-eabi/bin/ld: failed to merge target specific data of file c:/test/old.o
..../arm-eabi/bin/ld: error: c:/test/old.o uses FPA instructions, whereas New does not
..../arm-eabi/bin/ld: c:/test/old.o uses hardware FP, whereas New uses software FP

但是,两个对象都没有使用任何浮点数。显然,链接器正在检测来自目标文件元数据的不匹配,而不是来自任何实际的函数调用。

是否可以指示链接器忽略此链接并进行链接?因为没有浮点使用,我预计由于float-ABI不匹配实际上不存在任何问题。

1 个答案:

答案 0 :(得分:0)

似乎没有任何预先存在的标志。相反,我编辑了binutils/bfd/elf32-arm.c将这些错误转换为警告并重建。这似乎有效,生成的二进制文件已加载并在我的目标系统上正确运行。