我正在尝试将使用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不匹配实际上不存在任何问题。
答案 0 :(得分:0)
似乎没有任何预先存在的标志。相反,我编辑了binutils/bfd/elf32-arm.c
将这些错误转换为警告并重建。这似乎有效,生成的二进制文件已加载并在我的目标系统上正确运行。