Fix atomic ops on iOS
authorBehdad Esfahbod <behdad@behdad.org>
Mon, 10 Dec 2012 20:25:21 +0000 (15:25 -0500)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 10 Dec 2012 20:25:21 +0000 (15:25 -0500)
Patch from John Ralls.

src/hb-atomic-private.hh

index a4d6cbe..111d7a0 100644 (file)
@@ -69,15 +69,17 @@ typedef long hb_atomic_int_t;
 #elif !defined(HB_NO_MT) && defined(__APPLE__)
 
 #include <libkern/OSAtomic.h>
+#ifdef __MAC_OS_X_MIN_REQUIRED
 #include <AvailabilityMacros.h>
+#elif defined(__IPHONE_OS_MIN_REQUIRED)
+#include <Availability.h>
+#endif
 
 typedef int32_t hb_atomic_int_t;
 #define hb_atomic_int_add(AI, V)       (OSAtomicAdd32Barrier ((V), &(AI)) - (V))
 
 #define hb_atomic_ptr_get(P)           (OSMemoryBarrier (), (void *) *(P))
-#if (MAX_OS_X_VERSION_MAX_ALLOWED >= MAX_OS_X_VERSION_10_5)
-/* XXX We should expand the above check to also allow iPhone OS >= 2.0, but I can't find any info re
- * AvailabilityMacros.h for iOS.  Is it even available there? */
+#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_4 || __IPHONE_VERSION_MIN_REQUIRED >= 20100)
 #define hb_atomic_ptr_cmpexch(P,O,N)   OSAtomicCompareAndSwapPtrBarrier ((void *) (O), (void *) (N), (void **) (P))
 #else
 #if __ppc64__ || __x86_64__