Fix mfence patch

- Since the __TBB_full_memory_fence macro was function-call-like, it
  stole () intended for function invocation.
This commit is contained in:
Petr Machata 2013-05-22 17:04:52 +02:00
parent 59a27a44f6
commit f37359be0a
2 changed files with 6 additions and 2 deletions

View File

@ -6,7 +6,7 @@ diff -up tbb40_20110809oss/include/tbb/machine/linux_ia32.h\~ tbb40_20110809oss/
#define __TBB_acquire_consistency_helper() __TBB_compiler_fence()
#define __TBB_release_consistency_helper() __TBB_compiler_fence()
-#define __TBB_full_memory_fence() __asm__ __volatile__("mfence": : :"memory")
+#define __TBB_full_memory_fence() __TBB_full_memory_fence_imp
+#define __TBB_full_memory_fence() __TBB_full_memory_fence_imp()
+inline void __TBB_full_memory_fence_imp() {
+ int tmp;
+ __asm__ __volatile__("xchg %0,%0"

View File

@ -10,7 +10,7 @@
Summary: The Threading Building Blocks library abstracts low-level threading details
Name: tbb
Version: %{dotver}
Release: 7.%{releasedate}%{?dist}
Release: 8.%{releasedate}%{?dist}
License: GPLv2 with exceptions
Group: Development/Tools
URL: http://threadingbuildingblocks.org/
@ -143,6 +143,10 @@ rm -rf ${RPM_BUILD_ROOT}
%doc %{source_5}
%changelog
* Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.0-8.20120408
- Fix mfence patch. Since the __TBB_full_memory_fence macro was
function-call-like, it stole () intended for function invocation.
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-7.20120408
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild