在为我的项目编译某些cpp文件时,我收到这样的警告
Compile++ arm : MYAPP <= myfile.cpp
/tmp/cc53K5MQ.s: Assembler messages:
/tmp/cc53K5MQ.s:887: Warning: swp{b} use is deprecated for this architecture
但是,这个警告中没有任何行号,所以我不知道该看哪里。
你知道我为什么收到这个警告吗?
最佳答案
swp{b}
指令在armv6及更高版本中被弃用。更糟糕的是,它在armv7中根本不受支持,并且在linux内核中的非法指令陷阱中修复了它——这需要一些运行时开销。编译器绝对不应该生成它。
我在codesourcery编译器中也看到过这个问题。代码生成器阶段发出swp{b}
指令,但汇编程序完全知道目标体系结构不支持这些指令。这意味着您在命令行上指定了正确的目标体系结构。
我通过升级到更新版本的gcc解决了这个问题。