LINUX.ORG.RU

[gcc] cpu you selected does not support x86-64 instruction set


0

1

пытаюсь побилдить binutils, gcc 4.3.4, SLED10 64 бита опции:

CFLAGS="-O2 -g -march=i686 -fmessage-length=0 -Wno-unused -static"
LDFLAGS="-s -static"
./configure --prefix=... --enable-shared --with-gnu-ld --with-gnu-as --libdir=... --infodir=... --mandir=... --host=i586-suse-linux --target=i686-tade-linux-gnu --enable-targets=x86_64-tade-linux-gnu --program-prefix=i686-tade-linux-gnu- --with-sysroot=...

получаю ошибку

creating cache ./config.cache
checking host system type... i586-suse-linux-gnu
checking target system type... i686-tade-linux-gnu
checking build system type... i586-suse-linux-gnu
checking for a BSD compatible install... /usr/bin/install -c
conftest.c:1: error: CPU you selected does not support x86-64 instruction set
conftest.c:1: error: CPU you selected does not support x86-64 instruction set
*** The command '/tmp/xxsmirom/tade_compiler/TadeDevelroot_OU/install/current/usr/bin/i686-tade-linux-gnu-gcc -o conftest  -O2 -g -march=i686 -fmessage-length=0 -Wno-unused -static -L/tmp/xxsmirom/tade_compiler/TadeDevelroot_OU/build/current/binutils-2.15.90.0.1.1/usr/lib -s -static conftest.c' failed.
*** You must set the environment variable CC to a working compiler.

вопрос к знатокам - WTF? Компилю с -march=i686, т.к. должно работать и на 32 и на 64-битных машинах

Компилю с -march=i686

вот тут и проблема :)

64 битный бинарник не будет работать на 32битной системе

Harald ★★★★★ ()

вот собирай под 32
т.е.
--enable-targets=i686-tade-linux-gnu
или
--disable-targets=x86_64-tade-linux-gnu
хз какие там опции
i686 - это не 64

megabaks ★★★★ ()
Ответ на: комментарий от Harald

64 битный бинарник не будет работать на 32битной системе

это понятно. Но 32-битный на 64-битной системе должен, разве нет? Вот мне такое и надо сделать

marvin_yorke ★★★ ()
Ответ на: комментарий от marvin_yorke

Но 32-битный на 64-битной системе должен, разве нет?

именно
только ты задал и и 32 и 64 одновременно в разных местах
-march=i686
--enable-targets=x86_64-tade-linux-gnu
и что прикажешь делать компилятору?

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

Сделал таргет i686 - результат тот же. Ибо в команде, которая фэйлится -

/tmp/xxsmirom/tade_compiler/TadeDevelroot_OU/install/current/usr/bin/i686-tade-linux-gnu-gcc -o conftest  -O2 -g -march=i686 -fmessage-length=0 -Wno-unused -static -L/tmp/xxsmirom/tade_compiler/TadeDevelroot_OU/build/current/binutils-2.15.90.0.1.1/usr/lib -s -static conftest.c 
про таргеты ни слова нет

marvin_yorke ★★★ ()
Ответ на: комментарий от marvin_yorke

мне отсюда не видны ни опции, переданные конфигурялке пакета, ни опции доступные там же

megabaks ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.