我目前正在交叉编译 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” 修复该错误,但失败了。
答案 0 :(得分:0)
最后,通过与编译器团队联系来解决此错误。如果您有同样的问题。请寻求中国编译器团队的帮助并更新您的编译器。