Android在mini2440上的编译


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就不起作用了。

相关内容