HAVE_GCC_ATOMICS covers the test and set
This commit is contained in:
parent
b3e14d4341
commit
daecbfdc17
3 changed files with 13 additions and 14 deletions
24
configure.in
24
configure.in
|
@ -311,18 +311,18 @@ if test x$enable_gcc_atomics = xyes; then
|
||||||
|
|
||||||
if test x$have_gcc_atomics = xyes; then
|
if test x$have_gcc_atomics = xyes; then
|
||||||
AC_DEFINE(HAVE_GCC_ATOMICS)
|
AC_DEFINE(HAVE_GCC_ATOMICS)
|
||||||
fi
|
else
|
||||||
|
# See if we have the minimum operation needed for GCC atomics
|
||||||
# See if we have the minimum operation needed for GCC atomics
|
AC_TRY_LINK([
|
||||||
AC_TRY_LINK([
|
],[
|
||||||
],[
|
int a;
|
||||||
int a;
|
__sync_lock_test_and_set(&a, 1);
|
||||||
__sync_lock_test_and_set(&a, 1);
|
],[
|
||||||
],[
|
have_gcc_sync_lock_test_and_set=yes
|
||||||
have_gcc_sync_lock_test_and_set=yes
|
])
|
||||||
])
|
if test x$have_gcc_sync_lock_test_and_set = xyes; then
|
||||||
if test x$have_gcc_sync_lock_test_and_set = xyes; then
|
AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
||||||
AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,6 @@ typedef unsigned long uintptr_t;
|
||||||
#define SDL_HAS_64BIT_TYPE 1
|
#define SDL_HAS_64BIT_TYPE 1
|
||||||
|
|
||||||
#define HAVE_GCC_ATOMICS 1
|
#define HAVE_GCC_ATOMICS 1
|
||||||
#define HAVE_GCC_SYNC_LOCK_TEST_AND_SET 1
|
|
||||||
|
|
||||||
#define HAVE_ALLOCA_H 1
|
#define HAVE_ALLOCA_H 1
|
||||||
#define HAVE_SYS_TYPES_H 1
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
|
@ -36,7 +36,7 @@ SDL_AtomicTryLock(SDL_SpinLock *lock)
|
||||||
#elif defined(__MACOSX__)
|
#elif defined(__MACOSX__)
|
||||||
return OSAtomicCompareAndSwap32Barrier(0, 1, lock);
|
return OSAtomicCompareAndSwap32Barrier(0, 1, lock);
|
||||||
|
|
||||||
#elif defined(HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
#elif defined(HAVE_GCC_ATOMICS) || defined(HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
||||||
return (__sync_lock_test_and_set(lock, 1) == 0);
|
return (__sync_lock_test_and_set(lock, 1) == 0);
|
||||||
|
|
||||||
#elif defined(__GNUC__) && defined(__arm__) && defined(__ARM_ARCH_5__)
|
#elif defined(__GNUC__) && defined(__arm__) && defined(__ARM_ARCH_5__)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue