Я пытаюсь перекрестно скомпилировать linux для архитектуры ARM.Как предотвратить передачу GCC флаги по умолчанию?
Хост - это машина X86, работающая на ubuntu-jaunty. Я загрузил кросс-компиляцию toolchain для ARM от http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/. Я загрузил версию инструментальной версии 2.95.3.
Проблема, которую я имею что НКУ проходит в некоторых флагов по умолчанию сам по себе, что вызывает 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: bad value (strongarm) for -march= switch make[1]: *** [init/main.o] Error 1 make[1]: Leaving directory `/home/feroze/wnr834m/marvell_WNR834M/linux-88fxx81-1_1_3_gtk'
Я проверил всю Makefile, и не мог найти место, где LINUX_ARM_ARCH_5 и -march = armv5. Я определяю -march = strongarm в make-файле, но затем он добавляется атрибутом ARMv5.
Итак, я создал файл defs из gcc, изменил его, чтобы иметь только опции для ARMv4, а затем использовал его, указав параметр -specs =. Тем не менее, это еще не решает проблему.
Может ли помочь? Как это разрешить?
Спасибо!
Ферозе
Это проект на основе autotools? Процесс «./configure» добавит несколько флагов, которые, по его мнению, «подразумеваются» или «требуются». –