我正在尝试构建一个arm-elf-gcc交叉编译器。
所以我用以下配置选项安装了binutils 2.18:
./configure --target=arm-elf --enable-interwork --enable-multilib
这似乎工作正常。
接下来我安装了gmp,mpfr和libmpc
现在对gcc本身。
//编辑 - 删除了以前的错误并使用当前错误进行了更新(我试图单独构建所有内容)
首先,我使用以下配置选项安装bootstrap 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尝试使用apple gcc构建x86架构(我在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
答案 0 :(得分:1)
并非binutils,gcc和newlib的每个组合都有效。我很久以前就放弃了亲自试图找到任何组合。上次我成功是在gcc 3.x天,你不能用gcc 4.x交叉编译gcc 3.x或至少它变得越来越难。
也许在没有互通和多笨蛋的情况下尝试直到你的直臂工作。也许你需要一些eabi在某种形式的arm-non-eabi,就像那样?
这是一个组合,可以获得有效的gcc和libgcc
http://www.cowlark.com/2009-07-04-building-gcc/
代码源代码应该有他们的构建信息,以便弄清楚如何,至少得到binutils和gcc。
不知怎的,你在那里得到了一个core2架构,但我看不出任何明显的东西。
答案 1 :(得分:0)
是的,这是一个旧帖子,但我找到了它,因为我正在寻找答案。 现在我找到了答案,所以我会在这里发布。
仔细查看“as” - 实际执行的是你的主机或目标架构?
答案是:目标架构。
当你在Mac上构建时会发生这种情况 - 无论是在PowerPC上还是在intel上。 您应该在构建binutils之后立即设置PATH环境变量,以便找到正确的binutils,否则您的本机x86(或PowerPC)工具将用于构建您的ARM目标。那是行不通的。