【发布时间】:2009-11-01 02:17:43
【问题描述】:
我正在尝试为 ARM 架构交叉编译 linux。
主机是运行 ubuntu-jaunty 的 X86 机器。我从http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/ 下载了 ARM 的交叉编译工具链。我下载了2.95.3版本的工具链。
我遇到的问题是 GCC 自己传递了一些默认标志,导致 GCC 然后输出错误:
/usr/local/arm/2.95.3/bin/arm-linux-gcc -specs=/home/feroze/wnr834m/marvell_WNR834M/gcc_specs -D__KERNEL__ -I/home/feroze/wnr834m/marvell_WNR834M/linux-88fxx81 -1_1_3_gtk/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -DLED_DUAL_COLOR -DFOR_ROUTER -I/home/feroze/wnr834m/marvell_WNR834M/linux-88fxx81-1_1_3_gtk/arch/arm /mach-mv88fxx81/Soc/gpp/ -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=5 -march=armv5 -mtune=arm9tdmi -mshort-load-bytes -msoft-float -Uarm -march=strongarm - DKBUILD_BASENAME=main -c -o init/main.o init/main.c cc1:-march= 开关的错误值(强臂) make[1]: *** [init/main.o] 错误 1 make[1]: 离开目录`/home/feroze/wnr834m/marvell_WNR834M/linux-88fxx81-1_1_3_gtk'
我检查了整个 makefile,找不到任何定义 LINUX_ARM_ARCH_5 和 -march=armv5 的地方。我在 makefile 中定义 -march=strongarm,但随后它被 ARMv5 定义附加。
所以,我从 gcc 创建了一个 defs 文件,将其修改为只有 ARMv4 的选项,然后通过指定 -specs= 选项来使用它。但是,这仍然不能解决问题。
有人可以帮忙吗?我该如何解决这个问题?
谢谢!
热血沸腾
【问题讨论】:
-
这是一个基于 autotools 的项目吗? “./configure”进程将添加几个它认为是“暗示”或“必需”的标志。