fix build regression in arm atomics asm with new binutils
authorRich Felker <dalias@aerifal.cx>
Wed, 15 Feb 2017 22:05:50 +0000 (17:05 -0500)
committerRich Felker <dalias@aerifal.cx>
Wed, 15 Feb 2017 22:50:47 +0000 (17:50 -0500)
binutils commit bada43421274615d0d5f629a61a60b7daa71bc15 tightened
immediate fixup handling in gas in such a way that the final .arch of
an object file must be compatible with the fixups used when the
instruction was assembled; this in turn broke assembling of atomics.s,
at least in thumb mode.

it's not clear whether this should be considered a bug in gas, but
.object_arch is preferable anyway for our purpose here of controlling
the ISA level tag on the object file being produced, and it's the
intended directive for use in object files with runtime code
selection. research by Szabolcs Nagy confirmed that .object_arch is
supported in all relevant versions of binutils and clang's integrated
assembler.

patch by Reiner Herrmann.

src/thread/arm/atomics.s

index 202faa4..101ad39 100644 (file)
@@ -84,7 +84,7 @@ __a_gettp_cp15:
        bx lr
 
 /* Tag this file with minimum ISA level so as not to affect linking. */
-.arch armv4t
+.object_arch armv4t
 .eabi_attribute 6,2
 
 .data