rpms/tbb/F-13 tbb-2.2-mfence.patch,NONE,1.1 tbb.spec,1.5,1.6

Petr Machata pmachata at fedoraproject.org
Thu Jun 10 16:09:36 UTC 2010


Author: pmachata

Update of /cvs/pkgs/rpms/tbb/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv874

Modified Files:
	tbb.spec 
Added Files:
	tbb-2.2-mfence.patch 
Log Message:
- Replace mfence instruction with xchg to make it run on ia32-class
  machines without SSE2.
- Resolves: #600654


tbb-2.2-mfence.patch:
 linux_ia32.h |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

--- NEW FILE tbb-2.2-mfence.patch ---
diff -up /home/petr/fedora/tbb/devel/tbb22_20090809oss-pm/include/tbb/machine/linux_ia32.h\~ /home/petr/fedora/tbb/devel/tbb22_20090809oss-pm/include/tbb/machine/linux_ia32.h
--- tbb22_20090809oss-pm/include/tbb/machine/linux_ia32.h~	2009-08-12 09:05:03.000000000 +0200
+++ tbb22_20090809oss-pm/include/tbb/machine/linux_ia32.h	2010-06-10 17:11:17.000000000 +0200
@@ -39,7 +39,13 @@
 
 #define __TBB_release_consistency_helper() __asm__ __volatile__("": : :"memory")
 
-inline void __TBB_rel_acq_fence() { __asm__ __volatile__("mfence": : :"memory"); }
+inline void __TBB_rel_acq_fence() {
+  int tmp;
+  __asm__ __volatile__("xchg %0,%0"
+		       : "=r"(tmp)
+		       : "r"(tmp)
+		       : "memory");
+}
 
 #define __MACHINE_DECL_ATOMICS(S,T,X) \
 static inline T __TBB_machine_cmpswp##S (volatile void *ptr, T value, T comparand )  \

Diff finished.  Thu Jun 10 17:13:43 2010


Index: tbb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/tbb/F-13/tbb.spec,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- tbb.spec	3 Nov 2009 15:37:55 -0000	1.5
+++ tbb.spec	10 Jun 2010 16:09:36 -0000	1.6
@@ -11,7 +11,7 @@
 Summary: The Threading Building Blocks library abstracts low-level threading details
 Name: tbb
 Version: %{major}.%{minor}
-Release: 1.%{releasedate}%{?dist}
+Release: 2.%{releasedate}%{?dist}
 License: GPLv2 with exceptions
 Group: Development/Tools
 URL: http://threadingbuildingblocks.org/
@@ -26,6 +26,7 @@ Source2: %{source_2}
 Source3: %{source_3}
 Source4: %{source_4}
 Patch1: tbb-2.2-20090809-cxxflags.patch
+Patch2: tbb-2.2-mfence.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: libstdc++-devel
 # We need "arch" and "hostname" binaries:
@@ -66,6 +67,7 @@ C++ library.
 %prep
 %setup -q -n %{sourcebasename}
 %patch1 -p1
+%patch2 -p1
 
 %build
 make %{?_smp_mflags} CXXFLAGS="$RPM_OPT_FLAGS" tbb_build_prefix=obj
@@ -115,6 +117,11 @@ rm -rf ${RPM_BUILD_ROOT}
 %doc %{source_4}
 
 %changelog
+* Thu Jun 10 2010 Petr Machata <pmachata at redhat.com> - 2.2-2.20090809
+- Replace mfence instruction with xchg to make it run on ia32-class
+  machines without SSE2.
+- Resolves: #600654
+
 * Tue Nov  3 2009 Petr Machata <pmachata at redhat.com> - 2.2-1.20090809
 - New upstream 2.2
 - Resolves: #521571



More information about the scm-commits mailing list