[packages/gcc] - more build fixes; still doesn't build correctly

arekm arekm at pld-linux.org
Sun Oct 12 10:06:29 CEST 2014


commit 9236fd786d039a7f5e27658f035f81313b5fc826
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Sun Oct 12 10:06:18 2014 +0200

    - more build fixes; still doesn't build correctly

 gcc-4.9-isl-0.13-hack.patch |   71 +++
 gcc-pr61164.patch           | 1085 +++++++++++++++++++++++++++++++++++++++++++
 gcc.spec                    |    8 +-
 3 files changed, 1161 insertions(+), 3 deletions(-)
---
diff --git a/gcc.spec b/gcc.spec
index 1f1ac51..838197f 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -117,6 +117,8 @@ Patch1:		%{name}-cloog.patch
 Patch2:		%{name}-nodebug.patch
 Patch3:		%{name}-ada-link.patch
 Patch4:		%{name}-sparc64-ada_fix.patch
+Patch5:		%{name}-4.9-isl-0.13-hack.patch
+Patch6:		%{name}-pr61164.patch
 Patch7:		%{name}-libjava-multilib.patch
 Patch8:		%{name}-enable-java-awt-qt.patch
 Patch10:	%{name}-moresparcs.patch
@@ -158,8 +160,7 @@ BuildRequires:	glibc-devel(sparcv9)
 %endif
 BuildRequires:	gmp-c++-devel >= 4.1
 BuildRequires:	gmp-devel >= 4.1
-BuildRequires:	isl-devel >= 0.10
-BuildRequires:	isl-devel < 0.13
+BuildRequires:	isl-devel >= 0.13
 BuildRequires:	libmpc-devel
 BuildRequires:	mpfr-devel >= 2.3.0
 BuildRequires:	ppl-devel >= 0.11
@@ -1698,7 +1699,8 @@ Ten pakiet zawiera 32-bitową wersję statycznej biblioteki GNU Atomic.
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
-
+%patch5 -p1
+%patch6 -p1
 %patch7 -p0
 %if %{with qt}
 %patch8 -p1
