I am trying to cross compile linux for ARM architecture.
The host is an X86 machine working with ubuntu-jaunty. I downloaded the cross compilation toolchain for ARM from http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/ . I downloaded the instrumental version 2.95.3.
The problem I am facing is that GCC passes default flags to itself, which causes GCC to output an error:
/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_WNR834Mxx_1k1_1k1_1k1_1k1_1k1_1k1_1k1_1k1_1k1_1k1_1k1_1 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_g_t_arch_ 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: bad value (strongarm) for -march = switch make [1]: *** [init / main.o] Error 1 make [1]: leave folder `/ home / feroze / wnr834m / marvell_WNR834M / linux-88fxx81-1_1_3_gtk '
I checked the entire makefile and could not find the places where LINUX_ARM_ARCH_5 and -march = armv5 are defined. I define -march = strongarm in the makefile, but then it is added by the ARMv5 attribute.
So, I created a defs file from gcc, modified it to have only options for ARMv4, and then used it by specifying the -specs = parameter. However, this still does not solve the problem.
Can anyone help? How to resolve this?
Thanks!
Feroze
source
share