Support n32 ABI for mips64
authorFrank Schaefer <kelledin@gmail.com>
Sat, 9 May 2015 05:26:43 +0000 (05:26 +0000)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 2 Nov 2016 22:10:31 +0000 (01:10 +0300)
Without the proposed change, the existing preprocessor checks for
mips64 support do not account for the n32 ABI (when building with
"gcc -mabi=n32", test_atomic and test_stack both fail, and
test_malloc appears to hang indefinitely while spinning at 100%).

* src/atomic_ops/sysdeps/gcc/mips.h (AO_MIPS_SET_ISA, AO_MIPS_LL_1,
AO_MIPS_SC): Define depending on _MIPS_SIM value.

src/atomic_ops/sysdeps/gcc/mips.h

index f25453b..521c38a 100644 (file)
@@ -24,7 +24,7 @@
 /* Data dependence does not imply read ordering.  */
 #define AO_NO_DD_ORDERING
 
-#ifdef __mips64
+#if defined(_ABI64) && (_MIPS_SIM == _ABI64)
 # define AO_MIPS_SET_ISA    "       .set mips3\n"
 # define AO_MIPS_LL_1(args) "       lld " args "\n"
 # define AO_MIPS_SC(args)   "       scd " args "\n"