Browse Source

Fixed memory barrier macro check so it isn't quite so fragile

Sam Lantinga 5 years ago
parent
commit
959cfc428e
2 changed files with 2 additions and 1 deletions
  1. 1 0
      include/SDL_atomic.h
  2. 1 1
      src/atomic/SDL_atomic.c

+ 1 - 0
include/SDL_atomic.h

@@ -184,6 +184,7 @@ typedef void (*SDL_KernelMemoryBarrierFunc)();
 #elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_5TE__)
 #ifdef __thumb__
 /* The mcr instruction isn't available in thumb mode, use real functions */
+#define SDL_MEMORY_BARRIER_USES_FUNCTION
 #define SDL_MemoryBarrierRelease()   SDL_MemoryBarrierReleaseFunction()
 #define SDL_MemoryBarrierAcquire()   SDL_MemoryBarrierAcquireFunction()
 #else

+ 1 - 1
src/atomic/SDL_atomic.c

@@ -289,7 +289,7 @@ SDL_AtomicGetPtr(void **a)
 #endif
 }
 
-#if defined(__thumb__) && (defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_5TE__))
+#ifdef SDL_MEMORY_BARRIER_USES_FUNCTION
 #error This file should be built in arm mode so the mcr instruction is available for memory barriers
 #endif