Android编译器默认的march是arm5te编译后拿到mini2440的板上跑会有非法指令。
突然发现研究了这么久的gcc spec到后在在android的编译上一点用都没有。
export TARGET_ARCH_VARIANT=armv4t
就ok了。
相关阅读:Gcc的spec中arch什么的指定
呵呵,指要命令行指定了
[ll@ll-pc core]$ pwd
/home/ll/mount/android/android/build/core
[ll@ll-pc core]$ grep -inr arm-eabi *
combo/TARGET_linux-arm.mk:47: prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
dumpvar.mk:12: ABP:=$(ABP):$(PWD)/prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.3/bin
prelink-linux-arm.map:22:# arm-eabi-objdump -x <lib>
然后vi combo/TARGET_linux-arm.mk发现TARGET_ARCH_VARIANT可以指定。在combo/arch/arm/armv4t.mk有armv4t cpu的一些宏的定义。
根据昨天研究specs的结果,命令行指行了选项的话,默认那些march就不起作用了。