From df34134284b46cdd8ffd39551b858652d465ca08 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 28 Jan 2015 18:40:35 +0000 Subject: [PATCH] Disable 64-bit atomics for MIPS n32. This patch disables use of 64-bit atomics for MIPS n32 to fix the problems with unaligned semaphores. Before 64-bit atomics are used for anything for which such alignment issues do not arise, and before the addition of any new ILP32 ports with 64-bit semaphores for which the ABI can be set to have the greater alignment (AARCH64?), a better approach will need to be established that allows architectures to declare their 64-bit atomics availability accurately, without doing so causing inappropriate use of such atomics on unaligned semaphores. Tested for MIPS n32 that this fixes the nptl/tst-sem3 failure. * sysdeps/mips/bits/atomic.h [_MIPS_SIM == _ABIN32] (__HAVE_64B_ATOMICS): Define to 0. --- ChangeLog | 5 +++++ sysdeps/mips/bits/atomic.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 52f8c11..1a7d519 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-01-28 Joseph Myers + + * sysdeps/mips/bits/atomic.h [_MIPS_SIM == _ABIN32] + (__HAVE_64B_ATOMICS): Define to 0. + 2015-01-28 Adhemerval Zanellla [BZ #17885] diff --git a/sysdeps/mips/bits/atomic.h b/sysdeps/mips/bits/atomic.h index ddcb039..a391881 100644 --- a/sysdeps/mips/bits/atomic.h +++ b/sysdeps/mips/bits/atomic.h @@ -44,7 +44,7 @@ typedef uintmax_t uatomic_max_t; #define MIPS_PUSH_MIPS2 #endif -#if _MIPS_SIM == _ABIO32 +#if _MIPS_SIM == _ABIO32 || _MIPS_SIM == _ABIN32 #define __HAVE_64B_ATOMICS 0 #else #define __HAVE_64B_ATOMICS 1 -- 2.7.4