[mips] Fix sem_init_glibc test for MIPS.

glibc changed the implementation of semaphores for glibc 2.21 requiring
some target specific changes for this compiler-rt test. Modify the test
to cope with MIPS64 and do some future/correctness work by tying the
define for MIPS64 to exactly the define of __HAVE_64B_ATOMICS in glibc.

Contributions from Nitesh Jain.

Reviewers: eugenis

Differential Revision: https://reviews.llvm.org/D37829

llvm-svn: 313248
This commit is contained in:
Simon Dardis 2017-09-14 10:36:04 +00:00
parent 337b2d007a
commit c720ee5914
1 changed files with 5 additions and 3 deletions

View File

@ -13,9 +13,11 @@
typedef uint64_t semval_t; typedef uint64_t semval_t;
// This condition needs to correspond to __HAVE_64B_ATOMICS macro in glibc. // This condition needs to correspond to __HAVE_64B_ATOMICS macro in glibc.
#elif (defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__) || \ #elif (defined(__x86_64__) || defined(__aarch64__) || \
defined(__s390x__) || defined(__sparc64__) || defined(__alpha__) || \ defined(__powerpc64__) || defined(__s390x__) || defined(__sparc64__) || \
defined(__ia64__) || defined(__m68k__)) && __GLIBC_PREREQ(2, 21) defined(__alpha__) || defined(__ia64__) || defined(__m68k__) || \
(defined(__mips64) || _MIPS_SIM == _ABI64)) && \
__GLIBC_PREREQ(2, 21)
typedef uint64_t semval_t; typedef uint64_t semval_t;
#else #else
typedef unsigned semval_t; typedef unsigned semval_t;