GCC链接错误,重定位被截断以适合:针对符号错误的GPREL16

时间:2018-12-24 12:14:06

标签: tensorflow gcc bazel

我目前正在交叉编译 tensorflow r1.9 。主机系统是ubuntu 18.04,目标系统是 sw26010 (中文CPU,其指令集基于alpha)。交叉编译器基于GCC 5.3。

由于某些操作系统的限制,我必须静态链接所有库到张量流。 libstdc ++。a和libpthread.a。包括在内。

经过一些配置,我可以成功编译所有目标文件。 (将“ // conditions:default”:[],”添加到nsync BUILD文件中,并将sw2 CPU宏添加到双转换BUILD文件中。)但是,我无法成功链接所有库文件和目标文件。

这是错误消息。

/home/qh5/swgcc530/gcc-5.3.0/libstdc ++-v3 / src / c ++ 98 / ios_init.cc:140 :(。text._ZNSt8ios_base4InitD2Ev + 0xf4):重定位后截断以适合:GPREL16针对符号在/usr/sw-mpp/swcc/swgcc530-tools/usr/sw_64sw2-unknown-linux-gnu/lib/libstdc++.a(globals_io.o)

这里是tensorflow bazel的CROSSTOOL。 CROSSTOOL on hastebin 我尝试使用 compiler_flag:“ -msmall-data” compiler_flag:“ -fpic” 修复该错误,但失败了。

1 个答案:

答案 0 :(得分:0)

最后,通过与编译器团队联系来解决此错误。如果您有同样的问题。请寻求中国编译器团队的帮助并更新您的编译器。