ARM警告:对于此体系结构,不建议使用swp {b} use

Ale*_*tin 4 android gcc arm android-ndk

在为我的项目编译某些cpp文件时,我收到这样的警告

Compile++ arm    : MYAPP <= myfile.cpp
/tmp/cc53K5MQ.s: Assembler messages:
/tmp/cc53K5MQ.s:887: Warning: swp{b} use is deprecated for this architecture
Run Code Online (Sandbox Code Playgroud)

但是,此警告中没有给出任何行号,所以我不知道在哪里查看.

你知道为什么我会收到这个警告吗?

mar*_*rko 6

swp{b}指令在ARMv6及更高版本中已弃用.更糟糕的是,它在ARMv7中根本不受支持,并且在Linux内核中的非法指令陷阱中被修复 - 以一些运行时成本.您的编译器绝对不应该生成它.

我也用CodeSourcery编译器看过这个问题.代码生成器阶段发出swp{b}指令,但汇编器完全清楚它们不适用于目标体系结构.这意味着您具有在命令行上指定的正确目标体系结构.

我通过升级到更新版本的GCC解决了这个问题.