arm-buildroot-linux-uclibcgnueabihf-gcc:erreur:无法识别的命令行选项'-mno-tls-direct-seg-refs'

时间:2015-09-26 16:44:53

标签: buildroot

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

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

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

2 个答案:

答案 0 :(得分:0)

-mno-tls-direct-seg-refs选项是x86特定选项,libselinux尝试使用ARM工具链。哪个显然无法奏效。看起来像是libselinux包中的一个bug。正如Yegor所说,请将此报告给Buildroot邮件列表或错误跟踪器。

答案 1 :(得分:-1)

我明白了:

libselinux的Makefile执行以下检查:

  

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

     

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

     

mips-img-linux-gnu-gcc:错误:无法识别的命令行选项   “-mno-TLS-直接SEG-参”

     

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

     

签名:Vicente Olivert Riera

link:https://patchwork.ozlabs.org/patch/518324/