diff options
Diffstat (limited to 'meta-phosphor/common/recipes-devtools/gcc/gcc_6.3/0001-Support-exception-propagation-without-lock-free-atom.patch')
-rw-r--r-- | meta-phosphor/common/recipes-devtools/gcc/gcc_6.3/0001-Support-exception-propagation-without-lock-free-atom.patch | 2010 |
1 files changed, 2010 insertions, 0 deletions
diff --git a/meta-phosphor/common/recipes-devtools/gcc/gcc_6.3/0001-Support-exception-propagation-without-lock-free-atom.patch b/meta-phosphor/common/recipes-devtools/gcc/gcc_6.3/0001-Support-exception-propagation-without-lock-free-atom.patch new file mode 100644 index 0000000000..5ace0348ed --- /dev/null +++ b/meta-phosphor/common/recipes-devtools/gcc/gcc_6.3/0001-Support-exception-propagation-without-lock-free-atom.patch @@ -0,0 +1,2010 @@ +From cf17b2b404eed4778664b69d20e1943b619bfd38 Mon Sep 17 00:00:00 2001 +From: redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> +Date: Wed, 4 Jan 2017 10:54:59 +0000 +Subject: [PATCH 1/1] Support exception propagation without lock-free atomic + int + +2017-01-04 Pauli Nieminen <suokkos@gmail.com> + Jonathan Wakely <jwakely@redhat.com> + + PR libstdc++/64735 + * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define. + * config.h.in: Regenerate. + * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46] + (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make + exports for exception_ptr, nested_exception, and future conditional. + [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add + exports for exception_ptr, nested_exception, and future conditional. + * configure: Regenerate. + * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER. + * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE + * libsupc++/eh_atomics.h: New file for internal use only. + (__eh_atomic_inc, __eh_atomic_dec): New. + * libsupc++/eh_ptr.cc (exception_ptr::_M_addref) + (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup) + (rethrow_exception): Use eh_atomics.h reference counting helpers. + * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise. + * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise. + * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE. + * libsupc++/exception_ptr.h: Likewise. + * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro. + * libsupc++/nested_exception.cc: Remove check for + ATOMIC_INT_LOCK_FREE. + * libsupc++/nested_exception.h: Likewise. + * src/c++11/future.cc: Likewise. + * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks. + * testsuite/18_support/nested_exception/*: Likewise. + * testsuite/30_threads/async/*: Likewise. + * testsuite/30_threads/future/*: Likewise. + * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise. + * testsuite/30_threads/packaged_task/*: Likewise. + * testsuite/30_threads/promise/*: Likewise. + * testsuite/30_threads/shared_future/*: Likewise. + +git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@244051 138bc75d-0d04-0410-961f-82ee72b054a4 + +This is a backport of the upstream commit. + +Signed-off-by: James Feist <james.feist@linux.intel.com> +--- + libstdc++-v3/ChangeLog | 38 +++++++++- + libstdc++-v3/acinclude.m4 | 37 ++++++++++ + libstdc++-v3/config.h.in | 3 + + libstdc++-v3/config/abi/pre/gnu.ver | 10 +++ + libstdc++-v3/configure | 49 +++++++++++++ + libstdc++-v3/configure.ac | 3 + + libstdc++-v3/include/std/future | 4 +- + libstdc++-v3/libsupc++/eh_atomics.h | 84 ++++++++++++++++++++++ + libstdc++-v3/libsupc++/eh_ptr.cc | 14 ++-- + libstdc++-v3/libsupc++/eh_throw.cc | 7 +- + libstdc++-v3/libsupc++/eh_tm.cc | 5 +- + libstdc++-v3/libsupc++/exception | 3 +- + libstdc++-v3/libsupc++/exception_ptr.h | 4 -- + libstdc++-v3/libsupc++/guard.cc | 1 + + libstdc++-v3/libsupc++/nested_exception.cc | 2 - + libstdc++-v3/libsupc++/nested_exception.h | 4 -- + libstdc++-v3/src/c++11/future.cc | 3 +- + .../testsuite/18_support/exception_ptr/40296.cc | 1 - + .../18_support/exception_ptr/60612-terminate.cc | 1 - + .../18_support/exception_ptr/60612-unexpected.cc | 1 - + .../testsuite/18_support/exception_ptr/62258.cc | 1 - + .../testsuite/18_support/exception_ptr/64241.cc | 1 - + .../18_support/exception_ptr/current_exception.cc | 1 - + .../testsuite/18_support/exception_ptr/lifespan.cc | 1 - + .../18_support/exception_ptr/make_exception_ptr.cc | 1 - + .../testsuite/18_support/exception_ptr/move.cc | 1 - + .../18_support/exception_ptr/requirements.cc | 1 - + .../18_support/exception_ptr/requirements_neg.cc | 1 - + .../18_support/exception_ptr/rethrow_exception.cc | 1 - + .../testsuite/18_support/nested_exception/51438.cc | 1 - + .../testsuite/18_support/nested_exception/62154.cc | 1 - + .../testsuite/18_support/nested_exception/68139.cc | 1 - + .../testsuite/18_support/nested_exception/cons.cc | 1 - + .../18_support/nested_exception/nested_ptr.cc | 1 - + .../nested_exception/rethrow_if_nested.cc | 1 - + .../18_support/nested_exception/rethrow_nested.cc | 1 - + .../nested_exception/throw_with_nested.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/42819.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/49668.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/54297.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/any.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/async.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/except.cc | 1 - + .../testsuite/30_threads/async/forced_unwind.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/launch.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/lwg2021.cc | 1 - + libstdc++-v3/testsuite/30_threads/async/sync.cc | 1 - + .../testsuite/30_threads/future/cons/assign_neg.cc | 1 - + .../testsuite/30_threads/future/cons/constexpr.cc | 1 - + .../testsuite/30_threads/future/cons/copy_neg.cc | 1 - + .../testsuite/30_threads/future/cons/default.cc | 1 - + .../testsuite/30_threads/future/cons/move.cc | 1 - + .../30_threads/future/cons/move_assign.cc | 1 - + .../testsuite/30_threads/future/members/45133.cc | 1 - + .../testsuite/30_threads/future/members/get.cc | 1 - + .../testsuite/30_threads/future/members/get2.cc | 1 - + .../testsuite/30_threads/future/members/share.cc | 1 - + .../testsuite/30_threads/future/members/valid.cc | 1 - + .../testsuite/30_threads/future/members/wait.cc | 1 - + .../30_threads/future/members/wait_for.cc | 1 - + .../30_threads/future/members/wait_until.cc | 1 - + .../future/requirements/explicit_instantiation.cc | 1 - + .../30_threads/headers/future/types_std_c++0x.cc | 1 - + .../testsuite/30_threads/packaged_task/49668.cc | 1 - + .../testsuite/30_threads/packaged_task/60564.cc | 1 - + .../testsuite/30_threads/packaged_task/cons/1.cc | 1 - + .../testsuite/30_threads/packaged_task/cons/2.cc | 1 - + .../testsuite/30_threads/packaged_task/cons/3.cc | 1 - + .../30_threads/packaged_task/cons/56492.cc | 1 - + .../30_threads/packaged_task/cons/alloc.cc | 1 - + .../30_threads/packaged_task/cons/alloc2.cc | 1 - + .../30_threads/packaged_task/cons/alloc_min.cc | 1 - + .../30_threads/packaged_task/cons/assign_neg.cc | 1 - + .../30_threads/packaged_task/cons/copy_neg.cc | 1 - + .../30_threads/packaged_task/cons/move.cc | 1 - + .../30_threads/packaged_task/cons/move_assign.cc | 1 - + .../30_threads/packaged_task/forced_unwind.cc | 1 - + .../packaged_task/members/at_thread_exit.cc | 1 - + .../30_threads/packaged_task/members/get_future.cc | 1 - + .../packaged_task/members/get_future2.cc | 1 - + .../30_threads/packaged_task/members/invoke.cc | 1 - + .../30_threads/packaged_task/members/invoke2.cc | 1 - + .../30_threads/packaged_task/members/invoke3.cc | 1 - + .../30_threads/packaged_task/members/invoke4.cc | 1 - + .../30_threads/packaged_task/members/invoke5.cc | 1 - + .../30_threads/packaged_task/members/reset.cc | 1 - + .../30_threads/packaged_task/members/reset2.cc | 1 - + .../30_threads/packaged_task/members/swap.cc | 1 - + .../30_threads/packaged_task/members/valid.cc | 1 - + .../requirements/explicit_instantiation.cc | 1 - + .../30_threads/packaged_task/uses_allocator.cc | 1 - + libstdc++-v3/testsuite/30_threads/promise/60966.cc | 1 - + libstdc++-v3/testsuite/30_threads/promise/69106.cc | 1 - + .../testsuite/30_threads/promise/cons/1.cc | 1 - + .../testsuite/30_threads/promise/cons/alloc.cc | 1 - + .../testsuite/30_threads/promise/cons/alloc2.cc | 1 - + .../testsuite/30_threads/promise/cons/alloc_min.cc | 1 - + .../30_threads/promise/cons/assign_neg.cc | 1 - + .../testsuite/30_threads/promise/cons/copy_neg.cc | 1 - + .../testsuite/30_threads/promise/cons/move.cc | 1 - + .../30_threads/promise/cons/move_assign.cc | 1 - + .../30_threads/promise/members/at_thread_exit.cc | 1 - + .../30_threads/promise/members/get_future.cc | 1 - + .../30_threads/promise/members/get_future2.cc | 1 - + .../30_threads/promise/members/set_exception.cc | 1 - + .../30_threads/promise/members/set_exception2.cc | 1 - + .../30_threads/promise/members/set_value.cc | 1 - + .../30_threads/promise/members/set_value2.cc | 1 - + .../30_threads/promise/members/set_value3.cc | 1 - + .../testsuite/30_threads/promise/members/swap.cc | 1 - + .../promise/requirements/explicit_instantiation.cc | 1 - + .../testsuite/30_threads/promise/uses_allocator.cc | 1 - + .../30_threads/shared_future/cons/assign.cc | 1 - + .../30_threads/shared_future/cons/constexpr.cc | 1 - + .../30_threads/shared_future/cons/copy.cc | 1 - + .../30_threads/shared_future/cons/default.cc | 1 - + .../30_threads/shared_future/cons/move.cc | 1 - + .../30_threads/shared_future/cons/move_assign.cc | 1 - + .../30_threads/shared_future/members/45133.cc | 1 - + .../30_threads/shared_future/members/get.cc | 1 - + .../30_threads/shared_future/members/get2.cc | 1 - + .../30_threads/shared_future/members/valid.cc | 1 - + .../30_threads/shared_future/members/wait.cc | 1 - + .../30_threads/shared_future/members/wait_for.cc | 1 - + .../30_threads/shared_future/members/wait_until.cc | 1 - + .../requirements/explicit_instantiation.cc | 1 - + 126 files changed, 236 insertions(+), 144 deletions(-) + create mode 100644 libstdc++-v3/libsupc++/eh_atomics.h + + +Index: gcc-6.3.0/libstdc++-v3/acinclude.m4 +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/acinclude.m4 ++++ gcc-6.3.0/libstdc++-v3/acinclude.m4 +@@ -4517,6 +4517,43 @@ AC_DEFUN([GLIBCXX_CHECK_SIZE_T_MANGLING] + [Define to the letter to which size_t is mangled.]) + ]) + ++dnl ++dnl Determine whether std::exception_ptr symbols should be exported with ++dnl the symbol versions from GCC 4.6.0 or GCC 7.1.0, depending on which ++dnl release first added support for std::exception_ptr. Originally it was ++dnl only supported for targets with always-lock-free atomics for int, but ++dnl since GCC 7.1 it is supported for all targets. ++dnl ++AC_DEFUN([GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER], [ ++ if test $enable_symvers != no; then ++ AC_MSG_CHECKING([for first version to support std::exception_ptr]) ++ case ${target} in ++ aarch64-*-* | alpha-*-* | hppa*-*-* | i?86-*-* | x86_64-*-* | \ ++ m68k-*-* | powerpc*-*-* | s390*-*-* | *-*-solaris* ) ++ ac_exception_ptr_since_gcc46=yes ++ ;; ++ *) ++ # If the value of this macro changes then we will need to hardcode ++ # yes/no here for additional targets based on the original value. ++ AC_TRY_COMPILE([], [ ++ #if __GCC_ATOMIC_INT_LOCK_FREE <= 1 ++ # error atomic int not always lock free ++ #endif ++ ], ++ [ac_exception_ptr_since_gcc46=yes], ++ [ac_exception_ptr_since_gcc46=no]) ++ ;; ++ esac ++ if test x"$ac_exception_ptr_since_gcc46" = x"yes" ; then ++ AC_DEFINE(HAVE_EXCEPTION_PTR_SINCE_GCC46, 1, ++ [Define to 1 if GCC 4.6 supported std::exception_ptr for the target]) ++ AC_MSG_RESULT([4.6.0]) ++ else ++ AC_MSG_RESULT([7.1.0]) ++ fi ++ fi ++]) ++ + # Macros from the top-level gcc directory. + m4_include([../config/gc++filt.m4]) + m4_include([../config/tls.m4]) +Index: gcc-6.3.0/libstdc++-v3/config.h.in +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/config.h.in ++++ gcc-6.3.0/libstdc++-v3/config.h.in +@@ -120,6 +120,9 @@ + /* Define if EWOULDBLOCK exists. */ + #undef HAVE_EWOULDBLOCK + ++/* Define to 1 if GCC 4.6 supported std::exception_ptr for the target */ ++#undef HAVE_EXCEPTION_PTR_SINCE_GCC46 ++ + /* Define to 1 if you have the <execinfo.h> header file. */ + #undef HAVE_EXECINFO_H + +Index: gcc-6.3.0/libstdc++-v3/config/abi/pre/gnu.ver +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/config/abi/pre/gnu.ver ++++ gcc-6.3.0/libstdc++-v3/config/abi/pre/gnu.ver +@@ -1490,6 +1490,9 @@ GLIBCXX_3.4.15 { + _ZNSt14error_categoryC*; + _ZNSt14error_categoryD*; + ++#ifdef HAVE_EXCEPTION_PTR_SINCE_GCC46 ++ # std::future symbols are only present in this version when ++ # atomic operations on int are always lock-free. + _ZNSt13__future_base12_Result_baseC*; + _ZNSt13__future_base12_Result_baseD*; + _ZTINSt13__future_base12_Result_baseE; +@@ -1498,6 +1501,7 @@ GLIBCXX_3.4.15 { + _ZNSt13__future_base11_State_baseD*; + _ZTINSt13__future_base11_State_baseE; + _ZTVNSt13__future_base11_State_baseE; ++#endif + + } GLIBCXX_3.4.14; + +@@ -1674,8 +1678,10 @@ GLIBCXX_3.4.21 { + + # std::notify_all_at_thread_exit + _ZSt25notify_all_at_thread_exitRSt18condition_variableSt11unique_lockISt5mutexE; ++#ifdef HAVE_EXCEPTION_PTR_SINCE_GCC46 + # std::__future_base::_State_baseV2::_Make_ready::_M_set() + _ZNSt13__future_base13_State_baseV211_Make_ready6_M_setEv; ++#endif + + # ABI-tagged std::basic_string + _ZNSt7__cxx1112basic_string*; +@@ -2040,6 +2046,7 @@ CXXABI_1.3.3 { + _ZTIPDi; + _ZTIPKDi; + ++#ifdef HAVE_EXCEPTION_PTR_SINCE_GCC46 + # exception_ptr + _ZNSt15__exception_ptr13exception_ptrC1Ev; + _ZNSt15__exception_ptr13exception_ptrC2Ev; +@@ -2059,6 +2066,7 @@ CXXABI_1.3.3 { + + _ZSt17current_exceptionv; + _ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE; ++#endif + + } CXXABI_1.3.2; + +@@ -2089,10 +2097,12 @@ CXXABI_1.3.5 { + # FNV hash. + _ZSt15_Fnv_hash_bytesPKv*; + ++#ifdef HAVE_EXCEPTION_PTR_SINCE_GCC46 + # std::nested_exception + _ZNSt16nested_exceptionD*; + _ZTISt16nested_exception; + _ZTVSt16nested_exception; ++#endif + + } CXXABI_1.3.4; + +Index: gcc-6.3.0/libstdc++-v3/configure +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/configure ++++ gcc-6.3.0/libstdc++-v3/configure +@@ -80655,6 +80655,55 @@ _ACEOF + + + ++# Check which release added std::exception_ptr for the target ++ ++ if test $enable_symvers != no; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for first version to support std::exception_ptr" >&5 ++$as_echo_n "checking for first version to support std::exception_ptr... " >&6; } ++ case ${target} in ++ aarch64-*-* | alpha-*-* | hppa*-*-* | i?86-*-* | x86_64-*-* | \ ++ m68k-*-* | powerpc*-*-* | s390*-*-* | *-*-solaris* ) ++ ac_exception_ptr_since_gcc46=yes ++ ;; ++ *) ++ # If the value of this macro changes then we will need to hardcode ++ # yes/no here for additional targets based on the original value. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ #if __GCC_ATOMIC_INT_LOCK_FREE <= 1 ++ # error atomic int not always lock free ++ #endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_exception_ptr_since_gcc46=yes ++else ++ ac_exception_ptr_since_gcc46=no ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ;; ++ esac ++ if test x"$ac_exception_ptr_since_gcc46" = x"yes" ; then ++ ++$as_echo "#define HAVE_EXCEPTION_PTR_SINCE_GCC46 1" >>confdefs.h ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 4.6.0" >&5 ++$as_echo "4.6.0" >&6; } ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: 7.1.0" >&5 ++$as_echo "7.1.0" >&6; } ++ fi ++ fi ++ ++ + # Define documentation rules conditionally. + + # See if makeinfo has been installed and is modern enough +Index: gcc-6.3.0/libstdc++-v3/configure.ac +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/configure.ac ++++ gcc-6.3.0/libstdc++-v3/configure.ac +@@ -411,6 +411,9 @@ GLIBCXX_CHECK_FILESYSTEM_DEPS + # For Transactional Memory TS + GLIBCXX_CHECK_SIZE_T_MANGLING + ++# Check which release added std::exception_ptr for the target ++GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER ++ + # Define documentation rules conditionally. + + # See if makeinfo has been installed and is modern enough +Index: gcc-6.3.0/libstdc++-v3/include/std/future +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/include/std/future ++++ gcc-6.3.0/libstdc++-v3/include/std/future +@@ -182,8 +182,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + future<__async_result_of<_Fn, _Args...>> + async(_Fn&& __fn, _Args&&... __args); + +-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) \ +- && (ATOMIC_INT_LOCK_FREE > 1) ++#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) + + /// Base class and enclosing scope. + struct __future_base +@@ -1745,7 +1744,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + + #endif // _GLIBCXX_ASYNC_ABI_COMPAT + #endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 +- // && ATOMIC_INT_LOCK_FREE + + // @} group futures + _GLIBCXX_END_NAMESPACE_VERSION +Index: gcc-6.3.0/libstdc++-v3/libsupc++/eh_atomics.h +=================================================================== +--- /dev/null ++++ gcc-6.3.0/libstdc++-v3/libsupc++/eh_atomics.h +@@ -0,0 +1,84 @@ ++// Exception Handling support header for -*- C++ -*- ++ ++// Copyright (C) 2016 Free Software Foundation, Inc. ++// ++// This file is part of GCC. ++// ++// GCC is free software; you can redistribute it and/or modify ++// it under the terms of the GNU General Public License as published by ++// the Free Software Foundation; either version 3, or (at your option) ++// any later version. ++// ++// GCC is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++// ++// Under Section 7 of GPL version 3, you are granted additional ++// permissions described in the GCC Runtime Library Exception, version ++// 3.1, as published by the Free Software Foundation. ++ ++// You should have received a copy of the GNU General Public License and ++// a copy of the GCC Runtime Library Exception along with this program; ++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++// <http://www.gnu.org/licenses/>. ++ ++/** @file eh_atomics.h ++ * This is an internal header file, included by library source files. ++ * Do not attempt to use it directly. ++ */ ++ ++#ifndef _EH_ATOMICS_H ++#define _EH_ATOMICS_H 1 ++ ++#include <bits/c++config.h> ++#include <bits/atomic_word.h> ++#include <bits/atomic_lockfree_defines.h> ++#if ATOMIC_INT_LOCK_FREE <= 1 ++# include <ext/atomicity.h> ++#endif ++ ++#pragma GCC visibility push(default) ++extern "C++" { ++namespace __gnu_cxx ++{ ++ void ++ __eh_atomic_inc (_Atomic_word* __count) __attribute__((always_inline)); ++ ++ bool ++ __eh_atomic_dec (_Atomic_word* __count) __attribute__((always_inline)); ++ ++ // Increments the count. ++ inline void ++ __eh_atomic_inc (_Atomic_word* __count) ++ { ++#if ATOMIC_INT_LOCK_FREE > 1 ++ __atomic_add_fetch (__count, 1, __ATOMIC_ACQ_REL); ++#else ++ _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE (__count); ++ __gnu_cxx::__atomic_add_dispatch (__count, 1); ++ _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER (__count); ++#endif ++ } ++ ++ // Decrements the count and returns true if it reached zero. ++ inline bool ++ __eh_atomic_dec (_Atomic_word* __count) ++ { ++#if ATOMIC_INT_LOCK_FREE > 1 ++ return __atomic_sub_fetch (__count, 1, __ATOMIC_ACQ_REL) == 0; ++#else ++ _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE (__count); ++ if (__gnu_cxx::__exchange_and_add_dispatch (__count, -1) == 1) ++ { ++ _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER (__count); ++ return true; ++ } ++ return false; ++#endif ++ } ++} // namespace __gnu_cxx ++} ++#pragma GCC visibility pop ++ ++#endif // _EH_ATOMICS_H +Index: gcc-6.3.0/libstdc++-v3/libsupc++/eh_ptr.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/eh_ptr.cc ++++ gcc-6.3.0/libstdc++-v3/libsupc++/eh_ptr.cc +@@ -23,9 +23,7 @@ + // <http://www.gnu.org/licenses/>. + + #include <bits/c++config.h> +-#include <bits/atomic_lockfree_defines.h> +- +-#if ATOMIC_INT_LOCK_FREE > 1 ++#include "eh_atomics.h" + + #define _GLIBCXX_EH_PTR_COMPAT + +@@ -103,7 +101,7 @@ std::__exception_ptr::exception_ptr::_M_ + { + __cxa_refcounted_exception *eh = + __get_refcounted_exception_header_from_obj (_M_exception_object); +- __atomic_add_fetch (&eh->referenceCount, 1, __ATOMIC_ACQ_REL); ++ __gnu_cxx::__eh_atomic_inc (&eh->referenceCount); + } + } + +@@ -115,7 +113,7 @@ std::__exception_ptr::exception_ptr::_M_ + { + __cxa_refcounted_exception *eh = + __get_refcounted_exception_header_from_obj (_M_exception_object); +- if (__atomic_sub_fetch (&eh->referenceCount, 1, __ATOMIC_ACQ_REL) == 0) ++ if (__gnu_cxx::__eh_atomic_dec (&eh->referenceCount)) + { + if (eh->exc.exceptionDestructor) + eh->exc.exceptionDestructor (_M_exception_object); +@@ -219,7 +217,7 @@ __gxx_dependent_exception_cleanup(_Unwin + + __cxa_free_dependent_exception (dep); + +- if (__atomic_sub_fetch (&header->referenceCount, 1, __ATOMIC_ACQ_REL) == 0) ++ if (__gnu_cxx::__eh_atomic_dec (&header->referenceCount)) + { + if (header->exc.exceptionDestructor) + header->exc.exceptionDestructor (header + 1); +@@ -238,7 +236,7 @@ std::rethrow_exception(std::exception_pt + + __cxa_dependent_exception *dep = __cxa_allocate_dependent_exception (); + dep->primaryException = obj; +- __atomic_add_fetch (&eh->referenceCount, 1, __ATOMIC_ACQ_REL); ++ __gnu_cxx::__eh_atomic_inc (&eh->referenceCount); + + dep->unexpectedHandler = get_unexpected (); + dep->terminateHandler = get_terminate (); +@@ -260,5 +258,3 @@ std::rethrow_exception(std::exception_pt + } + + #undef _GLIBCXX_EH_PTR_COMPAT +- +-#endif +Index: gcc-6.3.0/libstdc++-v3/libsupc++/eh_throw.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/eh_throw.cc ++++ gcc-6.3.0/libstdc++-v3/libsupc++/eh_throw.cc +@@ -24,6 +24,7 @@ + + #include <bits/c++config.h> + #include "unwind-cxx.h" ++#include "eh_atomics.h" + + using namespace __cxxabiv1; + +@@ -42,17 +43,13 @@ __gxx_exception_cleanup (_Unwind_Reason_ + if (code != _URC_FOREIGN_EXCEPTION_CAUGHT && code != _URC_NO_REASON) + __terminate (header->exc.terminateHandler); + +-#if ATOMIC_INT_LOCK_FREE > 1 +- if (__atomic_sub_fetch (&header->referenceCount, 1, __ATOMIC_ACQ_REL) == 0) ++ if (__gnu_cxx::__eh_atomic_dec (&header->referenceCount)) + { +-#endif + if (header->exc.exceptionDestructor) + header->exc.exceptionDestructor (header + 1); + + __cxa_free_exception (header + 1); +-#if ATOMIC_INT_LOCK_FREE > 1 + } +-#endif + } + + +Index: gcc-6.3.0/libstdc++-v3/libsupc++/eh_tm.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/eh_tm.cc ++++ gcc-6.3.0/libstdc++-v3/libsupc++/eh_tm.cc +@@ -24,6 +24,7 @@ + + #include <cstdlib> + #include "unwind-cxx.h" ++#include "eh_atomics.h" + + using namespace __cxxabiv1; + +@@ -45,9 +46,7 @@ free_any_cxa_exception (_Unwind_Exceptio + __cxa_free_dependent_exception (dep); + } + +-#if __GCC_ATOMIC_INT_LOCK_FREE > 1 +- if (__atomic_sub_fetch (&h->referenceCount, 1, __ATOMIC_ACQ_REL) == 0) +-#endif ++ if (__gnu_cxx::__eh_atomic_dec (&h->referenceCount)) + __cxa_free_exception (h + 1); + } + +Index: gcc-6.3.0/libstdc++-v3/libsupc++/exception +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/exception ++++ gcc-6.3.0/libstdc++-v3/libsupc++/exception +@@ -35,7 +35,6 @@ + #pragma GCC visibility push(default) + + #include <bits/c++config.h> +-#include <bits/atomic_lockfree_defines.h> + + extern "C++" { + +@@ -166,7 +165,7 @@ _GLIBCXX_END_NAMESPACE_VERSION + + #pragma GCC visibility pop + +-#if (__cplusplus >= 201103L) && (ATOMIC_INT_LOCK_FREE > 1) ++#if (__cplusplus >= 201103L) + #include <bits/exception_ptr.h> + #include <bits/nested_exception.h> + #endif +Index: gcc-6.3.0/libstdc++-v3/libsupc++/exception_ptr.h +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/exception_ptr.h ++++ gcc-6.3.0/libstdc++-v3/libsupc++/exception_ptr.h +@@ -36,10 +36,6 @@ + #include <bits/c++config.h> + #include <bits/exception_defines.h> + +-#if ATOMIC_INT_LOCK_FREE < 2 +-# error This platform does not support exception propagation. +-#endif +- + extern "C++" { + + namespace std +Index: gcc-6.3.0/libstdc++-v3/libsupc++/guard.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/guard.cc ++++ gcc-6.3.0/libstdc++-v3/libsupc++/guard.cc +@@ -30,6 +30,7 @@ + #include <new> + #include <ext/atomicity.h> + #include <ext/concurrence.h> ++#include <bits/atomic_lockfree_defines.h> + #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \ + && (ATOMIC_INT_LOCK_FREE > 1) && defined(_GLIBCXX_HAVE_LINUX_FUTEX) + # include <climits> +Index: gcc-6.3.0/libstdc++-v3/libsupc++/nested_exception.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/nested_exception.cc ++++ gcc-6.3.0/libstdc++-v3/libsupc++/nested_exception.cc +@@ -25,7 +25,5 @@ + + namespace std + { +-#if ATOMIC_INT_LOCK_FREE > 1 + nested_exception::~nested_exception() noexcept = default; +-#endif + } // namespace std +Index: gcc-6.3.0/libstdc++-v3/libsupc++/nested_exception.h +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/libsupc++/nested_exception.h ++++ gcc-6.3.0/libstdc++-v3/libsupc++/nested_exception.h +@@ -39,10 +39,6 @@ + #include <bits/c++config.h> + #include <bits/move.h> + +-#if ATOMIC_INT_LOCK_FREE < 2 +-# error This platform does not support exception propagation. +-#endif +- + extern "C++" { + + namespace std +Index: gcc-6.3.0/libstdc++-v3/src/c++11/future.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/src/c++11/future.cc ++++ gcc-6.3.0/libstdc++-v3/src/c++11/future.cc +@@ -78,8 +78,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + const char* + future_error::what() const noexcept { return logic_error::what(); } + +-#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) \ +- && (ATOMIC_INT_LOCK_FREE > 1) ++#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) + __future_base::_Result_base::_Result_base() = default; + + __future_base::_Result_base::~_Result_base() = default; +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc +@@ -1,6 +1,5 @@ + // { dg-do compile } + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2015-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc +@@ -16,7 +16,6 @@ + // <http://www.gnu.org/licenses/>. + + // { dg-options "-std=gnu++11 -fno-exceptions -O0" } +-// { dg-require-atomic-builtins "" } + + #include <exception> + #include <testsuite_hooks.h> +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // 2008-05-25 Sebastian Redl <sebastian.redl@getdesigned.at> + +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // 2008-05-25 Sebastian Redl <sebastian.redl@getdesigned.at> + +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/move.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/move.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/move.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc +@@ -1,6 +1,5 @@ + // { dg-do compile } + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // 2008-05-25 Sebastian Redl <sebastian.redl@getdesigned.at> + +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/51438.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/51438.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/51438.cc +@@ -1,6 +1,5 @@ + // { dg-do compile } + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/62154.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/62154.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/62154.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/68139.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/68139.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/68139.cc +@@ -1,6 +1,5 @@ + // { dg-do compile } + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2015-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/cons.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/cons.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/cons.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc +@@ -1,5 +1,4 @@ + // { dg-options "-std=gnu++11" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/42819.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/42819.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/42819.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/49668.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/49668.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/49668.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/54297.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/54297.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/54297.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + // { dg-require-sleep "" } + + // Copyright (C) 2012-2016 Free Software Foundation, Inc. +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/any.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/any.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/any.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/async.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/async.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/async.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/except.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/except.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/except.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc +@@ -2,7 +2,6 @@ + // { dg-options " -std=gnu++11 -pthread" { target *-*-linux* *-*-gnu* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/launch.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/launch.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/launch.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/lwg2021.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/lwg2021.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/lwg2021.cc +@@ -21,7 +21,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // LWG 2021. Further incorrect usages of result_of + // Arguments to result_of should use decay. +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/sync.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/async/sync.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/async/sync.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11 -fno-inline -g0" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + // { dg-final { scan-assembler-not "_ZNSt6futureIvEC2Ev" } } + // { dg-final { scan-assembler-not "_ZNSt6futureIiEC2Ev" } } + +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/default.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/default.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/default.cc +@@ -1,7 +1,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/move.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/move.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/move.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc +@@ -1,7 +1,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/45133.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/45133.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/45133.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/get.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/get.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/get.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/get2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/get2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/get2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/share.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/share.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/share.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/valid.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/valid.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/valid.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/wait.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2013-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc +@@ -2,7 +2,6 @@ + // { dg-options " -std=gnu++11 -pthread" { target *-*-linux* *-*-gnu* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/60966.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/60966.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/60966.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/69106.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/69106.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/69106.cc +@@ -19,7 +19,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + #include <future> + +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/1.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/1.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/1.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/move.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/move.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/move.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2014-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/swap.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/members/swap.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/members/swap.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2011-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc +@@ -1,7 +1,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11 -fno-inline -g0" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + // { dg-final { scan-assembler-not "_ZNSt13shared_futureIvEC2Ev" } } + // { dg-final { scan-assembler-not "_ZNSt13shared_futureIiEC2Ev" } } + +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc +@@ -1,7 +1,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc +@@ -1,7 +1,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2010-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc +@@ -4,7 +4,6 @@ + // { dg-options " -std=gnu++11 " { target *-*-cygwin *-*-rtems* *-*-darwin* } } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc ++++ gcc-6.3.0/libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc +@@ -2,7 +2,6 @@ + // { dg-options "-std=gnu++11" } + // { dg-require-cstdint "" } + // { dg-require-gthreads "" } +-// { dg-require-atomic-builtins "" } + + // Copyright (C) 2009-2016 Free Software Foundation, Inc. + // +Index: gcc-6.3.0/libstdc++-v3/ChangeLog +=================================================================== +--- gcc-6.3.0.orig/libstdc++-v3/ChangeLog ++++ gcc-6.3.0/libstdc++-v3/ChangeLog +@@ -2,6 +2,43 @@ + + * GCC 6.3.0 released. + ++2017-01-04 Pauli Nieminen <suokkos@gmail.com> ++ Jonathan Wakely <jwakely@redhat.com> ++ ++ PR libstdc++/64735 ++ * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define. ++ * config.h.in: Regenerate. ++ * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46] ++ (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make ++ exports for exception_ptr, nested_exception, and future conditional. ++ [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add ++ exports for exception_ptr, nested_exception, and future conditional. ++ * configure: Regenerate. ++ * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER. ++ * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE ++ * libsupc++/eh_atomics.h: New file for internal use only. ++ (__eh_atomic_inc, __eh_atomic_dec): New. ++ * libsupc++/eh_ptr.cc (exception_ptr::_M_addref) ++ (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup) ++ (rethrow_exception): Use eh_atomics.h reference counting helpers. ++ * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise. ++ * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise. ++ * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE. ++ * libsupc++/exception_ptr.h: Likewise. ++ * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro. ++ * libsupc++/nested_exception.cc: Remove check for ++ ATOMIC_INT_LOCK_FREE. ++ * libsupc++/nested_exception.h: Likewise. ++ * src/c++11/future.cc: Likewise. ++ * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks. ++ * testsuite/18_support/nested_exception/*: Likewise. ++ * testsuite/30_threads/async/*: Likewise. ++ * testsuite/30_threads/future/*: Likewise. ++ * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise. ++ * testsuite/30_threads/packaged_task/*: Likewise. ++ * testsuite/30_threads/promise/*: Likewise. ++ * testsuite/30_threads/shared_future/*: Likewise. ++ + 2016-12-12 Jonathan Wakely <jwakely@redhat.com> + + Backport from mainline |