是否有 GCC 配置会生成仅包含 ARM32 代码的可执行文件?我知道这个-marm开关告诉编译器不产生Thumb代码,但它仅适用于用户代码的程序,而初始化程序(例如_start,frame_dummy......)还含有Thumb指令。我arm-linux-gnueabihf-在 Linux x86-64 系统上使用 Linaro 交叉编译器工具链 ( )。
编辑 :
在重新编译工具链时,我自己找到了(可能的)解决方案。编码为拇指初始化例程的glibc的一部分,可以在目标文件中找到crt1.o,crti.o并crtbegin.o。我没有尝试重新编译它,但可能有一个配置值强制将整个 libc 编码为 ARM32。