From: Michael Tremer Date: Wed, 12 Apr 2017 09:44:31 +0000 (+0200) Subject: gcc: Update to version 6.3.0 X-Git-Tag: v2.19-core112~152 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cfd39a32dff5dfb1e81e8f0dadc35945ea297fee;p=people%2Fstevee%2Fipfire-2.x.git gcc: Update to version 6.3.0 Signed-off-by: Michael Tremer --- diff --git a/lfs/gcc b/lfs/gcc index d30b7f927f..927621e853 100644 --- a/lfs/gcc +++ b/lfs/gcc @@ -24,14 +24,14 @@ include Config -VER = 4.9.4 +VER = 6.3.0 GMP_VER = 5.0.5 MPFR_VER = 2.4.2 MPC_VER = 1.0.3 THISAPP = gcc-$(VER) -DL_FILE = $(THISAPP).tar.bz2 +DL_FILE = $(THISAPP).tar.gz DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) @@ -68,6 +68,8 @@ ifeq "$(PASS)" "1" --target=$(CROSSTARGET) \ --prefix=/tools \ --with-sysroot=$(ROOT) \ + --with-local-prefix=/tools \ + --with-native-system-header-dir=/tools/include \ --disable-nls \ --disable-shared \ --disable-decimal-float \ @@ -177,7 +179,7 @@ gmp-$(GMP_VER).tar.bz2 = $(DL_FROM)/gmp-$(GMP_VER).tar.bz2 mpfr-$(MPFR_VER).tar.bz2 = $(DL_FROM)/mpfr-$(MPFR_VER).tar.bz2 mpc-$(MPC_VER).tar.gz = $(DL_FROM)/mpc-$(MPC_VER).tar.gz -$(DL_FILE)_MD5 = 87c24a4090c1577ba817ec6882602491 +$(DL_FILE)_MD5 = 6e5ea04789678f1250c1b30c4d9ec417 gmp-$(GMP_VER).tar.bz2_MD5 = 041487d25e9c230b0c42b106361055fe mpfr-$(MPFR_VER).tar.bz2_MD5 = 89e59fe665e2b3ad44a6789f40b059a0 mpc-$(MPC_VER).tar.gz_MD5 = d6a1d5f8ddea3abd2cc3e98f58352d26 @@ -212,14 +214,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) @mkdir $(DIR_SRC)/gcc-build - # Apply patches. - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-i386-libgomp.patch - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-libtool-no-rpath.patch - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-no-add-needed.patch - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-pr38757.patch - cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc49-pr64336.patch - cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/gcc/gcc-fix-inlining-issues.patch - ifneq "$(ROOT)" "" # Build gmp and mpfr internally in toolchain. cd $(DIR_APP) && tar xfa $(DIR_DL)/gmp-$(GMP_VER).tar.bz2 @@ -230,12 +224,8 @@ ifneq "$(ROOT)" "" cd $(DIR_APP) && mv -v mpc-$(MPC_VER) mpc ifeq "$(PASS)" "1" - # GCC does not detect stack protection correctly, which causes problems - # for the build of libresolv_pic.a. - cd $(DIR_APP) && sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure - for file in $$(find $(DIR_APP)/gcc/config -name linux64.h -o -name linux.h \ - -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h); do \ + -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h -o -name aarch64-linux.h); do \ echo "Processing $${file}..."; \ sed -i $${file} \ -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \ @@ -251,7 +241,7 @@ ifeq "$(PASS)" "2" cd $(DIR_APP) && cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \ `dirname $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name)`/include-fixed/limits.h for file in $$(find $(DIR_APP)/gcc/config -name linux64.h -o -name linux.h \ - -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h); do \ + -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h -o -name aarch64-linux.h); do \ echo "Processing $${file}..."; \ sed -i $${file} \ -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \ @@ -277,6 +267,9 @@ ifeq "$(PASS)" "L" $(EXTRA_CONFIG) cd $(DIR_SRC)/gcc-build && make $(EXTRA_MAKE) cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install + + # Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70936 + sed -e "s/^#include_next/#include/" -i /tools/$(CROSSTARGET)/include/c++/$(VER)/cstdlib else # The actual build. cd $(DIR_SRC)/gcc-build && \ diff --git a/src/patches/gcc-4.4.3-startfiles_fix-1.patch b/src/patches/gcc-4.4.3-startfiles_fix-1.patch deleted file mode 100644 index a2eac9e462..0000000000 --- a/src/patches/gcc-4.4.3-startfiles_fix-1.patch +++ /dev/null @@ -1,33 +0,0 @@ -Submitted By: Jeremy Huntwork (jhuntwork AT linuxfromscratch DOT org) -Date: 2008-12-05 -Initial Package Version: 4.3.2 -Upstream Status: See below. -Origin: DIY Linux, See below. -Description: Original patch follows: - -# DIY Linux Patch -Date: 2008-09-09 -Author: Refer Origin. -Origin: Partial revert of http://gcc.gnu.org/ml/gcc-cvs/2006-11/msg00416.html -Maker: Greg Schafer -Upstream Status: Not applicable. Tweak only for Temptools phase GCC-Pass2. -Description: Partially revert GCC driver to pre-GCC-4.3 state to allow startfiles to be - found in $prefix when GCC is configured for a non-standard prefix eg: /temptools. Full - background info in thread starting here: http://gcc.gnu.org/ml/gcc/2008-03/msg00095.html - and GCC bugzilla here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35532 - -diff -Naur gcc-4.3.0-RC-20080222.orig/gcc/gcc.c gcc-4.3.0-RC-20080222/gcc/gcc.c ---- gcc-4.3.0-RC-20080222.orig/gcc/gcc.c 2008-01-24 18:57:12.000000000 +0000 -+++ gcc-4.3.0-RC-20080222/gcc/gcc.c 2008-03-02 06:07:36.000000000 +0000 -@@ -6370,6 +6370,11 @@ - machine_suffix, - standard_startfile_prefix, NULL), - NULL, PREFIX_PRIORITY_LAST, 0, 1); -+ add_prefix (&startfile_prefixes, -+ concat (standard_exec_prefix, -+ machine_suffix, -+ standard_startfile_prefix, NULL), -+ NULL, PREFIX_PRIORITY_LAST, 0, 1); - } - - /* Sysrooted prefixes are relocated because target_system_root is diff --git a/src/patches/gcc-4.4.7-texinfo-5.patch b/src/patches/gcc-4.4.7-texinfo-5.patch deleted file mode 100644 index 7b2e945945..0000000000 --- a/src/patches/gcc-4.4.7-texinfo-5.patch +++ /dev/null @@ -1,89 +0,0 @@ -diff -Naur gcc-4.4.7.org/gcc/doc/cppopts.texi gcc-4.4.7/gcc/doc/cppopts.texi ---- gcc-4.4.7.org/gcc/doc/cppopts.texi 2008-06-15 11:42:13.000000000 +0200 -+++ gcc-4.4.7/gcc/doc/cppopts.texi 2013-09-08 16:50:14.353507748 +0200 -@@ -758,7 +758,7 @@ - Enable special code to work around file systems which only permit very - short file names, such as MS-DOS@. - --@itemx --help -+@item --help - @itemx --target-help - @opindex help - @opindex target-help -diff -Naur gcc-4.4.7.org/gcc/doc/c-tree.texi gcc-4.4.7/gcc/doc/c-tree.texi ---- gcc-4.4.7.org/gcc/doc/c-tree.texi 2009-02-20 16:20:38.000000000 +0100 -+++ gcc-4.4.7/gcc/doc/c-tree.texi 2013-09-08 17:53:21.055167463 +0200 -@@ -2338,13 +2338,13 @@ - not matter. The type of the operands and that of the result are - always of @code{BOOLEAN_TYPE} or @code{INTEGER_TYPE}. - --@itemx POINTER_PLUS_EXPR -+@item POINTER_PLUS_EXPR - This node represents pointer arithmetic. The first operand is always - a pointer/reference type. The second operand is always an unsigned - integer type compatible with sizetype. This is the only binary - arithmetic operand that can operate on pointer types. - --@itemx PLUS_EXPR -+@item PLUS_EXPR - @itemx MINUS_EXPR - @itemx MULT_EXPR - These nodes represent various binary arithmetic operations. -diff -Naur gcc-4.4.7.org/gcc/doc/invoke.texi gcc-4.4.7/gcc/doc/invoke.texi ---- gcc-4.4.7.org/gcc/doc/invoke.texi 2011-03-23 23:02:12.000000000 +0100 -+++ gcc-4.4.7/gcc/doc/invoke.texi 2013-09-08 17:10:49.503066254 +0200 -@@ -4645,11 +4645,11 @@ - @option{-fdump-rtl-ce3} enable dumping after the three - if conversion passes. - --@itemx -fdump-rtl-cprop_hardreg -+@item -fdump-rtl-cprop_hardreg - @opindex fdump-rtl-cprop_hardreg - Dump after hard register copy propagation. - --@itemx -fdump-rtl-csa -+@item -fdump-rtl-csa - @opindex fdump-rtl-csa - Dump after combining stack adjustments. - -@@ -4660,11 +4660,11 @@ - @option{-fdump-rtl-cse1} and @option{-fdump-rtl-cse2} enable dumping after - the two common sub-expression elimination passes. - --@itemx -fdump-rtl-dce -+@item -fdump-rtl-dce - @opindex fdump-rtl-dce - Dump after the standalone dead code elimination passes. - --@itemx -fdump-rtl-dbr -+@item -fdump-rtl-dbr - @opindex fdump-rtl-dbr - Dump after delayed branch scheduling. - -@@ -4709,7 +4709,7 @@ - @opindex fdump-rtl-initvals - Dump after the computation of the initial value sets. - --@itemx -fdump-rtl-into_cfglayout -+@item -fdump-rtl-into_cfglayout - @opindex fdump-rtl-into_cfglayout - Dump after converting to cfglayout mode. - -@@ -4739,7 +4739,7 @@ - @opindex fdump-rtl-rnreg - Dump after register renumbering. - --@itemx -fdump-rtl-outof_cfglayout -+@item -fdump-rtl-outof_cfglayout - @opindex fdump-rtl-outof_cfglayout - Dump after converting from cfglayout mode. - -@@ -4751,7 +4751,7 @@ - @opindex fdump-rtl-postreload - Dump after post-reload optimizations. - --@itemx -fdump-rtl-pro_and_epilogue -+@item -fdump-rtl-pro_and_epilogue - @opindex fdump-rtl-pro_and_epilogue - Dump after generating the function pro and epilogues. - diff --git a/src/patches/gcc/gcc-fix-inlining-issues.patch b/src/patches/gcc/gcc-fix-inlining-issues.patch deleted file mode 100644 index 3c638e21cc..0000000000 --- a/src/patches/gcc/gcc-fix-inlining-issues.patch +++ /dev/null @@ -1,1064 +0,0 @@ -From: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61164 - ---- trunk/libitm/local_atomic 2015/08/20 17:43:55 227039 -+++ trunk/libitm/local_atomic 2015/08/20 17:55:24 227040 -@@ -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 +73,7 @@ - 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 +83,13 @@ - 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 +279,19 @@ - // 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 +301,7 @@ - __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 +454,7 @@ - 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 +464,7 @@ - __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 +475,7 @@ - __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 +484,7 @@ - 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 +493,21 @@ - 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 +518,7 @@ - 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 +530,7 @@ - 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 +538,7 @@ - __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 +546,7 @@ - __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 +557,7 @@ - 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 +569,7 @@ - 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 +577,7 @@ - __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 +585,52 @@ - __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 +732,7 @@ - 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 +743,7 @@ - __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 +754,7 @@ - __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 +763,7 @@ - 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 +772,21 @@ - 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 +798,7 @@ - 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 +810,22 @@ - 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 +869,67 @@ - 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 +979,11 @@ - 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 +991,7 @@ - return tmp; - } - -- __always_inline _Tp -+ __libitm_always_inline _Tp - load(memory_order _m = memory_order_seq_cst) const volatile noexcept - { - _Tp tmp; -@@ -1000,7 +999,7 @@ - return tmp; - } - -- __always_inline _Tp -+ __libitm_always_inline _Tp - exchange(_Tp __i, memory_order _m = memory_order_seq_cst) noexcept - { - _Tp tmp; -@@ -1008,7 +1007,7 @@ - return tmp; - } - -- __always_inline _Tp -+ __libitm_always_inline _Tp - exchange(_Tp __i, - memory_order _m = memory_order_seq_cst) volatile noexcept - { -@@ -1017,50 +1016,50 @@ - 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 +1152,46 @@ - 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 +1199,7 @@ - __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 +1207,18 @@ - __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 +1226,7 @@ - __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 +1234,22 @@ - __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 +1543,98 @@ - - - // 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 -- __always_inline bool -+ __libitm_always_inline bool - atomic_is_lock_free(const atomic<_ITp>* __a) noexcept - { return __a->is_lock_free(); } - - template -- __always_inline bool -+ __libitm_always_inline bool - atomic_is_lock_free(const volatile atomic<_ITp>* __a) noexcept - { return __a->is_lock_free(); } - - template -- __always_inline void -+ __libitm_always_inline void - atomic_init(atomic<_ITp>* __a, _ITp __i) noexcept; - - template -- __always_inline void -+ __libitm_always_inline void - atomic_init(volatile atomic<_ITp>* __a, _ITp __i) noexcept; - - template -- __always_inline void -+ __libitm_always_inline void - atomic_store_explicit(atomic<_ITp>* __a, _ITp __i, - memory_order __m) noexcept - { __a->store(__i, __m); } - - template -- __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 -- __always_inline _ITp -+ __libitm_always_inline _ITp - atomic_load_explicit(const atomic<_ITp>* __a, memory_order __m) noexcept - { return __a->load(__m); } - - template -- __always_inline _ITp -+ __libitm_always_inline _ITp - atomic_load_explicit(const volatile atomic<_ITp>* __a, - memory_order __m) noexcept - { return __a->load(__m); } - - template -- __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 -- __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 -- __always_inline bool -+ __libitm_always_inline bool - atomic_compare_exchange_weak_explicit(atomic<_ITp>* __a, - _ITp* __i1, _ITp __i2, - memory_order __m1, -@@ -1643,7 +1642,7 @@ - { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } - - template -- __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 +1650,7 @@ - { return __a->compare_exchange_weak(*__i1, __i2, __m1, __m2); } - - template -- __always_inline bool -+ __libitm_always_inline bool - atomic_compare_exchange_strong_explicit(atomic<_ITp>* __a, - _ITp* __i1, _ITp __i2, - memory_order __m1, -@@ -1659,7 +1658,7 @@ - { return __a->compare_exchange_strong(*__i1, __i2, __m1, __m2); } - - template -- __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 +1667,37 @@ - - - template -- __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 -- __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 -- __always_inline _ITp -+ __libitm_always_inline _ITp - atomic_load(const atomic<_ITp>* __a) noexcept - { return atomic_load_explicit(__a, memory_order_seq_cst); } - - template -- __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 -- __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 -- __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 -- __always_inline bool -+ __libitm_always_inline bool - atomic_compare_exchange_weak(atomic<_ITp>* __a, - _ITp* __i1, _ITp __i2) noexcept - { -@@ -1708,7 +1707,7 @@ - } - - template -- __always_inline bool -+ __libitm_always_inline bool - atomic_compare_exchange_weak(volatile atomic<_ITp>* __a, - _ITp* __i1, _ITp __i2) noexcept - { -@@ -1718,7 +1717,7 @@ - } - - template -- __always_inline bool -+ __libitm_always_inline bool - atomic_compare_exchange_strong(atomic<_ITp>* __a, - _ITp* __i1, _ITp __i2) noexcept - { -@@ -1728,7 +1727,7 @@ - } - - template -- __always_inline bool -+ __libitm_always_inline bool - atomic_compare_exchange_strong(volatile atomic<_ITp>* __a, - _ITp* __i1, _ITp __i2) noexcept - { -@@ -1742,158 +1741,158 @@ - // intergral types as specified in the standard, excluding address - // types. - template -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __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 -- __always_inline _ITp* -+ __libitm_always_inline _ITp* - atomic_fetch_add(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept - { return __a->fetch_add(__d); } - - template -- __always_inline _ITp* -+ __libitm_always_inline _ITp* - atomic_fetch_add(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept - { return __a->fetch_add(__d); } - - template -- __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 -- __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 -- __always_inline _ITp* -+ __libitm_always_inline _ITp* - atomic_fetch_sub(volatile atomic<_ITp*>* __a, ptrdiff_t __d) noexcept - { return __a->fetch_sub(__d); } - - template -- __always_inline _ITp* -+ __libitm_always_inline _ITp* - atomic_fetch_sub(atomic<_ITp*>* __a, ptrdiff_t __d) noexcept - { return __a->fetch_sub(__d); } - // @} group atomics diff --git a/src/patches/gcc/gcc49-i386-libgomp.patch b/src/patches/gcc/gcc49-i386-libgomp.patch deleted file mode 100644 index 520561e5a8..0000000000 --- a/src/patches/gcc/gcc49-i386-libgomp.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- libgomp/configure.tgt.jj 2008-01-10 20:53:48.000000000 +0100 -+++ libgomp/configure.tgt 2008-03-27 12:44:51.000000000 +0100 -@@ -67,7 +67,7 @@ if test $enable_linux_futex = yes; then - ;; - *) - if test -z "$with_arch"; then -- XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}" -+ XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic" - fi - esac - ;; diff --git a/src/patches/gcc/gcc49-libtool-no-rpath.patch b/src/patches/gcc/gcc49-libtool-no-rpath.patch deleted file mode 100644 index 466c661e0c..0000000000 --- a/src/patches/gcc/gcc49-libtool-no-rpath.patch +++ /dev/null @@ -1,27 +0,0 @@ -libtool sucks. ---- ltmain.sh.jj 2007-12-07 14:53:21.000000000 +0100 -+++ ltmain.sh 2008-09-05 21:51:48.000000000 +0200 -@@ -5394,6 +5394,7 @@ EOF - rpath="$finalize_rpath" - test "$mode" != relink && rpath="$compile_rpath$rpath" - for libdir in $rpath; do -+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then -@@ -6071,6 +6072,7 @@ EOF - rpath= - hardcode_libdirs= - for libdir in $compile_rpath $finalize_rpath; do -+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then -@@ -6120,6 +6122,7 @@ EOF - rpath= - hardcode_libdirs= - for libdir in $finalize_rpath; do -+ case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then diff --git a/src/patches/gcc/gcc49-no-add-needed.patch b/src/patches/gcc/gcc49-no-add-needed.patch deleted file mode 100644 index b6ca777eb1..0000000000 --- a/src/patches/gcc/gcc49-no-add-needed.patch +++ /dev/null @@ -1,50 +0,0 @@ -2010-02-08 Roland McGrath - - * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the - linker. - * config/gnu-user.h (LINK_EH_SPEC): Likewise. - * config/alpha/elf.h (LINK_EH_SPEC): Likewise. - * config/ia64/linux.h (LINK_EH_SPEC): Likewise. - ---- gcc/config/alpha/elf.h.jj 2011-01-03 12:52:31.118056764 +0100 -+++ gcc/config/alpha/elf.h 2011-01-04 18:14:10.931874160 +0100 -@@ -165,5 +165,5 @@ extern int alpha_this_gpdisp_sequence_nu - I imagine that other systems will catch up. In the meantime, it - doesn't harm to make sure that the data exists to be used later. */ - #if defined(HAVE_LD_EH_FRAME_HDR) --#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} " - #endif ---- gcc/config/ia64/linux.h.jj 2011-01-03 13:02:11.462994522 +0100 -+++ gcc/config/ia64/linux.h 2011-01-04 18:14:10.931874160 +0100 -@@ -77,7 +77,7 @@ do { \ - Signalize that because we have fde-glibc, we don't need all C shared libs - linked against -lgcc_s. */ - #undef LINK_EH_SPEC --#define LINK_EH_SPEC "" -+#define LINK_EH_SPEC "--no-add-needed " - - /* Put all *tf routines in libgcc. */ - #undef LIBGCC2_HAS_TF_MODE ---- gcc/config/gnu-user.h.jj 2011-01-03 12:53:03.739057299 +0100 -+++ gcc/config/gnu-user.h 2011-01-04 18:14:10.932814884 +0100 -@@ -82,7 +82,7 @@ see the files COPYING3 and COPYING.RUNTI - #define LIB_SPEC GNU_USER_TARGET_LIB_SPEC - - #if defined(HAVE_LD_EH_FRAME_HDR) --#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -+#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} " - #endif - - #undef LINK_GCC_C_SEQUENCE_SPEC ---- gcc/config/rs6000/sysv4.h.jj 2011-01-03 13:02:18.255994215 +0100 -+++ gcc/config/rs6000/sysv4.h 2011-01-04 18:14:10.933888871 +0100 -@@ -820,7 +820,7 @@ extern int fixuplabelno; - -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" - - #if defined(HAVE_LD_EH_FRAME_HDR) --# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -+# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} " - #endif - - #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \ diff --git a/src/patches/gcc/gcc49-pr38757.patch b/src/patches/gcc/gcc49-pr38757.patch deleted file mode 100644 index 42065844bc..0000000000 --- a/src/patches/gcc/gcc49-pr38757.patch +++ /dev/null @@ -1,106 +0,0 @@ -2009-03-18 Jakub Jelinek - - PR debug/38757 - * langhooks.h (struct lang_hooks): Add source_language langhook. - * langhooks-def.h (LANG_HOOKS_SOURCE_LANGUAGE): Define to NULL. - (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_SOURCE_LANGUAGE. - * dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype - also for DW_LANG_{C,C99,ObjC}. - (gen_compile_unit_die): Use lang_hooks.source_language () to - determine if DW_LANG_C99 or DW_LANG_C89 should be returned. -c/ - * c-lang.c (c_source_language): New function. - (LANG_HOOKS_SOURCE_LANGUAGE): Define. - ---- gcc/langhooks.h.jj 2011-01-03 12:53:05.125745450 +0100 -+++ gcc/langhooks.h 2011-01-04 17:59:43.166744926 +0100 -@@ -467,6 +467,10 @@ struct lang_hooks - gimplification. */ - bool deep_unsharing; - -+ /* Return year of the source language standard version if the FE supports -+ multiple versions of the standard. */ -+ int (*source_language) (void); -+ - /* Whenever you add entries here, make sure you adjust langhooks-def.h - and langhooks.c accordingly. */ - }; ---- gcc/langhooks-def.h.jj 2011-01-03 12:53:05.000000000 +0100 -+++ gcc/langhooks-def.h 2011-01-04 18:00:44.858851030 +0100 -@@ -118,6 +118,7 @@ extern void lhd_omp_firstprivatize_type_ - #define LANG_HOOKS_BLOCK_MAY_FALLTHRU hook_bool_const_tree_true - #define LANG_HOOKS_EH_USE_CXA_END_CLEANUP false - #define LANG_HOOKS_DEEP_UNSHARING false -+#define LANG_HOOKS_SOURCE_LANGUAGE NULL - - /* Attribute hooks. */ - #define LANG_HOOKS_ATTRIBUTE_TABLE NULL -@@ -303,7 +304,8 @@ extern void lhd_end_section (void); - LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS, \ - LANG_HOOKS_BLOCK_MAY_FALLTHRU, \ - LANG_HOOKS_EH_USE_CXA_END_CLEANUP, \ -- LANG_HOOKS_DEEP_UNSHARING \ -+ LANG_HOOKS_DEEP_UNSHARING, \ -+ LANG_HOOKS_SOURCE_LANGUAGE \ - } - - #endif /* GCC_LANG_HOOKS_DEF_H */ ---- gcc/c/c-lang.c.jj 2011-01-03 12:53:05.376056936 +0100 -+++ gcc/c/c-lang.c 2011-01-04 17:59:43.167743798 +0100 -@@ -36,6 +36,12 @@ along with GCC; see the file COPYING3. - - enum c_language_kind c_language = clk_c; - -+static int -+c_source_language (void) -+{ -+ return flag_isoc99 ? 1999 : 1989; -+} -+ - /* Lang hooks common to C and ObjC are declared in c-objc-common.h; - consequently, there should be very few hooks below. */ - -@@ -45,6 +51,8 @@ enum c_language_kind c_language = clk_c; - #define LANG_HOOKS_INIT c_objc_common_init - #undef LANG_HOOKS_INIT_TS - #define LANG_HOOKS_INIT_TS c_common_init_ts -+#undef LANG_HOOKS_SOURCE_LANGUAGE -+#define LANG_HOOKS_SOURCE_LANGUAGE c_source_language - - /* Each front end provides its own lang hook initializer. */ - struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; ---- gcc/dwarf2out.c.jj 2011-01-03 12:53:05.102056475 +0100 -+++ gcc/dwarf2out.c 2011-01-04 18:03:14.534151763 +0100 -@@ -16109,9 +16109,18 @@ add_bit_size_attribute (dw_die_ref die, - static inline void - add_prototyped_attribute (dw_die_ref die, tree func_type) - { -- if (get_AT_unsigned (comp_unit_die (), DW_AT_language) == DW_LANG_C89 -- && prototype_p (func_type)) -- add_AT_flag (die, DW_AT_prototyped, 1); -+ switch (get_AT_unsigned (comp_unit_die (), DW_AT_language)) -+ { -+ case DW_LANG_C: -+ case DW_LANG_C89: -+ case DW_LANG_C99: -+ case DW_LANG_ObjC: -+ if (prototype_p (func_type)) -+ add_AT_flag (die, DW_AT_prototyped, 1); -+ break; -+ default: -+ break; -+ } - } - - /* Add an 'abstract_origin' attribute below a given DIE. The DIE is found -@@ -18915,6 +18924,10 @@ gen_compile_unit_die (const char *filena - if (strcmp (language_string, "GNU Go") == 0) - language = DW_LANG_Go; - } -+ else if (strcmp (language_string, "GNU C") == 0 -+ && lang_hooks.source_language -+ && lang_hooks.source_language () >= 1999) -+ language = DW_LANG_C99; - } - /* Use a degraded Fortran setting in strict DWARF2 so is_fortran works. */ - else if (strcmp (language_string, "GNU Fortran") == 0) diff --git a/src/patches/gcc/gcc49-pr64336.patch b/src/patches/gcc/gcc49-pr64336.patch deleted file mode 100644 index 86fddd5c06..0000000000 --- a/src/patches/gcc/gcc49-pr64336.patch +++ /dev/null @@ -1,17 +0,0 @@ -2014-12-17 Jakub Jelinek - - PR sanitizer/64336 - * tsan.c (instrument_expr): Ignore TREE_READONLY bit - on MEM_REFs. - ---- gcc/tsan.c.jj 2014-12-17 10:53:30.000000000 +0100 -+++ gcc/tsan.c 2014-12-17 11:55:12.793058159 +0100 -@@ -138,7 +138,7 @@ instrument_expr (gimple_stmt_iterator gs - return false; - } - -- if (TREE_READONLY (base) -+ if ((TREE_READONLY (base) && TREE_CODE (base) != MEM_REF) - || (TREE_CODE (base) == VAR_DECL - && DECL_HARD_REGISTER (base))) - return false;