[gcc-7] 75/354: * GCC 7 snapshot build, taken from the trunk 20161217. * Update gdc to trunk 20161217. * Apply proposed patch for PR libstdc++/64735.

Ximin Luo infinity0 at debian.org
Thu Nov 23 15:50:33 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch master
in repository gcc-7.

commit 23cbae6286ae3724a239136d46e1c473f7f05f8b
Author: doko <doko at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Sat Dec 17 13:09:32 2016 +0000

      * GCC 7 snapshot build, taken from the trunk 20161217.
      * Update gdc to trunk 20161217.
      * Apply proposed patch for PR libstdc++/64735.
    
    
    
    git-svn-id: svn+ssh://svn.debian.org/svn/gcccvs/branches/sid/gcc-7@9193 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                   |    9 +-
 debian/patches/pr64735.diff        | 1385 ++++++++++++++++++++++++++++++++++++
 debian/patches/r243346-revert.diff |  115 ---
 debian/rules.patch                 |    5 +-
 4 files changed, 1394 insertions(+), 120 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index c816700..7c43e5f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,13 +1,14 @@
-gcc-7 (7-20161208-1) UNRELEASED; urgency=medium
+gcc-7 (7-20161217-1) experimental; urgency=medium
 
-  * GCC 7 snapshot build, taken from the trunk 20161208.
-    - Revert r243346, breaking bootstrap on AArch64.
+  * GCC 7 snapshot build, taken from the trunk 20161217.
   * Build the cilk runtime on armel, armhf, sparc and sparc64.
   * Use --push-state/--pop-state for gold as well when linking libtsan.
   * In GCC ICE dumps, prefix each line with the PID of the driver.
   * Apply proposed patch for PR target/78748.
+  * Update gdc to trunk 20161217.
+  * Apply proposed patch for PR libstdc++/64735.
 
- -- Matthias Klose <doko at debian.org>  Thu, 08 Dec 2016 12:02:16 +0100
+ -- Matthias Klose <doko at debian.org>  Sat, 17 Dec 2016 13:59:47 +0100
 
 gcc-7 (7-20161201-1) experimental; urgency=medium
 