diff --git a/gcc-4.9-isl-0.13-hack.patch b/gcc-4.9-isl-0.13-hack.patch
new file mode 100644
index 0000000..c2b95d9
--- /dev/null
+++ b/gcc-4.9-isl-0.13-hack.patch
@@ -0,0 +1,71 @@
+diff -Naur gcc-4.9-20140604-old/gcc/graphite-clast-to-gimple.c gcc-4.9-20140604/gcc/graphite-clast-to-gimple.c
+--- gcc-4.9-20140604-old/gcc/graphite-clast-to-gimple.c	2014-03-03 21:39:22.000000000 +1000
++++ gcc-4.9-20140604/gcc/graphite-clast-to-gimple.c	2014-06-25 15:07:57.958697105 +1000
+@@ -28,6 +28,8 @@
+ #include <isl/constraint.h>
+ #include <isl/ilp.h>
+ #include <isl/aff.h>
++#include <isl/deprecated/int.h>
++#include <isl/deprecated/ilp_int.h>
+ #include <cloog/cloog.h>
+ #include <cloog/isl/domain.h>
+ #endif
+diff -Naur gcc-4.9-20140604-old/gcc/graphite-interchange.c gcc-4.9-20140604/gcc/graphite-interchange.c
+--- gcc-4.9-20140604-old/gcc/graphite-interchange.c	2014-01-03 08:23:26.000000000 +1000
++++ gcc-4.9-20140604/gcc/graphite-interchange.c	2014-06-25 15:10:06.882899243 +1000
+@@ -29,6 +29,9 @@
+ #include <isl/map.h>
+ #include <isl/union_map.h>
+ #include <isl/ilp.h>
++#include <isl/deprecated/int.h>
++#include <isl/deprecated/ilp_int.h>
++#include <isl/deprecated/constraint_int.h>
+ #include <cloog/cloog.h>
+ #include <cloog/isl/domain.h>
+ #endif
+diff -Naur gcc-4.9-20140604-old/gcc/graphite-optimize-isl.c gcc-4.9-20140604/gcc/graphite-optimize-isl.c
+--- gcc-4.9-20140604-old/gcc/graphite-optimize-isl.c	2014-01-03 08:23:26.000000000 +1000
++++ gcc-4.9-20140604/gcc/graphite-optimize-isl.c	2014-06-25 15:16:57.038386166 +1000
+@@ -28,6 +28,8 @@
+ #include <isl/band.h>
+ #include <isl/aff.h>
+ #include <isl/options.h>
++#include <isl/deprecated/int.h>
++#include <isl/deprecated/aff_int.h>
+ #endif
+ 
+ #include "system.h"
+@@ -373,7 +375,7 @@
+ 	{
+ 	  for (i = ScheduleDimensions - 1 ;  i >= 0 ; i--)
+ 	    {
+-	      if (isl_band_member_is_zero_distance (Band, i))
++	      if (isl_band_member_is_coincident (Band, i))
+ 		{
+ 		  isl_map *TileMap;
+ 		  isl_union_map *TileUMap;
+diff -Naur gcc-4.9-20140604-old/gcc/graphite-poly.c gcc-4.9-20140604/gcc/graphite-poly.c
+--- gcc-4.9-20140604-old/gcc/graphite-poly.c	2014-01-03 08:23:26.000000000 +1000
++++ gcc-4.9-20140604/gcc/graphite-poly.c	2014-06-25 15:18:01.207157796 +1000
+@@ -28,6 +28,8 @@
+ #include <isl/constraint.h>
+ #include <isl/ilp.h>
+ #include <isl/aff.h>
++#include <isl/deprecated/int.h>
++#include <isl/deprecated/ilp_int.h>
+ #include <cloog/cloog.h>
+ #include <cloog/isl/domain.h>
+ #endif
+diff -Naur gcc-4.9-20140604-old/gcc/graphite-sese-to-poly.c gcc-4.9-20140604/gcc/graphite-sese-to-poly.c
+--- gcc-4.9-20140604-old/gcc/graphite-sese-to-poly.c	2014-04-08 20:59:40.000000000 +1000
++++ gcc-4.9-20140604/gcc/graphite-sese-to-poly.c	2014-06-25 15:19:46.575140398 +1000
+@@ -26,6 +26,9 @@
+ #include <isl/union_map.h>
+ #include <isl/constraint.h>
+ #include <isl/aff.h>
++#include <isl/deprecated/int.h>
++#include <isl/deprecated/aff_int.h>
++#include <isl/deprecated/constraint_int.h>
+ #include <cloog/cloog.h>
+ #include <cloog/cloog.h>
+ #include <cloog/isl/domain.h>
diff --git a/gcc-pr61164.patch b/gcc-pr61164.patch
new file mode 100644
index 0000000..511820e
--- /dev/null
+++ b/gcc-pr61164.patch
@@ -0,0 +1,1085 @@
+2014-09-27  Gleb Fotengauer-Malinovskiy  <glebfm at altlinux.org>
+
+libitm/
+
+	PR libitm/61164
+	* local_atomic (__always_inline): Rename to...
+	(__libitm_always_inline): ... this.
+---
+
+On Mon, Sep 29, 2014 at 03:38:25PM +0200, Jakub Jelinek wrote:
+> Why do you want to add inline keyword to that?  Some inline keywords
+> are implicit (methods defined inline), so there is no point adding it there.
+
+I just didn't get that redefinition of __always_inline was the source of the problem.
+
+ local_atomic | 299 +++++++++++++++++++++++++++++------------------------------
+ 1 file changed, 149 insertions(+), 150 deletions(-)
+
+diff --git a/libitm/local_atomic b/libitm/local_atomic
+index c3e079f..552b919 100644
+--- a/libitm/local_atomic
++++ b/libitm/local_atomic
+@@ -41,8 +41,7 @@
+ #ifndef _GLIBCXX_ATOMIC
+ #define _GLIBCXX_ATOMIC 1
+ 
+-#undef  __always_inline
+-#define __always_inline __attribute__((always_inline))
++#define __libitm_always_inline __attribute__((always_inline))
+ 
+ // #pragma GCC system_header
+ 
+@@ -74,7 +74,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       memory_order_seq_cst
+     } memory_order;
+ 
+-  inline __always_inline memory_order
++  inline __libitm_always_inline memory_order
+   __calculate_memory_order(memory_order __m) noexcept
+   {
+     const bool __cond1 = __m == memory_order_release;
+@@ -84,13 +84,13 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     return __mo2;
+   }
+ 
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_thread_fence(memory_order __m) noexcept
+   {
+     __atomic_thread_fence (__m);
+   }
+ 
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_signal_fence(memory_order __m) noexcept
+   {
+     __atomic_thread_fence (__m);
+@@ -280,19 +280,19 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     // Conversion to ATOMIC_FLAG_INIT.
+     atomic_flag(bool __i) noexcept : __atomic_flag_base({ __i }) { }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     test_and_set(memory_order __m = memory_order_seq_cst) noexcept
+     {
+       return __atomic_test_and_set (&_M_i, __m);
+     }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept
+     {
+       return __atomic_test_and_set (&_M_i, __m);
+     }
+ 
+-    __always_inline void
++    __libitm_always_inline void
+     clear(memory_order __m = memory_order_seq_cst) noexcept
+     {
+       // __glibcxx_assert(__m != memory_order_consume);
+@@ -302,7 +302,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       __atomic_clear (&_M_i, __m);
+     }
+ 
+-    __always_inline void
++    __libitm_always_inline void
+     clear(memory_order __m = memory_order_seq_cst) volatile noexcept
+     {
+       // __glibcxx_assert(__m != memory_order_consume);
+@@ -455,7 +455,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       is_lock_free() const volatile noexcept
+       { return __atomic_is_lock_free (sizeof (_M_i), &_M_i); }
+ 
+-      __always_inline void
++      __libitm_always_inline void
+       store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept
+       {
+ 	// __glibcxx_assert(__m != memory_order_acquire);
+@@ -465,7 +465,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	__atomic_store_n(&_M_i, __i, __m);
+       }
+ 
+-      __always_inline void
++      __libitm_always_inline void
+       store(__int_type __i,
+ 	    memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -476,7 +476,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	__atomic_store_n(&_M_i, __i, __m);
+       }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       load(memory_order __m = memory_order_seq_cst) const noexcept
+       {
+ 	// __glibcxx_assert(__m != memory_order_release);
+@@ -485,7 +485,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_load_n(&_M_i, __m);
+       }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+       {
+ 	// __glibcxx_assert(__m != memory_order_release);
+@@ -494,21 +494,21 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_load_n(&_M_i, __m);
+       }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       exchange(__int_type __i,
+ 	       memory_order __m = memory_order_seq_cst) noexcept
+       {
+ 	return __atomic_exchange_n(&_M_i, __i, __m);
+       }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       exchange(__int_type __i,
+ 	       memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+ 	return __atomic_exchange_n(&_M_i, __i, __m);
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__int_type& __i1, __int_type __i2,
+ 			    memory_order __m1, memory_order __m2) noexcept
+       {
+@@ -519,7 +519,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__int_type& __i1, __int_type __i2,
+ 			    memory_order __m1,
+ 			    memory_order __m2) volatile noexcept
+@@ -531,7 +531,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2);
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__int_type& __i1, __int_type __i2,
+ 			    memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -539,7 +539,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 				     __calculate_memory_order(__m));
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__int_type& __i1, __int_type __i2,
+ 		   memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -547,7 +547,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 				     __calculate_memory_order(__m));
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__int_type& __i1, __int_type __i2,
+ 			      memory_order __m1, memory_order __m2) noexcept
+       {
+@@ -558,7 +558,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__int_type& __i1, __int_type __i2,
+ 			      memory_order __m1,
+ 			      memory_order __m2) volatile noexcept
+@@ -570,7 +570,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__int_type& __i1, __int_type __i2,
+ 			      memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -578,7 +578,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 				       __calculate_memory_order(__m));
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__int_type& __i1, __int_type __i2,
+ 		 memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -586,52 +586,52 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 				       __calculate_memory_order(__m));
+       }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_add(__int_type __i,
+ 		memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_add(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_add(__int_type __i,
+ 		memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_add(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_sub(__int_type __i,
+ 		memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_sub(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_sub(__int_type __i,
+ 		memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_sub(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_and(__int_type __i,
+ 		memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_and(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_and(__int_type __i,
+ 		memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_and(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_or(__int_type __i,
+ 	       memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_or(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_or(__int_type __i,
+ 	       memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_or(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_xor(__int_type __i,
+ 		memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_xor(&_M_i, __i, __m); }
+ 
+-      __always_inline __int_type
++      __libitm_always_inline __int_type
+       fetch_xor(__int_type __i,
+ 		memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_xor(&_M_i, __i, __m); }
+@@ -733,7 +733,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       is_lock_free() const volatile noexcept
+       { return __atomic_is_lock_free (sizeof (_M_p), &_M_p); }
+ 
+-      __always_inline void
++      __libitm_always_inline void
+       store(__pointer_type __p,
+ 	    memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -744,7 +744,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	__atomic_store_n(&_M_p, __p, __m);
+       }
+ 
+-      __always_inline void
++      __libitm_always_inline void
+       store(__pointer_type __p,
+ 	    memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -755,7 +755,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	__atomic_store_n(&_M_p, __p, __m);
+       }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       load(memory_order __m = memory_order_seq_cst) const noexcept
+       {
+ 	// __glibcxx_assert(__m != memory_order_release);
+@@ -764,7 +764,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_load_n(&_M_p, __m);
+       }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+       {
+ 	// __glibcxx_assert(__m != memory_order_release);
+@@ -773,21 +773,21 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_load_n(&_M_p, __m);
+       }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       exchange(__pointer_type __p,
+ 	       memory_order __m = memory_order_seq_cst) noexcept
+       {
+ 	return __atomic_exchange_n(&_M_p, __p, __m);
+       }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       exchange(__pointer_type __p,
+ 	       memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+ 	return __atomic_exchange_n(&_M_p, __p, __m);
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+ 			      memory_order __m1,
+ 			      memory_order __m2) noexcept
+@@ -799,7 +799,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+ 			      memory_order __m1,
+ 			      memory_order __m2) volatile noexcept
+@@ -811,22 +811,22 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2);
+       }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_add(ptrdiff_t __d,
+ 		memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_add(&_M_p, __d, __m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_add(ptrdiff_t __d,
+ 		memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_add(&_M_p, __d, __m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_sub(ptrdiff_t __d,
+ 		memory_order __m = memory_order_seq_cst) noexcept
+       { return __atomic_fetch_sub(&_M_p, __d, __m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_sub(ptrdiff_t __d,
+ 		memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return __atomic_fetch_sub(&_M_p, __d, __m); }
+@@ -870,67 +870,67 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     bool
+     is_lock_free() const volatile noexcept { return _M_base.is_lock_free(); }
+ 
+-    __always_inline void
++    __libitm_always_inline void
+     store(bool __i, memory_order __m = memory_order_seq_cst) noexcept
+     { _M_base.store(__i, __m); }
+ 
+-    __always_inline void
++    __libitm_always_inline void
+     store(bool __i, memory_order __m = memory_order_seq_cst) volatile noexcept
+     { _M_base.store(__i, __m); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     load(memory_order __m = memory_order_seq_cst) const noexcept
+     { return _M_base.load(__m); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+     { return _M_base.load(__m); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     exchange(bool __i, memory_order __m = memory_order_seq_cst) noexcept
+     { return _M_base.exchange(__i, __m); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     exchange(bool __i,
+ 	     memory_order __m = memory_order_seq_cst) volatile noexcept
+     { return _M_base.exchange(__i, __m); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
+ 			  memory_order __m2) noexcept
+     { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_weak(bool& __i1, bool __i2, memory_order __m1,
+ 			  memory_order __m2) volatile noexcept
+     { return _M_base.compare_exchange_weak(__i1, __i2, __m1, __m2); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_weak(bool& __i1, bool __i2,
+ 			  memory_order __m = memory_order_seq_cst) noexcept
+     { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_weak(bool& __i1, bool __i2,
+ 		     memory_order __m = memory_order_seq_cst) volatile noexcept
+     { return _M_base.compare_exchange_weak(__i1, __i2, __m); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
+ 			    memory_order __m2) noexcept
+     { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_strong(bool& __i1, bool __i2, memory_order __m1,
+ 			    memory_order __m2) volatile noexcept
+     { return _M_base.compare_exchange_strong(__i1, __i2, __m1, __m2); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_strong(bool& __i1, bool __i2,
+ 			    memory_order __m = memory_order_seq_cst) noexcept
+     { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
+ 
+-    __always_inline bool
++    __libitm_always_inline bool
+     compare_exchange_strong(bool& __i1, bool __i2,
+ 		    memory_order __m = memory_order_seq_cst) volatile noexcept
+     { return _M_base.compare_exchange_strong(__i1, __i2, __m); }
+@@ -980,11 +980,11 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       store(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
+       { __atomic_store(&_M_i, &__i, _m); }
+ 
+-      __always_inline void
++      __libitm_always_inline void
+       store(_Tp __i, memory_order _m = memory_order_seq_cst) volatile noexcept
+       { __atomic_store(&_M_i, &__i, _m); }
+ 
+-      __always_inline _Tp
++      __libitm_always_inline _Tp
+       load(memory_order _m = memory_order_seq_cst) const noexcept
+       { 
+         _Tp tmp;
+@@ -992,7 +992,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return tmp;
+       }
+ 
+-      __always_inline _Tp
++      __libitm_always_inline _Tp
+       load(memory_order _m = memory_order_seq_cst) const volatile noexcept
+       { 
+         _Tp tmp;
+@@ -1000,7 +1000,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return tmp;
+       }
+ 
+-      __always_inline _Tp
++      __libitm_always_inline _Tp
+       exchange(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept
+       { 
+         _Tp tmp;
+@@ -1008,7 +1008,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return tmp;
+       }
+ 
+-      __always_inline _Tp
++      __libitm_always_inline _Tp
+       exchange(_Tp __i, 
+ 	       memory_order _m = memory_order_seq_cst) volatile noexcept
+       { 
+@@ -1017,50 +1017,50 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 	return tmp;
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 
+ 			    memory_order __f) noexcept
+       {
+ 	return __atomic_compare_exchange(&_M_i, &__e, &__i, true, __s, __f); 
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(_Tp& __e, _Tp __i, memory_order __s, 
+ 			    memory_order __f) volatile noexcept
+       {
+ 	return __atomic_compare_exchange(&_M_i, &__e, &__i, true, __s, __f); 
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(_Tp& __e, _Tp __i,
+ 			    memory_order __m = memory_order_seq_cst) noexcept
+       { return compare_exchange_weak(__e, __i, __m, __m); }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(_Tp& __e, _Tp __i,
+ 		     memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return compare_exchange_weak(__e, __i, __m, __m); }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 
+ 			      memory_order __f) noexcept
+       {
+ 	return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f); 
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(_Tp& __e, _Tp __i, memory_order __s, 
+ 			      memory_order __f) volatile noexcept
+       {
+ 	return __atomic_compare_exchange(&_M_i, &__e, &__i, false, __s, __f); 
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(_Tp& __e, _Tp __i,
+ 			       memory_order __m = memory_order_seq_cst) noexcept
+       { return compare_exchange_strong(__e, __i, __m, __m); }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(_Tp& __e, _Tp __i,
+ 		     memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return compare_exchange_strong(__e, __i, __m, __m); }
+@@ -1153,46 +1153,46 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+       is_lock_free() const volatile noexcept
+       { return _M_b.is_lock_free(); }
+ 
+-      __always_inline void
++      __libitm_always_inline void
+       store(__pointer_type __p,
+ 	    memory_order __m = memory_order_seq_cst) noexcept
+       { return _M_b.store(__p, __m); }
+ 
+-      __always_inline void
++      __libitm_always_inline void
+       store(__pointer_type __p,
+ 	    memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return _M_b.store(__p, __m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       load(memory_order __m = memory_order_seq_cst) const noexcept
+       { return _M_b.load(__m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       load(memory_order __m = memory_order_seq_cst) const volatile noexcept
+       { return _M_b.load(__m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       exchange(__pointer_type __p,
+ 	       memory_order __m = memory_order_seq_cst) noexcept
+       { return _M_b.exchange(__p, __m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       exchange(__pointer_type __p,
+ 	       memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return _M_b.exchange(__p, __m); }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
+ 			    memory_order __m1, memory_order __m2) noexcept
+       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
+ 			    memory_order __m1,
+ 			    memory_order __m2) volatile noexcept
+       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
+ 			    memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -1200,7 +1200,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 				     __calculate_memory_order(__m));
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_weak(__pointer_type& __p1, __pointer_type __p2,
+ 		    memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -1208,18 +1208,18 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 				     __calculate_memory_order(__m));
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+ 			      memory_order __m1, memory_order __m2) noexcept
+       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+ 			      memory_order __m1,
+ 			      memory_order __m2) volatile noexcept
+       { return _M_b.compare_exchange_strong(__p1, __p2, __m1, __m2); }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+ 			      memory_order __m = memory_order_seq_cst) noexcept
+       {
+@@ -1227,7 +1227,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 					    __calculate_memory_order(__m));
+       }
+ 
+-      __always_inline bool
++      __libitm_always_inline bool
+       compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2,
+ 		    memory_order __m = memory_order_seq_cst) volatile noexcept
+       {
+@@ -1235,22 +1235,22 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 					    __calculate_memory_order(__m));
+       }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_add(ptrdiff_t __d,
+ 		memory_order __m = memory_order_seq_cst) noexcept
+       { return _M_b.fetch_add(__d, __m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_add(ptrdiff_t __d,
+ 		memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return _M_b.fetch_add(__d, __m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_sub(ptrdiff_t __d,
+ 		memory_order __m = memory_order_seq_cst) noexcept
+       { return _M_b.fetch_sub(__d, __m); }
+ 
+-      __always_inline __pointer_type
++      __libitm_always_inline __pointer_type
+       fetch_sub(ptrdiff_t __d,
+ 		memory_order __m = memory_order_seq_cst) volatile noexcept
+       { return _M_b.fetch_sub(__d, __m); }
+@@ -1544,98 +1544,98 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 
+ 
+   // Function definitions, atomic_flag operations.
+-  inline __always_inline bool
++  inline __libitm_always_inline bool
+   atomic_flag_test_and_set_explicit(atomic_flag* __a,
+ 				    memory_order __m) noexcept
+   { return __a->test_and_set(__m); }
+ 
+-  inline __always_inline bool
++  inline __libitm_always_inline bool
+   atomic_flag_test_and_set_explicit(volatile atomic_flag* __a,
+ 				    memory_order __m) noexcept
+   { return __a->test_and_set(__m); }
+ 
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_flag_clear_explicit(atomic_flag* __a, memory_order __m) noexcept
+   { __a->clear(__m); }
+ 
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_flag_clear_explicit(volatile atomic_flag* __a,
+ 			     memory_order __m) noexcept
+   { __a->clear(__m); }
+ 
+-  inline __always_inline bool
++  inline __libitm_always_inline bool
+   atomic_flag_test_and_set(atomic_flag* __a) noexcept
+   { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
+ 
+-  inline __always_inline bool
++  inline __libitm_always_inline bool
+   atomic_flag_test_and_set(volatile atomic_flag* __a) noexcept
+   { return atomic_flag_test_and_set_explicit(__a, memory_order_seq_cst); }
+ 
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_flag_clear(atomic_flag* __a) noexcept
+   { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
+ 
+-  inline __always_inline void
++  inline __libitm_always_inline void
+   atomic_flag_clear(volatile atomic_flag* __a) noexcept
+   { atomic_flag_clear_explicit(__a, memory_order_seq_cst); }
+ 
+ 
+   // Function templates generally applicable to atomic types.
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_is_lock_free(const atomic<_ITp>* __a) noexcept
+     { return __a->is_lock_free(); }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept
+     { return __a->is_lock_free(); }
+ 
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept;
+ 
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept;
+ 
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_store_explicit(atomic<_ITp>* __a, _ITp __i,
+ 			  memory_order __m) noexcept
+     { __a->store(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
+ 			  memory_order __m) noexcept
+     { __a->store(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept
+     { return __a->load(__m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_load_explicit(const volatile atomic<_ITp>* __a,
+ 			 memory_order __m) noexcept
+     { return __a->load(__m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_exchange_explicit(atomic<_ITp>* __a, _ITp __i,
+ 			     memory_order __m) noexcept
+     { return __a->exchange(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_exchange_explicit(volatile atomic<_ITp>* __a, _ITp __i,
+ 			     memory_order __m) noexcept
+     { return __a->exchange(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a,
+ 					  _ITp* __i1, _ITp __i2,
+ 					  memory_order __m1,
+@@ -1643,7 +1643,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_weak_explicit(volatile atomic<_ITp>* __a,
+ 					  _ITp* __i1, _ITp __i2,
+ 					  memory_order __m1,
+@@ -1651,7 +1651,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a,
+ 					    _ITp* __i1, _ITp __i2,
+ 					    memory_order __m1,
+@@ -1659,7 +1659,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_strong_explicit(volatile atomic<_ITp>* __a,
+ 					    _ITp* __i1, _ITp __i2,
+ 					    memory_order __m1,
+@@ -1668,37 +1668,37 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+ 
+ 
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_store(atomic<_ITp>* __a, _ITp __i) noexcept
+     { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline void
++    __libitm_always_inline void
+     atomic_store(volatile atomic<_ITp>* __a, _ITp __i) noexcept
+     { atomic_store_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_load(const atomic<_ITp>* __a) noexcept
+     { return atomic_load_explicit(__a, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_load(const volatile atomic<_ITp>* __a) noexcept
+     { return atomic_load_explicit(__a, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_exchange(atomic<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_exchange(volatile atomic<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_exchange_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_weak(atomic<_ITp>* __a,
+ 				 _ITp* __i1, _ITp __i2) noexcept
+     {
+@@ -1708,7 +1708,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_weak(volatile atomic<_ITp>* __a,
+ 				 _ITp* __i1, _ITp __i2) noexcept
+     {
+@@ -1718,7 +1718,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_strong(atomic<_ITp>* __a,
+ 				   _ITp* __i1, _ITp __i2) noexcept
+     {
+@@ -1728,7 +1728,7 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+     }
+ 
+   template<typename _ITp>
+-    __always_inline bool
++    __libitm_always_inline bool
+     atomic_compare_exchange_strong(volatile atomic<_ITp>* __a,
+ 				   _ITp* __i1, _ITp __i2) noexcept
+     {
+@@ -1742,158 +1742,158 @@ namespace std // _GLIBCXX_VISIBILITY(default)
+   // intergral types as specified in the standard, excluding address
+   // types.
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_add_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_add(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_add_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_add(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_sub_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_sub(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_sub_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_sub(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_and_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_and(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_and_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_and(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_or_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+ 			     memory_order __m) noexcept
+     { return __a->fetch_or(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_or_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ 			     memory_order __m) noexcept
+     { return __a->fetch_or(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_xor_explicit(__atomic_base<_ITp>* __a, _ITp __i,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_xor(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_xor_explicit(volatile __atomic_base<_ITp>* __a, _ITp __i,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_xor(__i, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_add(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_add(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_add_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_sub(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_sub(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_sub_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_and(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_and(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_and_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_or(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_or(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_or_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_xor(__atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp
++    __libitm_always_inline _ITp
+     atomic_fetch_xor(volatile __atomic_base<_ITp>* __a, _ITp __i) noexcept
+     { return atomic_fetch_xor_explicit(__a, __i, memory_order_seq_cst); }
+ 
+ 
+   // Partial specializations for pointers.
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_add_explicit(atomic<_ITp*>* __a, ptrdiff_t __d,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_add(__d, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_add_explicit(volatile atomic<_ITp*>* __a, ptrdiff_t __d,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_add(__d, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
+     { return __a->fetch_add(__d); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
+     { return __a->fetch_add(__d); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_sub_explicit(volatile atomic<_ITp*>* __a,
+ 			      ptrdiff_t __d, memory_order __m) noexcept
+     { return __a->fetch_sub(__d, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_sub_explicit(atomic<_ITp*>* __a, ptrdiff_t __d,
+ 			      memory_order __m) noexcept
+     { return __a->fetch_sub(__d, __m); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
+     { return __a->fetch_sub(__d); }
+ 
+   template<typename _ITp>
+-    __always_inline _ITp*
++    __libitm_always_inline _ITp*
+     atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept
+     { return __a->fetch_sub(__d); }
+   // @} group atomics
+
+-- 
+glebfm
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gcc.git/commitdiff/9236fd786d039a7f5e27658f035f81313b5fc826




More information about the pld-cvs-commit mailing list