我正在使用buildroot。编译工作正常,但目标系统上的二进制文件显示“非法指令”
我用过 strace:
execve("/opt/busybox", ["/opt/busybox"], [/* 8 vars */]) = 0 brk(0)
= 0 --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLTRP, si_addr= 0xa3f20} --- +++ 被 SIGILL 杀死 +++ 非法指令
然后是国际开发协会。
原因是 SVC 指令(si_addr 在我尝试的所有二进制文件中都指向它)
我应该怎么做才能防止 GCC 使用这条指令?