[OpenImageIO] Add ppc patch.
Richard Shaw
hobbes1069 at fedoraproject.org
Tue Jun 12 19:04:01 UTC 2012
commit 011445b9a706a89a12039b7d1cf6704b9ed52da3
Author: Richard M. Shaw <hobbes1069 at gmail.com>
Date: Tue Jun 12 14:03:59 2012 -0500
Add ppc patch.
OpenImageIO-ppc.patch | 45 +++++++++++++++++++++++++++++++++++++++++++++
OpenImageIO.spec | 2 ++
2 files changed, 47 insertions(+), 0 deletions(-)
---
diff --git a/OpenImageIO-ppc.patch b/OpenImageIO-ppc.patch
new file mode 100644
index 0000000..830bf27
--- /dev/null
+++ b/OpenImageIO-ppc.patch
@@ -0,0 +1,45 @@
+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
+ #elif defined(_WIN32)
+ // Windows
+ return _InterlockedExchangeAdd ((volatile LONG *)at, x);
++#elif defined (__PPC__)
++ long long r;
++ r = *at;
++ *at += x;
++ return r;
+ #else
+ # error No atomics on this platform.
+ #endif
+@@ -292,6 +297,11 @@ atomic_exchange_and_add (volatile long l
+ # else
+ return InterlockedExchangeAdd64 ((volatile LONGLONG *)at, x);
+ # endif
++#elif defined (__PPC__)
++ long long r;
++ r = *at;
++ *at += x;
++ return r;
+ #else
+ # error No atomics on this platform.
+ #endif
+@@ -317,6 +327,8 @@ atomic_compare_and_exchange (volatile in
+ return OSAtomicCompareAndSwap32Barrier (compareval, newval, at);
+ #elif defined(_WIN32)
+ return (_InterlockedCompareExchange ((volatile LONG *)at, newval, compareval) == compareval);
++#elif defined(__PPC__)
++ return ((*at == compareval) ? (*at = newval), 1 : 0);
+ #else
+ # error No atomics on this platform.
+ #endif
+@@ -336,6 +348,8 @@ atomic_compare_and_exchange (volatile lo
+ return OSAtomicCompareAndSwap64Barrier (compareval, newval, at);
+ #elif defined(_WIN32)
+ return (_InterlockedCompareExchange64 ((volatile LONGLONG *)at, newval, compareval) == compareval);
++#elif defined(__PPC__)
++ return ((*at == compareval) ? (*at = newval), 1 : 0);
+ #else
+ # error No atomics on this platform.
+ #endif
diff --git a/OpenImageIO.spec b/OpenImageIO.spec
index 3fa7aae..7dbc5a3 100644
--- a/OpenImageIO.spec
+++ b/OpenImageIO.spec
@@ -15,6 +15,7 @@ Source1: FindTBB.cmake
Patch0: OpenImageIO-1.0.0-use_external_tbb.patch
Patch1: OpenImageIO-1.0.0-tbb_include.patch
+Patch2: OpenImageIO-ppc.patch
BuildRequires: cmake
BuildRequires: qt4-devel
@@ -63,6 +64,7 @@ Development files for package %{name}
%setup -q -n %{name}-oiio-%{githash2}
%patch0 -p1 -b .exttbb
%patch1 -p1 -b .tbbinc
+%patch2 -p1 -b .ppc
# Remove bundled pugixml
rm -f src/include/pugixml.hpp \
More information about the scm-commits
mailing list