How to prevent GCC flags from passing by default?

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

+3
source share
3 answers

The -march flag is set to arch / ARM / Makefile and depends on the machine selected in your configuration file. If you do not need the armv5 flag, be sure to select the correct architecture in the configuration file.

, , CFLAGS, ( ), , , , crosstol script, 2.95.3

:
? 2.95.3 toolchain . toolchain. EABI .

, ​​Linux, Make . , "" .

+1

, .

Makefile , CFLAGS CC. CFLAGS CC?

+1

, gcc -dM -E <empty_file.c> gcc -dM -E -x c /dev/null, #define gcc. -dM , -march, , #define.

+1

Source: https://habr.com/ru/post/1721606/


All Articles