我正在为Ubuntu Xenial 16.04构建用于手臂的gcc-8.1.0交叉编译器。
该软件包以debian软件包的形式存在,但仅适用于Ubuntu 18.04 bionic,这就是我要构建它的原因。
但是存在一个问题-gcc-8.1.0作为用于Ubuntu 16.04(用于本机体系结构)的x86_64系统的软件包存在。它会下载所有依赖项,其中包括glibc-2.23。
当我要根据此处给出的说明为 arm 体系结构构建gcc交叉编译器时:http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/
在第6步中,当由于错误/tmp/ccs9D1VT.s: Error: `loc1@GLIBC_2.17' can't be versioned to common symbol 'loc1'
而导致构建标准C库glibc失败时。
我在以前的步骤中根据链接中给出的手册尝试了较旧版本的gcc(4.9.3&5.4.0),但似乎glibc存在此错误。
所以,我想知道-这是否是glibc-2.23中的错误?它是如何构建的? 由于我已将其与x86_64 Ubuntu Xenial的debian软件包一起安装。
答案 0 :(得分:2)
您需要向后移植此上游提交:
commit 388b4f1a02f3a801965028bbfcd48d905638b797 Author: H.J. Lu <hjl.tools@gmail.com> Date: Fri Jun 23 14:38:46 2017 -0700
Avoid .symver on common symbols [BZ #21666]
关于公共符号的.symver指令只会创建一个新的公共符号,而不是一个别名,并且会修复带有错误修复程序的更新的汇编器
https://sourceware.org/bugzilla/show_bug.cgi?id=21661
将发出错误。修复之前,我们得到了
此提交为already included on the release/2.23/master
branch,因此您可以做到这一点。