Fix mfence patch

- Since the __TBB_full_memory_fence macro was function-call-like, it
  stole () intended for function invocation.  GCC now warns about this.
This commit is contained in:
Petr Machata 2013-05-22 17:01:44 +02:00
parent 7cc476a8d7
commit dba72839e1
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: 1.%{releasedate}%{?dist}
Release: 2.%{releasedate}%{?dist}
License: GPLv2 with exceptions
Group: Development/Tools
URL: http://threadingbuildingblocks.org/
@ -119,6 +119,10 @@ rm -rf ${RPM_BUILD_ROOT}
%doc doc/html
%changelog
* Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-1.20130314
- Fix mfence patch. Since the __TBB_full_memory_fence macro was
function-call-like, it stole () intended for function invocation.
* Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-1.20130314
- Rebase to 4.1 update 3