From fc0ab1a00aa14e5b27c5164e5d6d63a88f6b94b1c83bc210990aa358233ffb61 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 23 Jun 2008 00:47:50 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/boost?expand=0&rev=13 --- boost-ppc-asm.patch | 61 +++++++++++++++++++++++++++++++++++++++++++++ boost.changes | 5 ++++ boost.spec | 6 ++++- 3 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 boost-ppc-asm.patch diff --git a/boost-ppc-asm.patch b/boost-ppc-asm.patch new file mode 100644 index 0000000..cef9b5a --- /dev/null +++ b/boost-ppc-asm.patch @@ -0,0 +1,61 @@ +--- boost/detail/sp_counted_base_gcc_ppc.hpp ++++ boost/detail/sp_counted_base_gcc_ppc.hpp +@@ -41,14 +41,13 @@ inline void atomic_increment( int * pw ) + __asm__ + ( + "0:\n\t" +- "lwarx %1, 0, %2\n\t" ++ "lwarx %1, %y0\n\t" + "addi %1, %1, 1\n\t" +- "stwcx. %1, 0, %2\n\t" ++ "stwcx. %1, %y0\n\t" + "bne- 0b": + +- "=m"( *pw ), "=&b"( tmp ): +- "r"( pw ), "m"( *pw ): +- "cc" ++ "+Z"( *pw ), "=&b"( tmp ):: ++ "memory", "cc" + ); + } + +@@ -62,14 +61,13 @@ inline int atomic_decrement( int * pw ) + ( + "sync\n\t" + "0:\n\t" +- "lwarx %1, 0, %2\n\t" ++ "lwarx %1, %y0\n\t" + "addi %1, %1, -1\n\t" +- "stwcx. %1, 0, %2\n\t" ++ "stwcx. %1, %y0\n\t" + "bne- 0b\n\t" + "isync": + +- "=m"( *pw ), "=&b"( rv ): +- "r"( pw ), "m"( *pw ): ++ "+Z"( *pw ), "=&b"( rv ):: + "memory", "cc" + ); + +@@ -86,17 +84,16 @@ inline int atomic_conditional_increment( + __asm__ + ( + "0:\n\t" +- "lwarx %1, 0, %2\n\t" ++ "lwarx %1, %y0\n\t" + "cmpwi %1, 0\n\t" + "beq 1f\n\t" + "addi %1, %1, 1\n\t" + "1:\n\t" +- "stwcx. %1, 0, %2\n\t" ++ "stwcx. %1, %y0\n\t" + "bne- 0b": + +- "=m"( *pw ), "=&b"( rv ): +- "r"( pw ), "m"( *pw ): +- "cc" ++ "+Z"( *pw ), "=&b"( rv ):: ++ "memory", "cc" + ); + + return rv; diff --git a/boost.changes b/boost.changes index 6a3281f..98ba0f1 100644 --- a/boost.changes +++ b/boost.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Fri Jun 20 15:24:42 CEST 2008 - schwab@suse.de + +- Fix ppc atomic ops. + ------------------------------------------------------------------- Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de diff --git a/boost.spec b/boost.spec index df28b9f..9562278 100644 --- a/boost.spec +++ b/boost.spec @@ -25,7 +25,7 @@ Group: Development/Libraries/C and C++ Summary: Boost C++ Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-build Version: 1.34.1 -Release: 29 +Release: 44 Source0: %{name}_%{file_version}.tar.bz2 Source1: boost-rpmlintrc Source2: boost_%{man_file_version}_man.tar.bz2 @@ -48,6 +48,7 @@ Patch14: boost-codecleanup.patch Patch15: boost-CVE-2008-0171.patch # Patch16: boost-qualify_name.patch +Patch17: boost-ppc-asm.patch %define _prefix /usr %description @@ -116,6 +117,7 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} %patch14 %patch15 %patch16 +%patch17 chmod +x configure #stupid build machinery copies .orig files find . -name \*.orig -exec rm {} + @@ -220,6 +222,8 @@ find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} + %doc %{_mandir}/man7/*.7.gz %changelog +* Fri Jun 20 2008 schwab@suse.de +- Fix ppc atomic ops. * Thu Apr 10 2008 ro@suse.de - added baselibs.conf file to build xxbit packages for multilib support