Я пытаюсь скомпилировать Qemu для этой цели статическим способом: {arm-linux-user, armeb-linux-user, arm-softmmu}.Ошибка статической конфигурации Qemu (локальное хранилище потоков)
вот эта команда конфигурирования Я использую:
./configure --target-list="arm-linux-user armeb-linux-user arm-softmmu" --disable-werror --enable-debug --static
Когда я выполнения этой команды я получил следующее сообщение об ошибке:
C++ compiler c++ does not work with C compiler cc Disabling C++ specific optional code
ERROR: Your compiler does not support the __thread specifier for Thread-Local Storage (TLS). Please upgrade to a version that does.
Или моя куб.см версия 5.1.1 так что это совершенно новое:
[[email protected] 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)
Я могу скомпилировать его, как правило, без аргумента «--статический». Мне нужно скомпилировать его в статическом порядке, поскольку я пытаюсь синхронизировать файлы в файловой системе, где исполняются исполняемые файлы ELF.
Если это невозможно, я мог бы использовать qemu-system-arm
для подражания на борту.
Вы знаете, за то, что вы имеете '' г ++ установлен? – tonysdg
Я не уверен, почему configure жалуется на поддержку TLS, но использование --static действительно поддерживается только для создания исполняемых файлов linux-user (arm-linux-user, armeb-linux-user и т. Д.). Попробуйте настроить и создать исполняемые файлы linux-user только статически (--target-list = "arm-linux-user armeb-linux-user" --disable-tools --static) в своем собственном каталоге сборки. Затем создайте двоичный файл arm-softmmu (если нужно) нестатически во втором builddir (--target-list = "arm-softmmu"). –
ОК спасибо, проверит это позже, спасибо за ваш ответ. Мне удалось получить статическую версию qemu несколько недель назад через репозиторий моего дистрибутива linux, но я дам вам решение. –