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.
This commit is contained in:
Joseph Myers 2015-01-28 18:40:35 +00:00
parent d4d0ecb244
commit df34134284
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2015-01-28 Joseph Myers <joseph@codesourcery.com>
* sysdeps/mips/bits/atomic.h [_MIPS_SIM == _ABIN32]
(__HAVE_64B_ATOMICS): Define to 0.
2015-01-28 Adhemerval Zanellla <azanella@linux.vnet.ibm.com>
[BZ #17885]

View File

@ -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