【问题标题】:arm-buildroot-linux-uclibcgnueabihf-gcc: erreur: unrecognized command line option ‘-mno-tls-direct-seg-refs’arm-buildroot-linux-uclibcgnueabihf-gcc:错误:无法识别的命令行选项“-mno-tls-direct-seg-refs”
【发布时间】:2015-09-26 16:44:53
【问题描述】:

我尝试使用buildroot的raspberrypi2的defconfig然后我运行命令make。直到现在一切都很好,但是当我添加一些目标包然后我运行make我得到这个错误:

arm-buildroot-linux-uclibcgnueabihf-gcc: erreur: unrecognized command line option ‘-mno-tls-direct-seg-refs’

此链接包含我在控制台上收到的所有消息:http://pastebin.com/mgVthm8z

【问题讨论】:

  • 请将此报告给 BR 的邮件列表。顺便提一句。您是否尝试过外部工具链,即 Linaro 或其他工具?

标签: buildroot


【解决方案1】:

-mno-tls-direct-seg-refs 选项是特定于 x86 的选项,libselinux 正在尝试与 ARM 工具链一起使用。这显然行不通。似乎是 libselinux 包中的一个错误。正如 Yegor 所说,请将此报告给 Buildroot 邮件列表或错误跟踪器。

【讨论】:

    【解决方案2】:

    我知道了:

    libselinux 的 Makefile 执行以下检查:

    ARCH := $(patsubst i%86,i386,$(shell uname -m)) ifneq (,$(过滤器 i386,$(ARCH))) TLSFLAGS += -mno-tls-direct-seg-refs 结束

    这意味着如果主机是 x86,那么 TLSFLAGS 将 包含 -mno-tls-direct-seg-refs。该命令行选项导致 libselinux 在为目标体系结构构建它时失败,其中 编译器不支持该选项,即 MIPS:

    mips-img-linux-gnu-gcc:错误:无法识别的命令行选项 ‘-mno-tls-direct-seg-refs’

    所以要解决这个问题,我们可以将 ARCH 变量设置为 $(KERNEL_ARCH), 然后将其附加到 LIBSELINUX_MAKE_OPTS。

    签字人:Vicente Olivert Riera

    链接:https://patchwork.ozlabs.org/patch/518324/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 2013-05-26
      • 2020-02-03
      • 2021-10-04
      • 2012-11-15
      • 1970-01-01
      相关资源
      最近更新 更多