mirror of
https://github.com/yawut/SDL.git
synced 2026-08-22 00:35:18 -05:00
Separated out the minimum functionality that we need from gcc for our spinlock fallback.
This commit is contained in:
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
|
||||
AC_DEFINE(HAVE_GCC_ATOMICS)
|
||||
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
|
||||
|
||||
# Standard C sources
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
#undef SIZEOF_VOIDP
|
||||
#undef SDL_HAS_64BIT_TYPE
|
||||
#undef HAVE_GCC_ATOMICS
|
||||
#undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET
|
||||
|
||||
/* Comment this if you want to build without any C library requirements */
|
||||
#undef HAVE_LIBC
|
||||
|
||||
@@ -36,7 +36,7 @@ SDL_AtomicTryLock(SDL_SpinLock *lock)
|
||||
#elif defined(__MACOSX__)
|
||||
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);
|
||||
|
||||
#elif defined(__GNUC__) && defined(__arm__) && defined(__ARM_ARCH_5__)
|
||||
|
||||
Reference in New Issue
Block a user