Ошибка при сборке arm-elf-gcc - PullRequest
       25

Ошибка при сборке arm-elf-gcc

3 голосов
/ 27 августа 2010

Я пытаюсь построить кросс-компилятор arm-elf-gcc.

Итак, я установил binutils 2.18 со следующими параметрами настройки:

./configure --target=arm-elf --enable-interwork --enable-multilib

Кажется, это работает нормально.

далее я установил gmp, mpfr и libmpc

так что теперь к самому gcc.

// edit - убрал предыдущую ошибку и обновил текущую (я пытался собрать все отдельно)

Сначала я устанавливаю загрузочный gcc с этими параметрами настройки:

--target=arm-elf --disable-libssp --with-newlib --without-headers --with-gnu-as --with-gnu-ld

А потом я пытаюсь собрать с ним newlib 1.17.0

--target=arm-elf --disable-werror --disable-newlib-supplied-syscalls --disable-nls --with-gnu-as --with-gnu-ld

Но это все равно приводит к той же ошибке. Может быть, newlib пытается построить архитектуру для x86 с помощью apple gcc (я запускаю все это на OS X), который, возможно, не понимает эти параметры?

    cc1: error: unrecognized command line option "-msse4"
../../../../../../newlib/libc/argz/dummy.c:1: error: bad value (core2) for -march= switch
cc1: error: unrecognized command line option "-msse4"
FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'm' flag!
../../../../../../newlib/libc/argz/argz_add.c:1: error: bad value (core2) for -march= switch
cc1: error: unrecognized command line option "-msse4"
../../../../../../newlib/libc/argz/argz_add_sep.c:1: error: bad value (core2) for -march= switch
cc1: error: unrecognized command line option "-msse4"
make[8]: *** [lib_a-argz_add.o] Error 1
make[8]: *** Waiting for unfinished jobs....
../../../../../../newlib/libc/argz/argz_append.c:1: error: bad value (core2) for -march= switch
FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'm' flag!
cc1: error: unrecognized command line option "-msse4"
../../../../../../newlib/libc/argz/argz_create.c:1: error: bad value (core2) for -march= switch
cc1: error: unrecognized command line option "-msse4"
../../../../../../newlib/libc/argz/argz_count.c:1: error: bad value (core2) for -march= switch
FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'm' flag!
cc1: error: unrecognized command line option "-msse4"
../../../../../../newlib/libc/argz/argz_delete.c:1: error: bad value (core2) for -march= switch
make[8]: *** [lib_a-dummy.o] Error 1
make[8]: *** [lib_a-argz_create.o] Error 1
FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'm' flag!
FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'm' flag!
FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'm' flag!
make[8]: *** [lib_a-argz_add_sep.o] Error 1
make[8]: *** [lib_a-argz_delete.o] Error 1
FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'm' flag!
make[8]: *** [lib_a-argz_count.o] Error 1
make[8]: *** [lib_a-argz_append.o] Error 1
FATAL:/usr/bin/../libexec/gcc/darwin/x86_64/as: I don't understand 'm' flag!
cc1: error: unrecognized command line option "-msse4"
../../../../../../newlib/libc/argz/argz_create_sep.c:1: error: bad value (core2) for -march= switch
make[8]: *** [lib_a-argz_create_sep.o] Error 1
make[7]: *** [all-recursive] Error 1
make[6]: *** [all-recursive] Error 1
make[5]: *** [all] Error 2
make[4]: *** [multi-do] Error 1
make[3]: *** [all-multi] Error 2
make[2]: *** [all] Error 2
make[1]: *** [all-target-newlib] Error 2
make: *** [all] Error 2

Ответы [ 2 ]

1 голос
/ 31 августа 2010

Не каждая комбинация binutils, gcc и newlib работает.Я давно сдался, лично пытаясь найти какие-либо комбинации.В прошлый раз я добился успеха в дни gcc 3.x, и вы не можете кросс-компилировать gcc 3.x с gcc 4.x или, по крайней мере, это становится все труднее.

Возможно, попробуйте без взаимодействия и мультибиблиотекиу тебя прямая рука работает.Может быть, вам нужен eabi там в какой-то форме arm-non-eabi, что-то вроде этого?

Вот комбинация, которая получает рабочие gcc и libgcc

http://www.cowlark.com/2009-07-04-building-gcc/

В исходном коде должна быть доступна информация о сборке, чтобы понять, как, по крайней мере, добраться до binutils и gcc.

Каким-то образом вы получаете там архитектуру core2, хотя я не вижу ничего очевидного.

0 голосов
/ 16 октября 2013

Да, это старый пост, но я нашел его, когда искал ответ.Теперь я нашел ответ, поэтому я опубликую его здесь.

Посмотрите внимательно на "как" - что на самом деле выполняется, как на хост-компьютере или на целевой архитектуре?

Ответ таков: что касается целевой архитектуры.

Это происходит при сборке на Mac - как на PowerPC, так и на Intel.Вы должны настроить переменную среды PATH сразу после сборки binutils, чтобы были найдены правильные binutils, в противном случае ваши нативные инструменты x86 (или PowerPC) будут использоваться для построения вашей цели ARM.Это просто не сработает.

...