【问题标题】:How to build older version of glibc?如何构建旧版本的 glibc?
【发布时间】:2018-12-19 03:17:20
【问题描述】:

我正在为 Ubuntu Xenial 16.04 构建用于 arm 的 gcc-8.1.0 交叉编译器。 该软件包作为 debian 软件包存在,但仅适用于 Ubuntu 18.04 仿生,这就是我构建它的原因。 但是有一个问题 - 即 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 软件包。

【问题讨论】:

    标签: ubuntu gcc cross-compiling glibc


    【解决方案1】:

    你需要反向移植这个上游提交:

    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,所以你可以这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-25
      • 2016-05-31
      • 2015-07-22
      • 1970-01-01
      • 2021-05-09
      • 1970-01-01
      • 2015-04-24
      • 2015-06-23
      相关资源
      最近更新 更多