[OpenImageIO] Update ppc patch and disable threads since ppc lacks real atomics.

Richard Shaw hobbes1069 at fedoraproject.org
Wed Jun 13 20:25:53 UTC 2012


commit f84394ce7d371538470cc21f86e8caf149ff728e
Author: Richard M. Shaw <hobbes1069 at gmail.com>
Date:   Wed Jun 13 15:25:50 2012 -0500

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

 OpenImageIO-ppc.patch |   23 ++++++++++++++++-------
 OpenImageIO.spec      |    3 +++
 2 files changed, 19 insertions(+), 7 deletions(-)
---
diff --git a/OpenImageIO-ppc.patch b/OpenImageIO-ppc.patch
index 830bf27..7950cb9 100644
--- a/OpenImageIO-ppc.patch
+++ b/OpenImageIO-ppc.patch
@@ -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);
diff --git a/OpenImageIO.spec b/OpenImageIO.spec
index 7dbc5a3..5a98a91 100644
--- a/OpenImageIO.spec
+++ b/OpenImageIO.spec
@@ -94,6 +94,9 @@ pushd build
 %else
        -DUSE_TBB:BOOL=FALSE \
 %endif
+%ifarch ppc ppc64
+       -DNOTHREADS:BOOL=TRUE \
+%endif
        ../src
 
 make %{?_smp_mflags}


More information about the scm-commits mailing list