Arm Qemu静态配置错误(线程本地存储)

Arm Qemu静态配置错误(线程本地存储),arm,fedora,configure,qemu,Arm,Fedora,Configure,Qemu,我正试图以静态方式为此目标编译Qemu:{arm linux user,armeb linux user,arm softmmu} 下面是我正在使用的配置命令: ./configure --target-list="arm-linux-user armeb-linux-user arm-softmmu" --disable-werror --enable-debug --static 执行此命令时,出现以下错误: C++编译器C++与C编译器CC禁用C++无关 特定可选代码 错误:编译器不支

我正试图以静态方式为此目标编译Qemu:{arm linux user,armeb linux user,arm softmmu}

下面是我正在使用的配置命令:

./configure --target-list="arm-linux-user armeb-linux-user arm-softmmu" --disable-werror --enable-debug --static
执行此命令时,出现以下错误:

C++编译器C++与C编译器CC禁用C++无关 特定可选代码

错误:编译器不支持的_线程说明符 线程本地存储(TLS)。请升级到不支持此操作的版本

或者,我的cc版本是5.1.1,因此这是非常新的:

[lionel@localhost qemu]$ cc -v
Utilisation des specs internes.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/5.1.1/lto-wrapper
Cible : x86_64-redhat-linux
Configuré avec: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --disable-libgcj --with-isl --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 5.1.1 20150618 (Red Hat 5.1.1-4) (GCC) 
我可以正常编译它,而不需要“-static”参数。我需要以静态方式编译它,因为我正试图将chroot引导到一个二进制文件为ELF arm可执行文件的文件系统中


如果不可能,我可以使用
qemu系统arm
来模拟电路板。

如果链接器损坏(即试图将.c程序编译为可执行文件不起作用),配置也会产生此错误消息,因为TLS检查恰好是第一个尝试这样做的检查——在本例中,它将打印一条误导性的错误消息。在这种情况下,您的编译器肯定足够新,可以处理_线程,所以您应该检查链接器是否正常工作。查看config.log将显示QEMU的配置脚本试图运行的所有程序及其输出


(我刚刚提交了一个补丁----如果你的链接器不工作,它会产生一个不那么令人困惑的警告。)

如果你的链接器坏了(即试图将.c程序编译成可执行文件不工作),Configure也会产生这个错误消息,因为TLS检查恰好是第一个尝试这样做的检查——在本例中,它将打印一条误导性的错误消息。在这种情况下,您的编译器肯定足够新,可以处理_线程,所以您应该检查链接器是否正常工作。查看config.log将显示QEMU的配置脚本试图运行的所有程序及其输出


(我刚刚提交了一个补丁--——如果你的链接器不工作,它会导致一个不那么令人困惑的警告。)

你知道你已经安装了
g++
吗?我不知道为什么configure会抱怨TLS支持,但是使用--static实际上只在构建linux用户二进制文件时才得到正确的支持(arm linux用户、armeb linux用户等)。请尝试在自己的构建目录中仅静态地配置和构建linux用户二进制文件(--target list=“arm linux用户armeb linux用户”--禁用工具--static)。然后在第二个builddir(--target list=“arm softmmu”)中非静态地构建arm softmmu二进制文件(如果需要)。好的,谢谢,稍后再检查,谢谢你的回复。几周前,我通过linux发行版的存储库成功地获得了qemu的静态版本,但我将尝试一下你的解决方案。你知道你已经安装了
g++
吗?我不知道为什么configure会抱怨TLS支持,但使用--static确实很麻烦仅在构建linux用户二进制文件(arm linux用户、armeb linux用户等)时才受正确支持。请尝试仅在其自己的构建目录中静态地配置和构建linux用户二进制文件(--target list=“arm linux用户armeb linux用户”--禁用工具--static)。然后构建arm softmmu二进制文件(如果需要)在第二个builddir(--target list=“arm softmmu”)中以非静态方式进行。好的,谢谢,稍后会检查,谢谢您的回复。几周前,我通过linux发行版的存储库成功获得了qemu的静态版本,但我将尝试一下解决方案。