diff --git a/CMakeLists.txt b/CMakeLists.txt index eb4b6e3b3c..1fe1f65dcc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -641,13 +641,15 @@ if(USE_GCC OR USE_CLANG OR USE_INTELCC OR USE_QCC) __sync_fetch_and_add(&a, 1); __sync_bool_compare_and_swap(&a, 5, 10); __sync_bool_compare_and_swap(&x, y, z); - return 0; }" HAVE_GCC_ATOMICS) + return 0; }" COMPILER_SUPPORTS_GCC_ATOMICS) + set(HAVE_GCC_ATOMICS ${COMPILER_SUPPORTS_GCC_ATOMICS}) if(NOT HAVE_GCC_ATOMICS) check_c_source_compiles("int main(int argc, char **argv) { int a; __sync_lock_test_and_set(&a, 1); __sync_lock_release(&a); - return 0; }" HAVE_GCC_SYNC_LOCK_TEST_AND_SET) + return 0; }" COMPILER_SUPPORTS_SYNC_LOCK_TEST_AND_SET) + set(HAVE_GCC_SYNC_LOCK_TEST_AND_SET ${COMPILER_SUPPORTS_SYNC_LOCK_TEST_AND_SET}) endif() endif() diff --git a/src/atomic/SDL_spinlock.c b/src/atomic/SDL_spinlock.c index 91cc7366a4..0bb1960806 100644 --- a/src/atomic/SDL_spinlock.c +++ b/src/atomic/SDL_spinlock.c @@ -78,7 +78,7 @@ SDL_AtomicTryLock(SDL_SpinLock *lock) return SDL_FALSE; } -#elif HAVE_GCC_ATOMICS || HAVE_GCC_SYNC_LOCK_TEST_AND_SET +#elif defined(HAVE_GCC_ATOMICS) || HAVE_GCC_SYNC_LOCK_TEST_AND_SET return __sync_lock_test_and_set(lock, 1) == 0; #elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64)) @@ -183,7 +183,7 @@ void SDL_AtomicLock(SDL_SpinLock *lock) void SDL_AtomicUnlock(SDL_SpinLock *lock) { -#if HAVE_GCC_ATOMICS || HAVE_GCC_SYNC_LOCK_TEST_AND_SET +#if defined(HAVE_GCC_ATOMICS) || HAVE_GCC_SYNC_LOCK_TEST_AND_SET __sync_lock_release(lock); #elif defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_ARM64))