Update ppc patch and disable threads since ppc lacks real atomics.

This commit is contained in:
Richard M. Shaw 2012-06-13 15:25:50 -05:00
parent 011445b9a7
commit f84394ce7d
2 changed files with 19 additions and 7 deletions

View File

@ -1,7 +1,16 @@
diff -up OpenImageIO-oiio-1fa4a20/src/include/thread.h.ppckh OpenImageIO-oiio-1fa4a20/src/include/thread.h
--- OpenImageIO-oiio-1fa4a20/src/include/thread.h.ppckh 2012-04-25 15:29:32.530321567 +0200
+++ OpenImageIO-oiio-1fa4a20/src/include/thread.h 2012-04-25 15:29:42.490320642 +0200
@@ -267,6 +267,11 @@ atomic_exchange_and_add (volatile int *a
diff -Naur OpenImageIO-oiio-2939154.orig/src/include/thread.h OpenImageIO-oiio-2939154/src/include/thread.h
--- OpenImageIO-oiio-2939154.orig/src/include/thread.h 2012-06-04 12:30:16.000000000 -0500
+++ OpenImageIO-oiio-2939154/src/include/thread.h 2012-06-13 15:14:36.648990016 -0500
@@ -103,7 +103,7 @@
#endif
#if defined(__GNUC__) && (defined(_GLIBCXX_ATOMIC_BUILTINS) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 401))
-#if !defined(__FreeBSD__) || defined(__x86_64__)
+#if !defined(__FreeBSD__) && !defined(__PPC__) || defined(__x86_64__)
#define USE_GCC_ATOMICS
#endif
#endif
@@ -272,6 +272,11 @@
#elif defined(_WIN32)
// Windows
return _InterlockedExchangeAdd ((volatile LONG *)at, x);
@ -13,7 +22,7 @@ diff -up OpenImageIO-oiio-1fa4a20/src/include/thread.h.ppckh OpenImageIO-oiio-1f
#else
# error No atomics on this platform.
#endif
@@ -292,6 +297,11 @@ atomic_exchange_and_add (volatile long l
@@ -297,6 +302,11 @@
# else
return InterlockedExchangeAdd64 ((volatile LONGLONG *)at, x);
# endif
@ -25,7 +34,7 @@ diff -up OpenImageIO-oiio-1fa4a20/src/include/thread.h.ppckh OpenImageIO-oiio-1f
#else
# error No atomics on this platform.
#endif
@@ -317,6 +327,8 @@ atomic_compare_and_exchange (volatile in
@@ -322,6 +332,8 @@
return OSAtomicCompareAndSwap32Barrier (compareval, newval, at);
#elif defined(_WIN32)
return (_InterlockedCompareExchange ((volatile LONG *)at, newval, compareval) == compareval);
@ -34,7 +43,7 @@ diff -up OpenImageIO-oiio-1fa4a20/src/include/thread.h.ppckh OpenImageIO-oiio-1f
#else
# error No atomics on this platform.
#endif
@@ -336,6 +348,8 @@ atomic_compare_and_exchange (volatile lo
@@ -341,6 +353,8 @@
return OSAtomicCompareAndSwap64Barrier (compareval, newval, at);
#elif defined(_WIN32)
return (_InterlockedCompareExchange64 ((volatile LONGLONG *)at, newval, compareval) == compareval);

View File

@ -93,6 +93,9 @@ pushd build
-DUSE_EXTERNAL_TBB=TRUE \
%else
-DUSE_TBB:BOOL=FALSE \
%endif
%ifarch ppc ppc64
-DNOTHREADS:BOOL=TRUE \
%endif
../src