Arm-linux-gnueabihf-gcc компилируется для Armv7 и Armv8, хотя настроен для Armv7?Linux

Ответить Пред. темаСлед. тема
Anonymous
 Arm-linux-gnueabihf-gcc компилируется для Armv7 и Armv8, хотя настроен для Armv7?

Сообщение Anonymous »

Я загрузил версию 13.2 официального набора инструментов ARM Linux gnueabihf из ARM.
Я проверил командную строку конфигурации:

Код: Выделить всё

$ /opt/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-g
nueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/opt/arm-gnu-toolchain-13.2.Rel1-x86_64-arm-none-linux-gnueabihf/bin/../libexec/gcc/arm-none-linux-gnueabihf/13.2.1/lto-wrapper
Target: arm-none-linux-gnueabihf
Configured with: /data/jenkins/workspace/GNU-toolchain/arm-13/src/gcc/configure --target=arm-none-linux-gnueabihf --prefix= --with-sysroot=/arm-none-linux-gnueabihf/libc --with-build-sysroot=/data/jenkins/workspace/GNU-toolchain/arm-13/build-arm-none-linux-gnueabihf/install//arm-none-linux-gnueabihf/libc --with-bugurl=https://bugs.linaro.org/ --enable-gnu-indirect-function --enable-shared --disable-libssp --disable-libmudflap --enable-checking=release --enable-languages=c,c++,fortran --with-gmp=/data/jenkins/workspace/GNU-toolchain/arm-13/build-arm-none-linux-gnueabihf/host-tools --with-mpfr=/data/jenkins/workspace/GNU-toolchain/arm-13/build-arm-none-linux-gnueabihf/host-tools --with-mpc=/data/jenkins/workspace/GNU-toolchain/arm-13/build-arm-none-linux-gnueabihf/host-tools --with-isl=/data/jenkins/workspace/GNU-toolchain/arm-13/build-arm-none-linux-gnueabihf/host-tools --with-arch=armv7-a --with-fpu=neon --with-float=hard --with-mode=thumb --with-arch=armv7-a --with-pkgversion='Arm GNU Toolchain 13.2.rel1 (Build arm-13.7)'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 13.2.1 20231009 (Arm GNU Toolchain 13.2.rel1 (Build arm-13.7))
Он показывает --with-arch=armv7-a, и у меня сложилось впечатление, что это важно.
Но когда я скомпилируйте тестовый двоичный файл для Armv8, кажется, он выдает правильный тег:

Код: Выделить всё

$ arm-linux-gnueabihf-gcc -march=armv7-a  -shared -fPIC -o arm_raw_v7.so test.c
$ arm-linux-gnueabihf-gcc -march=armv8-a  -shared -fPIC -o arm_raw_v8.so test.c
$ arm-linux-gnueabihf-readelf -A arm_raw_v?.so | grep Tag_CPU_arch:
Tag_CPU_arch: v7
Tag_CPU_arch: v8
Когда я выполняю тот же тест с набором инструментов RPi3+ отсюда, компилятор примет -march=armv7-a, но полученный двоичный файл все равно будет печатать тег v8.
Когда я провожу тот же тест с набором инструментов RPi3+ отсюда, компилятор примет -march=armv7-a, но полученный двоичный файл все равно будет печатать тег v8.
p>
Параметры конфигурации набора инструментов RPi:

Код: Выделить всё

/opt/cross-pi-gcc-10.2.0-2/bin/arm-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=/opt/cross-pi-gcc-10.2.0-2/bin/arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/opt/cross-pi-gcc-10.2.0-2/bin/../libexec/gcc/arm-linux-gnueabihf/10.2.0/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../configure --prefix= --target=arm-linux-gnueabihf --enable-languages=c,c++,fortran --with-sysroot=/arm-linux-gnueabihf/libc --with-build-sysroot=/tmp/cross-pi-gcc-10.2.0-2/arm-linux-gnueabihf/libc --with-arch=armv8-a --with-fpu=neon-fp-armv8 --with-float=hard --disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 10.2.0 (GCC)
Может ли кто-нибудь объяснить, почему официальная цепочка инструментов ARM создает двоичные файлы для обоих ISA, хотя они настроены для Armv7a?

Подробнее здесь: https://stackoverflow.com/questions/783 ... ed-for-arm
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • /lib/arm-linux-gnueabihf/libc.so.6: версия `GLIBC_2.34' не найдена (требуется ./initial)
    Anonymous » » в форуме Linux
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Cross Compile Library Python для Arm-Linux-Gnueabihf
    Anonymous » » в форуме Linux
    0 Ответы
    83 Просмотры
    Последнее сообщение Anonymous
  • Cross Compile Library Python для Arm-Linux-Gnueabihf
    Anonymous » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Cross Compile Library Python для Arm-Linux-Gnueabihf
    Anonymous » » в форуме C++
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Руководство по выводу C++ для tl::expected не компилируется с clang, но компилируется с gcc (странные сообщения об ошибк
    Anonymous » » в форуме C++
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»