Neverlord/libcppa — Issue #13: ARM Assembler Warnings
Author: debio264
Created: 2011-12-15 08:29:25+00:00
State: open

When building libcppa on ARM, the assembler will emit many warnings in a few places that look like this:
---
libtool: compile: g++ -DPACKAGE_NAME=\"libcppa\" -DPACKAGE_TARNAME=\"libcppa\" -DPACKAGE_VERSION=\"0.1\" "-DPACKAGE_STRING=\"libcppa 0.1\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"@PACKAGE_NAME@\" -DVERSION=\"@PACKAGE_VERSION@\" "-DHAVE_BOOST=/**/" "-DHAVE_BOOST_THREAD=/**/" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. --std=c++0x -pedantic -Wall -Wextra -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -MT libcppa_la-actor_proxy_cache.lo -MD -MP -MF .deps/libcppa_la-actor_proxy_cache.Tpo -c src/actor_proxy_cache.cpp -fPIC -DPIC -o .libs/libcppa_la-actor_proxy_cache.o
{standard input}: Assembler messages:
{standard input}:337: Warning: swp{b} use is deprecated for this architecture
{standard input}:345: Warning: swp{b} use is deprecated for this architecture
{standard input}:361: Warning: swp{b} use is deprecated for this architecture
{standard input}:402: Warning: swp{b} use is deprecated for this architecture
{standard input}:410: Warning: swp{b} use is deprecated for this architecture
{standard input}:426: Warning: swp{b} use is deprecated for this architecture
{standard input}:501: Warning: swp{b} use is deprecated for this architecture
{standard input}:509: Warning: swp{b} use is deprecated for this architecture
{standard input}:525: Warning: swp{b} use is deprecated for this architecture
{standard input}:557: Warning: swp{b} use is deprecated for this architecture
{standard input}:566: Warning: swp{b} use is deprecated for this architecture
{standard input}:582: Warning: swp{b} use is deprecated for this architecture
{standard input}:632: Warning: swp{b} use is deprecated for this architecture
{standard input}:640: Warning: swp{b} use is deprecated for this architecture
{standard input}:656: Warning: swp{b} use is deprecated for this architecture
{standard input}:700: Warning: swp{b} use is deprecated for this architecture
{standard input}:709: Warning: swp{b} use is deprecated for this architecture
{standard input}:725: Warning: swp{b} use is deprecated for this architecture
{standard input}:870: Warning: swp{b} use is deprecated for this architecture
{standard input}:877: Warning: swp{b} use is deprecated for this architecture
{standard input}:934: Warning: swp{b} use is deprecated for this architecture
{standard input}:943: Warning: swp{b} use is deprecated for this architecture
{standard input}:988: Warning: swp{b} use is deprecated for this architecture
{standard input}:996: Warning: swp{b} use is deprecated for this architecture
---

It looks like the SWP instruction (atomic swap) is deprecated on ARMv7 because it performs very poorly. I haven't looked at exactly how it's getting into the assembly output, but it looks like it could just be an upstream issue.