Separated out the minimum functionality that we need from gcc for our spinlock fallback.
This commit is contained in:
parent
68afef61c9
commit
2c31531800
3 changed files with 14 additions and 1 deletions
12
configure.in
12
configure.in
|
@ -312,6 +312,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
|
fi
|
||||||
|
|
||||||
|
# See if we have the minimum operation needed for GCC atomics
|
||||||
|
AC_TRY_LINK([
|
||||||
|
],[
|
||||||
|
int a;
|
||||||
|
__sync_lock_test_and_set(&a, 1);
|
||||||
|
],[
|
||||||
|
have_gcc_sync_lock_test_and_set=yes
|
||||||
|
])
|
||||||
|
if test x$have_gcc_sync_lock_test_and_set = xyes; then
|
||||||
|
AC_DEFINE(HAVE_GCC_SYNC_LOCK_TEST_AND_SET)
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Standard C sources
|
# Standard C sources
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
#undef SIZEOF_VOIDP
|
#undef SIZEOF_VOIDP
|
||||||
#undef SDL_HAS_64BIT_TYPE
|
#undef SDL_HAS_64BIT_TYPE
|
||||||
#undef HAVE_GCC_ATOMICS
|
#undef HAVE_GCC_ATOMICS
|
||||||
|
#undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET
|
||||||
|
|
||||||
/* Comment this if you want to build without any C library requirements */
|
/* Comment this if you want to build without any C library requirements */
|
||||||
#undef HAVE_LIBC
|
#undef HAVE_LIBC
|
||||||
|
|
|
@ -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_ATOMICS)
|
#elif 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