Я пытаюсь кросс-компилировать Linux для архитектуры ARM.
Хост - это компьютер X86, на котором работает ubuntu-jaunty. Я скачал кросс-компиляцию инструментария для ARM из http://ftp.arm.linux.org.uk/pub/armlinux/toolchain/. Я скачал версию 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_WuxR834ff lin / -1_1_3_gtk / include -Wall -Wstrict-прототипы -Wno-триграфы -Os -fno-строго-псевдонимы -fno-common -DLED_DUAL_COLOR -DFOR_ROUTER -I / home / feroze / wnr834m / marvell_WNR8343 / armux-88_f_inx_180f / linux-88_f1 / 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 = switch
make [1]: *** [init / main.o] Ошибка 1
make [1]: выход из каталога `/ home / feroze / wnr834m / marvell_WNR834M / linux-88fxx81-1_1_3_gtk '
Я проверил весь make-файл и не смог найти места, где определяются LINUX_ARM_ARCH_5 и -march = armv5. Я определяю -march = strongarm в make-файле, но затем он добавляется в соответствии с определением ARMv5.
Итак, я создал файл defs из gcc, изменил его, чтобы иметь только параметры для ARMv4, а затем использовал его, указав параметр -specs =. Однако это все еще не решает проблему.
Может кто-нибудь помочь? Как мне решить эту проблему?
Спасибо!
Фероз