diff --git a/debian/patches/pr64735.diff b/debian/patches/pr64735.diff
new file mode 100644
index 0000000..12ee7ae
--- /dev/null
+++ b/debian/patches/pr64735.diff
@@ -0,0 +1,1385 @@
+# DP: Proposed patch for PR libstdc++/64735
+
+commit e81e908deb699886e65cb4d614f6a0a1cf54662f
+Author: Jonathan Wakely <jwakely at redhat.com>
+Date:   Fri Dec 16 15:22:21 2016 +0000
+
+    PR64735 support exception propagation without atomics
+    
+    2016-11-09  Pauli Nieminen  <suokkos at gmail.com>
+    	    Jonathan Wakely  <jwakely at redhat.com>
+    
+    	PR libstdc++/64735
+    	* 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.
+
+--- a/src/libstdc++-v3/include/std/future
++++ b/src/libstdc++-v3/include/std/future
+@@ -192,8 +192,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
+@@ -1751,7 +1750,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
+--- a/src//dev/null
++++ b/src/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
+--- a/src/libstdc++-v3/libsupc++/eh_ptr.cc
++++ b/src/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
+ 
+@@ -101,7 +99,7 @@ std::__exception_ptr::exception_ptr::_M_addref() noexcept
+     {
+       __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);
+     }
+ }
+ 
+@@ -113,7 +111,7 @@ std::__exception_ptr::exception_ptr::_M_release() noexcept
+     {
+       __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);
+@@ -211,7 +209,7 @@ __gxx_dependent_exception_cleanup(_Unwind_Reason_Code code,
+ 
+   __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);
+@@ -230,7 +228,7 @@ std::rethrow_exception(std::exception_ptr ep)
+ 
+   __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 ();
+@@ -252,5 +250,3 @@ std::rethrow_exception(std::exception_ptr ep)
+ }
+ 
+ #undef _GLIBCXX_EH_PTR_COMPAT
+-
+-#endif
+--- a/src/libstdc++-v3/libsupc++/eh_throw.cc
++++ b/src/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_Code code, _Unwind_Exception *exc)
+   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
+ }
+ 
+ extern "C" __cxa_refcounted_exception*
+--- a/src/libstdc++-v3/libsupc++/eh_tm.cc
++++ b/src/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_Exception *eo)
+       __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);
+ }
+ 
+--- a/src/libstdc++-v3/libsupc++/exception
++++ b/src/libstdc++-v3/libsupc++/exception
+@@ -35,7 +35,6 @@
+ #pragma GCC visibility push(default)
+ 
+ #include <bits/c++config.h>
+-#include <bits/atomic_lockfree_defines.h>
+ #include <bits/exception.h>
+ 
+ extern "C++" {
+@@ -139,7 +138,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
+--- a/src/libstdc++-v3/libsupc++/exception_ptr.h
++++ b/src/libstdc++-v3/libsupc++/exception_ptr.h
+@@ -39,10 +39,6 @@
+ #include <typeinfo>
+ #include <new>
+ 
+-#if ATOMIC_INT_LOCK_FREE < 2
+-#  error This platform does not support exception propagation.
+-#endif
+-
+ extern "C++" {
+ 
+ namespace std 
+--- a/src/libstdc++-v3/libsupc++/guard.cc
++++ b/src/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>
+--- a/src/libstdc++-v3/libsupc++/nested_exception.cc
++++ b/src/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
+--- a/src/libstdc++-v3/libsupc++/nested_exception.h
++++ b/src/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
+--- a/src/libstdc++-v3/src/c++11/future.cc
++++ b/src/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;
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
+@@ -1,5 +1,4 @@
+ // { dg-do compile { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/60612-terminate.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/60612-unexpected.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/62258.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2015-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/64241.cc
+@@ -17,7 +17,6 @@
+ 
+ // { dg-options "-fno-exceptions -O0" }
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ #include <exception>
+ #include <testsuite_hooks.h>
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // 2008-05-25  Sebastian Redl  <sebastian.redl at getdesigned.at>
+ 
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/lifespan.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // 2008-05-25  Sebastian Redl  <sebastian.redl at getdesigned.at>
+ 
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr_2.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/make_exception_ptr_2.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/requirements.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/requirements_neg.cc
+@@ -1,5 +1,4 @@
+ // { dg-do compile { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
++++ b/src/libstdc++-v3/testsuite/18_support/exception_ptr/rethrow_exception.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // 2008-05-25  Sebastian Redl  <sebastian.redl at getdesigned.at>
+ 
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/51438.cc
+@@ -1,5 +1,4 @@
+ // { dg-do compile { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/62154.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/68139.cc
+@@ -1,5 +1,4 @@
+ // { dg-do compile { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2015-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/cons.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/nested_ptr.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_if_nested.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/rethrow_nested.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
++++ b/src/libstdc++-v3/testsuite/18_support/nested_exception/throw_with_nested.cc
+@@ -1,5 +1,4 @@
+ // { dg-do run { target c++11 } }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/async/42819.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/42819.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/async/49668.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/49668.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/async/54297.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/54297.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ // { dg-require-sleep "" }
+ 
+ // Copyright (C) 2012-2016 Free Software Foundation, Inc.
+--- a/src/libstdc++-v3/testsuite/30_threads/async/any.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/any.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/async/async.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/async.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/async/except.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/except.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/forced_unwind.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/async/launch.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/launch.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/lwg2021.cc
+@@ -20,7 +20,6 @@
+ // { dg-require-effective-target c++11 }
+ // { 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.
+--- a/src/libstdc++-v3/testsuite/30_threads/async/sync.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/async/sync.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/cons/assign_neg.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/cons/constexpr.cc
+@@ -2,7 +2,6 @@
+ // { dg-options "-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" } }
+ 
+--- a/src/libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/cons/copy_neg.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/cons/default.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/cons/default.cc
+@@ -1,7 +1,6 @@
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/cons/move.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/cons/move.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/cons/move_assign.cc
+@@ -1,7 +1,6 @@
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/members/45133.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/members/45133.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/members/get.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/members/get.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/members/get2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/members/get2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/members/share.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/members/share.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/members/valid.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/members/valid.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/members/wait.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/members/wait.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/future/requirements/explicit_instantiation.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/headers/future/types_std_c++0x.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" } 
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/60564.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/56492.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2013-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc2.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc
+@@ -1,7 +1,6 @@
+ // { dg-do run { target *-*-linux* *-*-gnu* } }
+ // { dg-options "-pthread" { target *-*-linux* *-*-gnu* *-*-solaris* } }
+ // { dg-require-effective-target c++11 }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/at_thread_exit.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/requirements/explicit_instantiation.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/60966.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/60966.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/69106.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/69106.cc
+@@ -18,7 +18,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ #include <future>
+ 
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/cons/1.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/cons/alloc2.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/cons/alloc_min.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/cons/assign_neg.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/cons/copy_neg.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/cons/move.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2014-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/swap.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/requirements/explicit_instantiation.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2011-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/assign.cc
+@@ -1,7 +1,6 @@
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/constexpr.cc
+@@ -2,7 +2,6 @@
+ // { dg-options "-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" } }
+ 
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/copy.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/default.cc
+@@ -1,7 +1,6 @@
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/cons/move_assign.cc
+@@ -1,7 +1,6 @@
+ // { dg-do run { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2010-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc
+@@ -3,7 +3,6 @@
+ // { dg-require-effective-target c++11 }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
+--- a/src/libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
++++ b/src/libstdc++-v3/testsuite/30_threads/shared_future/requirements/explicit_instantiation.cc
+@@ -1,7 +1,6 @@
+ // { dg-do compile { target c++11 } }
+ // { dg-require-cstdint "" }
+ // { dg-require-gthreads "" }
+-// { dg-require-atomic-builtins "" }
+ 
+ // Copyright (C) 2009-2016 Free Software Foundation, Inc.
+ //
diff --git a/debian/patches/r243346-revert.diff b/debian/patches/r243346-revert.diff
deleted file mode 100644
index 0d5596c..0000000
--- a/debian/patches/r243346-revert.diff
+++ /dev/null
@@ -1,115 +0,0 @@
-Index: b/src/gcc/ChangeLog
-===================================================================
---- a/src/gcc/ChangeLog
-+++ b/src/gcc/ChangeLog
-@@ -195,16 +195,6 @@
- 	* gcc/ira.c (ira_setup_eliminable_regset): Initialize crtl->is_leaf.
- 	(ira): Move initialization of crtl->is_leaf earlier.
- 
--2016-12-07  Wilco Dijkstra  <wdijkstr at arm.com>
--
--	* config/aarch64/aarch64.md (movti_aarch64): Change Ump to m.
--	(movtf_aarch64): Likewise.
--	* config/aarch64/aarch64.c (aarch64_classify_address):
--	Use correct intersection of offsets.
--	(aarch64_legitimize_address_displacement): Use 9-bit signed offsets.
--	(aarch64_legitimize_address): Use 9-bit signed offsets for TI/TF mode.
--	Use 7-bit signed scaled mode for modes > 16 bytes.
--
- 2016-12-07  James Greenhalgh  <james.greenhalgh at arm.com>
- 
- 	PR rtl-optimization/78561
-Index: b/src/gcc/config/aarch64/aarch64.md
-===================================================================
---- a/src/gcc/config/aarch64/aarch64.md
-+++ b/src/gcc/config/aarch64/aarch64.md
-@@ -1120,9 +1120,9 @@
- 
- (define_insn "*movti_aarch64"
-   [(set (match_operand:TI 0
--	 "nonimmediate_operand"  "=r, *w,r ,*w,r,m,m,*w,m")
-+	 "nonimmediate_operand"  "=r, *w,r ,*w,r  ,Ump,Ump,*w,m")
- 	(match_operand:TI 1
--	 "aarch64_movti_operand" " rn,r ,*w,*w,m,r,Z, m,*w"))]
-+	 "aarch64_movti_operand" " rn,r ,*w,*w,Ump,r  ,Z  , m,*w"))]
-   "(register_operand (operands[0], TImode)
-     || aarch64_reg_or_zero (operands[1], TImode))"
-   "@
-@@ -1237,9 +1237,9 @@
- 
- (define_insn "*movtf_aarch64"
-   [(set (match_operand:TF 0
--	 "nonimmediate_operand" "=w,?&r,w ,?r,w,?w,w,m,?r,m ,m")
-+	 "nonimmediate_operand" "=w,?&r,w ,?r,w,?w,w,m,?r ,Ump,Ump")
- 	(match_operand:TF 1
--	 "general_operand"      " w,?r, ?r,w ,Y,Y ,m,w,m ,?r,Y"))]
-+	 "general_operand"      " w,?r, ?r,w ,Y,Y ,m,w,Ump,?r ,Y"))]
-   "TARGET_FLOAT && (register_operand (operands[0], TFmode)
-     || aarch64_reg_or_fp_zero (operands[1], TFmode))"
-   "@
-Index: b/src/gcc/config/aarch64/aarch64.c
-===================================================================
---- a/src/gcc/config/aarch64/aarch64.c
-+++ b/src/gcc/config/aarch64/aarch64.c
-@@ -4335,8 +4335,7 @@ aarch64_classify_address (struct aarch64
- 	     instruction memory accesses.  */
- 	  if (mode == TImode || mode == TFmode)
- 	    return (aarch64_offset_7bit_signed_scaled_p (DImode, offset)
--		    && (offset_9bit_signed_unscaled_p (mode, offset)
--			|| offset_12bit_unsigned_scaled_p (mode, offset)));
-+		    && offset_9bit_signed_unscaled_p (mode, offset));
- 
- 	  /* A 7bit offset check because OImode will emit a ldp/stp
- 	     instruction (only big endian will get here).
-@@ -4540,19 +4539,18 @@ aarch64_legitimate_address_p (machine_mo
- /* Split an out-of-range address displacement into a base and offset.
-    Use 4KB range for 1- and 2-byte accesses and a 16KB range otherwise
-    to increase opportunities for sharing the base address of different sizes.
--   For unaligned accesses and TI/TF mode use the signed 9-bit range.  */
-+   For TI/TFmode and unaligned accesses use a 256-byte range.  */
- static bool
- aarch64_legitimize_address_displacement (rtx *disp, rtx *off, machine_mode mode)
- {
--  HOST_WIDE_INT offset = INTVAL (*disp);
--  HOST_WIDE_INT base = offset & ~(GET_MODE_SIZE (mode) < 4 ? 0xfff : 0x3ffc);
-+  HOST_WIDE_INT mask = GET_MODE_SIZE (mode) < 4 ? 0xfff : 0x3fff;
- 
--  if (mode == TImode || mode == TFmode
--      || (offset & (GET_MODE_SIZE (mode) - 1)) != 0)
--    base = (offset + 0x100) & ~0x1ff;
-+  if (mode == TImode || mode == TFmode ||
-+      (INTVAL (*disp) & (GET_MODE_SIZE (mode) - 1)) != 0)
-+    mask = 0xff;
- 
--  *off = GEN_INT (base);
--  *disp = GEN_INT (offset - base);
-+  *off = GEN_INT (INTVAL (*disp) & ~mask);
-+  *disp = GEN_INT (INTVAL (*disp) & mask);
-   return true;
- }
- 
-@@ -5419,10 +5417,12 @@ aarch64_legitimize_address (rtx x, rtx /
- 	  x = gen_rtx_PLUS (Pmode, base, offset_rtx);
- 	}
- 
--      /* Does it look like we'll need a 16-byte load/store-pair operation?  */
-+      /* Does it look like we'll need a load/store-pair operation?  */
-       HOST_WIDE_INT base_offset;
--      if (GET_MODE_SIZE (mode) > 16)
--	base_offset = (offset + 0x400) & ~0x7f0;
-+      if (GET_MODE_SIZE (mode) > 16
-+	  || mode == TImode)
-+	base_offset = ((offset + 64 * GET_MODE_SIZE (mode))
-+		       & ~((128 * GET_MODE_SIZE (mode)) - 1));
-       /* For offsets aren't a multiple of the access size, the limit is
- 	 -256...255.  */
-       else if (offset & (GET_MODE_SIZE (mode) - 1))
-@@ -5436,8 +5436,6 @@ aarch64_legitimize_address (rtx x, rtx /
-       /* Small negative offsets are supported.  */
-       else if (IN_RANGE (offset, -256, 0))
- 	base_offset = 0;
--      else if (mode == TImode || mode == TFmode)
--	base_offset = (offset + 0x100) & ~0x1ff;
-       /* Use 12-bit offset by access size.  */
-       else
- 	base_offset = offset & (~0xfff * GET_MODE_SIZE (mode));
diff --git a/debian/rules.patch b/debian/rules.patch
index 0900a06..a2cf09c 100644
--- a/debian/rules.patch
+++ b/debian/rules.patch
@@ -69,7 +69,6 @@ debian_patches += \
 	PR55947-revert \
 	libffi-pax \
 	libffi-race-condition \
-	r243346-revert \
 
 
 ifeq ($(libstdcxx_abi),new)
@@ -175,6 +174,10 @@ ifeq ($(DEB_TARGET_ARCH),alpha)
   endif
 endif
 
+ifeq ($(DEB_TARGET_ARCH),armel)
+  debian_patches += pr64735
+endif
+
 ifeq ($(DEB_TARGET_ARCH),powerpcspe)
   debian_patches += powerpc_remove_many
   debian_patches += powerpc_nofprs

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-7.git



More information about the Reproducible-commits mailing list