<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/b4b607553d56abe9fac035f4f71fee388b6a50ce">https://github.com/macports/macports-ports/commit/b4b607553d56abe9fac035f4f71fee388b6a50ce</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new b4b607553d5 (lib)gcc12: update to 12.4.0
</span>b4b607553d5 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit b4b607553d56abe9fac035f4f71fee388b6a50ce
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Mon Jul 1 10:56:01 2024 +0100

<span style='display:block; white-space:pre;color:#404040;'>    (lib)gcc12: update to 12.4.0
</span>---
 lang/gcc12/Portfile                                |    15 +-
 lang/gcc12/files/patch-avoid-over-poisoning.diff   |   136 -
 ...cc-12.3.0.diff => patch-darwin-gcc-12.4.0.diff} | 14780 ++++++++++++++-----
 3 files changed, 11276 insertions(+), 3655 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc12/Portfile b/lang/gcc12/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 9ecbe8ad8ea..a70dcb946db 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc12/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc12/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -22,17 +22,17 @@ long_description    {*}${description}, including front ends for \
</span>                     C, C++, Objective-C, Objective-C++ and Fortran.
 
 # Remember to reset all revision increments below to 0 on new versions
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version             12.3.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             12.4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span> 
 set libgccname      lib${name}
 subport             ${libgccname} { revision [ expr ${revision} + 0 ] }
 
 set libcxxname      ${name}-libcxx
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  bcc2a72fbbee69d031e1ca31c7236c65352397d4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  949a5d4f99e786421a93b532b22ffab5578de7321369975b91aec97adfda8c3b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    85491976
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  28610a746188e2a3c368b6578a22b6770f295267 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  704f652604ccbccb14bdabf3478c9511c89788b12cb3bbffded37341916a9175 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    83377372
</span> 
 # Primary releases
 master_sites        https://ftpmirror.gnu.org/gcc/gcc-${version}/ \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -161,7 +161,7 @@ configure.env-append \
</span> 
 if { ${os.platform} eq "darwin" } {
     # Patch generated from https://github.com/iains/gcc-12-branch
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # git diff --no-prefix releases/gcc-12.2.0 gcc-12.2-darwin-r0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # git diff --no-prefix releases/gcc-12.4.0 gcc-12.4-darwin-r0
</span>     patchfiles-append  patch-darwin-gcc-${version}.diff
 }
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -178,9 +178,6 @@ if { ${os.platform} eq "darwin" } {
</span> #  - https://github.com/gcc-mirror/gcc/commit/b410cf1dc056aab195c5408871ffca932df8a78a
 patchfiles-append   patch-gcc10-disable-macports-cctools-as-changes.diff
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111632
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append   patch-avoid-over-poisoning.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.env-append \
                     DISABLE_MACPORTS_AS_CLANG_SEARCH=1 \
                     DISABLE_XCODE_AS_CLANG_SEARCH=1
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc12/files/patch-avoid-over-poisoning.diff b/lang/gcc12/files/patch-avoid-over-poisoning.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 1f801969bbf..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc12/files/patch-avoid-over-poisoning.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,136 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 9970b576b7e4ae337af1268395ff221348c4b34a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Thu, 7 Mar 2024 14:36:03 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] Include safe-ctype.h after C++ standard headers, to avoid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- over-poisoning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-When building gcc's C++ sources against recent libc++, the poisoning of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the ctype macros due to including safe-ctype.h before including C++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-standard headers such as <list>, <map>, etc, causes many compilation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-errors, similar to:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from /home/dim/src/gcc/master/gcc/system.h:233:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from /usr/include/c++/v1/vector:321:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__format/formatter_bool.h:20:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__format/formatter_integral.h:32:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from /usr/include/c++/v1/locale:202:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__locale:546:5: error: '__abi_tag__' attribute
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  only applies to structs, variables, functions, and namespaces
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    546 |     _LIBCPP_INLINE_VISIBILITY
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        |     ^
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__config:813:37: note: expanded from macro
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  '_LIBCPP_INLINE_VISIBILITY'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    813 | #  define _LIBCPP_INLINE_VISIBILITY _LIBCPP_HIDE_FROM_ABI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        |                                     ^
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__config:792:26: note: expanded from macro
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  '_LIBCPP_HIDE_FROM_ABI'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    792 |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    __attribute__((__abi_tag__(_LIBCPP_TOSTRING(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  _LIBCPP_VERSIONED_IDENTIFIER))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        |                          ^
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from /home/dim/src/gcc/master/gcc/gensupport.cc:23:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from /home/dim/src/gcc/master/gcc/system.h:233:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from /usr/include/c++/v1/vector:321:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__format/formatter_bool.h:20:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__format/formatter_integral.h:32:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  In file included from /usr/include/c++/v1/locale:202:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__locale:547:37: error: expected ';' at end of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  declaration list
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    547 |     char_type toupper(char_type __c) const
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        |                                     ^
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /usr/include/c++/v1/__locale:553:48: error: too many arguments
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  provided to function-like macro invocation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    553 |     const char_type* toupper(char_type* __low, const
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    char_type* __high) const
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        |                                                ^
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  /home/dim/src/gcc/master/gcc/../include/safe-ctype.h:146:9: note:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  macro 'toupper' defined here
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    146 | #define toupper(c) do_not_use_toupper_with_safe_ctype
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        |         ^
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This is because libc++ uses different transitive includes than
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-libstdc++, and some of those transitive includes pull in various ctype
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-declarations (typically via <locale>).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-There was already a special case for including <string> before
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-safe-ctype.h, so move the rest of the C++ standard header includes to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the same location, to fix the problem.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-gcc/ChangeLog:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   * system.h: Include safe-ctype.h after C++ standard headers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Signed-off-by: Dimitry Andric <dimitry@andric.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gcc/system.h | 39 ++++++++++++++++++---------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1 file changed, 18 insertions(+), 21 deletions(-)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/gcc/system.h b/gcc/system.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b0edab0288548..ab29fc1977644 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/system.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/system.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -194,27 +194,8 @@ extern int fprintf_unlocked (FILE *, const char *, ...);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef fread_unlocked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef fwrite_unlocked
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* Include <string> before "safe-ctype.h" to avoid GCC poisoning
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   the ctype macros through safe-ctype.h */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifdef INCLUDE_STRING
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# include <string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* There are an extraordinary number of issues with <ctype.h>.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   The last straw is that it varies with the locale.  Use libiberty's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   replacement instead.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include "safe-ctype.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#include <errno.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--extern int errno;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Include C++ standard headers before "safe-ctype.h" to avoid GCC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   poisoning the ctype macros through safe-ctype.h */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -229,6 +210,9 @@ extern int errno;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef INCLUDE_SET
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # include <set>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef INCLUDE_STRING
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# include <string>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef INCLUDE_VECTOR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # include <vector>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -245,6 +229,19 @@ extern int errno;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # include <type_traits>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* There are an extraordinary number of issues with <ctype.h>.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   The last straw is that it varies with the locale.  Use libiberty's
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   replacement instead.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include "safe-ctype.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <errno.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern int errno;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Some of glibc's string inlines cause warnings.  Plus we'd rather
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    rely on (and therefore test) GCC's string builtins.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define __NO_STRING_INLINES
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc12/files/patch-darwin-gcc-12.3.0.diff b/lang/gcc12/files/patch-darwin-gcc-12.4.0.diff
</span>similarity index 51%
rename from lang/gcc12/files/patch-darwin-gcc-12.3.0.diff
rename to lang/gcc12/files/patch-darwin-gcc-12.4.0.diff
<span style='display:block; white-space:pre;color:#808080;'>index d19cb8007dd..a5a9b4be186 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc12/files/patch-darwin-gcc-12.3.0.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc12/files/patch-darwin-gcc-12.4.0.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,248 +1,894 @@
</span> diff --git Makefile.def Makefile.def
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 72d5854..25b8563 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 72d58549645..639cdd78988 100644
</span> --- Makefile.def
 +++ Makefile.def
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -47,7 +47,8 @@ host_modules= { module= fixincludes; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,10 +47,11 @@ host_modules= { module= fixincludes; bootstrap=true;
</span>  host_modules= { module= flex; no_check_cross= true; };
  host_modules= { module= gas; bootstrap=true; };
  host_modules= { module= gcc; bootstrap=true; 
 -              extra_make_flags="$(EXTRA_GCC_FLAGS)"; };
 +              extra_make_flags="$(EXTRA_GCC_FLAGS)";
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+               extra_configure_flags='--enable-pie-tools=@enable_pie_tools@'; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          extra_configure_flags='@gcc_host_pie@'; };
</span>  host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
                // Work around in-tree gmp configure bug with missing flex.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                extra_configure_flags='--disable-shared LEX="touch lex.yy.c"';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          extra_configure_flags='--disable-shared LEX="touch lex.yy.c"';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          extra_configure_flags='--disable-shared LEX="touch lex.yy.c" @host_libs_picflag@';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           extra_make_flags='AM_CFLAGS="-DNO_ASM"';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           no_install= true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           // none-*-* disables asm optimizations, bootstrap-testing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,14 +61,14 @@ host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           // different from host for target.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           target="none-${host_vendor}-${host_os}"; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= mpfr; lib_path=src/.libs; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          extra_configure_flags='--disable-shared @extra_mpfr_configure_flags@';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          extra_configure_flags='--disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           extra_make_flags='AM_CFLAGS="-DNO_ASM"';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           no_install= true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= mpc; lib_path=src/.libs; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          extra_configure_flags='--disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          extra_configure_flags='--disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           no_install= true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= isl; lib_path=.libs; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          extra_configure_flags='--disable-shared @extra_isl_gmp_configure_flags@';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          extra_configure_flags='--disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           extra_make_flags='V=1';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           no_install= true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= libelf; lib_path=.libs; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,6 +76,7 @@ host_modules= { module= libelf; lib_path=.libs; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           no_install= true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= gold; bootstrap=true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= gprof; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// intl acts on 'host_shared' directly, and does not support --with-pic.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= intl; bootstrap=true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= tcl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 missing=mostlyclean; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,7 +112,7 @@ host_modules= { module= libiberty-linker-plugin; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // We abuse missing to avoid installing anything for libiconv.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= libiconv;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          extra_configure_flags='--disable-shared';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          extra_configure_flags='--disable-shared  @host_libs_picflag@';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           no_install= true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           missing= pdf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           missing= html;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,7 +127,7 @@ host_modules= { module= sim; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= texinfo; no_install= true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= zlib; no_install=true; no_check=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          extra_configure_flags='@extra_host_zlib_configure_flags@';};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          extra_configure_flags='@extra_host_zlib_configure_flags@ @host_libs_picflag@';};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= gnulib; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= gdbsupport; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= gdbserver; };
</span> diff --git Makefile.in Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 593495e..807c594 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 593495e1650..e3b44f99a7d 100644
</span> --- Makefile.in
 +++ Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -112,6 +112,9 @@ GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # If the build should make suitable code for shared host resources.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- host_shared = @host_shared@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# If we should build compilers and supporting tools as PIE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_pie_tools = @enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Build programs are put under this directory.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BUILD_SUBDIR = @build_subdir@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This is set by the configure script to the arguments to use when configuring
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12012,7 +12015,7 @@ configure-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12012,7 +12012,7 @@ configure-gcc:
</span>     $$s/$$module_srcdir/configure \
          --srcdir=$${topdir}/$$module_srcdir \
          $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
 -        --target=${target_alias}  \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --target=${target_alias} --enable-pie-tools=@enable_pie_tools@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --target=${target_alias} @gcc_host_pie@ \
</span>     || exit 1
  @endif gcc
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12047,7 +12050,8 @@ configure-stage1-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12047,7 +12047,8 @@ configure-stage1-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
           \
 -        $(STAGE1_CONFIGURE_FLAGS)
 +        $(STAGE1_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  .PHONY: configure-stage2-gcc maybe-configure-stage2-gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12080,7 +12084,8 @@ configure-stage2-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12080,7 +12081,8 @@ configure-stage2-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
          --with-build-libsubdir=$(HOST_SUBDIR) \
 -        $(STAGE2_CONFIGURE_FLAGS)
 +        $(STAGE2_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  .PHONY: configure-stage3-gcc maybe-configure-stage3-gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12113,7 +12118,8 @@ configure-stage3-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12113,7 +12115,8 @@ configure-stage3-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
          --with-build-libsubdir=$(HOST_SUBDIR) \
 -        $(STAGE3_CONFIGURE_FLAGS)
 +        $(STAGE3_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  .PHONY: configure-stage4-gcc maybe-configure-stage4-gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12146,7 +12152,8 @@ configure-stage4-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12146,7 +12149,8 @@ configure-stage4-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
          --with-build-libsubdir=$(HOST_SUBDIR) \
 -        $(STAGE4_CONFIGURE_FLAGS)
 +        $(STAGE4_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  .PHONY: configure-stageprofile-gcc maybe-configure-stageprofile-gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12179,7 +12186,8 @@ configure-stageprofile-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12179,7 +12183,8 @@ configure-stageprofile-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
          --with-build-libsubdir=$(HOST_SUBDIR) \
 -        $(STAGEprofile_CONFIGURE_FLAGS)
 +        $(STAGEprofile_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  .PHONY: configure-stagetrain-gcc maybe-configure-stagetrain-gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12212,7 +12220,8 @@ configure-stagetrain-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12212,7 +12217,8 @@ configure-stagetrain-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
          --with-build-libsubdir=$(HOST_SUBDIR) \
 -        $(STAGEtrain_CONFIGURE_FLAGS)
 +        $(STAGEtrain_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  .PHONY: configure-stagefeedback-gcc maybe-configure-stagefeedback-gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12245,7 +12254,8 @@ configure-stagefeedback-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12245,7 +12251,8 @@ configure-stagefeedback-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
          --with-build-libsubdir=$(HOST_SUBDIR) \
 -        $(STAGEfeedback_CONFIGURE_FLAGS)
 +        $(STAGEfeedback_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  .PHONY: configure-stageautoprofile-gcc maybe-configure-stageautoprofile-gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12278,7 +12288,8 @@ configure-stageautoprofile-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12278,7 +12285,8 @@ configure-stageautoprofile-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
          --with-build-libsubdir=$(HOST_SUBDIR) \
 -        $(STAGEautoprofile_CONFIGURE_FLAGS)
 +        $(STAGEautoprofile_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  .PHONY: configure-stageautofeedback-gcc maybe-configure-stageautofeedback-gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12311,7 +12322,8 @@ configure-stageautofeedback-gcc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12311,7 +12319,8 @@ configure-stageautofeedback-gcc:
</span>     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
          --target=${target_alias} \
          --with-build-libsubdir=$(HOST_SUBDIR) \
 -        $(STAGEautofeedback_CONFIGURE_FLAGS)
 +        $(STAGEautofeedback_CONFIGURE_FLAGS) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @gcc_host_pie@
</span>  @endif gcc-bootstrap
  
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git Makefile.tpl Makefile.tpl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ef58fac..925da10 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- Makefile.tpl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ Makefile.tpl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -115,6 +115,9 @@ GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # If the build should make suitable code for shared host resources.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- host_shared = @host_shared@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13152,7 +13161,7 @@ configure-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $$s/$$module_srcdir/configure \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --srcdir=$${topdir}/$$module_srcdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --target=none-${host_vendor}-${host_os} --disable-shared LEX="touch lex.yy.c" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --target=none-${host_vendor}-${host_os} --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     || exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13188,7 +13197,7 @@ configure-stage1-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE1_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage2-gmp maybe-configure-stage2-gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13222,7 +13231,7 @@ configure-stage2-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE2_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage3-gmp maybe-configure-stage3-gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13256,7 +13265,7 @@ configure-stage3-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE3_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage4-gmp maybe-configure-stage4-gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13290,7 +13299,7 @@ configure-stage4-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE4_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageprofile-gmp maybe-configure-stageprofile-gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13324,7 +13333,7 @@ configure-stageprofile-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagetrain-gmp maybe-configure-stagetrain-gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13358,7 +13367,7 @@ configure-stagetrain-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEtrain_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagefeedback-gmp maybe-configure-stagefeedback-gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13392,7 +13401,7 @@ configure-stagefeedback-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEfeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautoprofile-gmp maybe-configure-stageautoprofile-gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13426,7 +13435,7 @@ configure-stageautoprofile-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautoprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautofeedback-gmp maybe-configure-stageautofeedback-gmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13460,7 +13469,7 @@ configure-stageautofeedback-gmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=none-${host_vendor}-${host_os} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautofeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared LEX="touch lex.yy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared LEX="touch lex.yy.c" @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gmp-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14289,7 +14298,7 @@ configure-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $$s/$$module_srcdir/configure \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --srcdir=$${topdir}/$$module_srcdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --target=${target_alias} --disable-shared @extra_mpfr_configure_flags@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --target=${target_alias} --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     || exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14325,7 +14334,7 @@ configure-stage1-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE1_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage2-mpfr maybe-configure-stage2-mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14359,7 +14368,7 @@ configure-stage2-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE2_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage3-mpfr maybe-configure-stage3-mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14393,7 +14402,7 @@ configure-stage3-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE3_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage4-mpfr maybe-configure-stage4-mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14427,7 +14436,7 @@ configure-stage4-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE4_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageprofile-mpfr maybe-configure-stageprofile-mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14461,7 +14470,7 @@ configure-stageprofile-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagetrain-mpfr maybe-configure-stagetrain-mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14495,7 +14504,7 @@ configure-stagetrain-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEtrain_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagefeedback-mpfr maybe-configure-stagefeedback-mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14529,7 +14538,7 @@ configure-stagefeedback-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEfeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautoprofile-mpfr maybe-configure-stageautoprofile-mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14563,7 +14572,7 @@ configure-stageautoprofile-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautoprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautofeedback-mpfr maybe-configure-stageautofeedback-mpfr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14597,7 +14606,7 @@ configure-stageautofeedback-mpfr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautofeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpfr_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpfr_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpfr-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15426,7 +15435,7 @@ configure-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $$s/$$module_srcdir/configure \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --srcdir=$${topdir}/$$module_srcdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --target=${target_alias} --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --target=${target_alias} --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     || exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15462,7 +15471,7 @@ configure-stage1-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE1_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage2-mpc maybe-configure-stage2-mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15496,7 +15505,7 @@ configure-stage2-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE2_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage3-mpc maybe-configure-stage3-mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15530,7 +15539,7 @@ configure-stage3-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE3_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage4-mpc maybe-configure-stage4-mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15564,7 +15573,7 @@ configure-stage4-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE4_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageprofile-mpc maybe-configure-stageprofile-mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15598,7 +15607,7 @@ configure-stageprofile-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagetrain-mpc maybe-configure-stagetrain-mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15632,7 +15641,7 @@ configure-stagetrain-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEtrain_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagefeedback-mpc maybe-configure-stagefeedback-mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15666,7 +15675,7 @@ configure-stagefeedback-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEfeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautoprofile-mpc maybe-configure-stageautoprofile-mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15700,7 +15709,7 @@ configure-stageautoprofile-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautoprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautofeedback-mpc maybe-configure-stageautofeedback-mpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15734,7 +15743,7 @@ configure-stageautofeedback-mpc:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautofeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@  @host_libs_picflag@ --disable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif mpc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16563,7 +16572,7 @@ configure-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $$s/$$module_srcdir/configure \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --srcdir=$${topdir}/$$module_srcdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --target=${target_alias} --disable-shared @extra_isl_gmp_configure_flags@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --target=${target_alias} --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     || exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16599,7 +16608,7 @@ configure-stage1-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE1_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage2-isl maybe-configure-stage2-isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16633,7 +16642,7 @@ configure-stage2-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE2_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage3-isl maybe-configure-stage3-isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16667,7 +16676,7 @@ configure-stage3-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE3_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage4-isl maybe-configure-stage4-isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16701,7 +16710,7 @@ configure-stage4-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE4_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageprofile-isl maybe-configure-stageprofile-isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16735,7 +16744,7 @@ configure-stageprofile-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagetrain-isl maybe-configure-stagetrain-isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16769,7 +16778,7 @@ configure-stagetrain-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEtrain_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagefeedback-isl maybe-configure-stagefeedback-isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16803,7 +16812,7 @@ configure-stagefeedback-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEfeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautoprofile-isl maybe-configure-stageautoprofile-isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16837,7 +16846,7 @@ configure-stageautoprofile-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautoprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautofeedback-isl maybe-configure-stageautofeedback-isl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16871,7 +16880,7 @@ configure-stageautofeedback-isl:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautofeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared @extra_isl_gmp_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared @extra_isl_gmp_configure_flags@  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif isl-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30806,7 +30815,7 @@ configure-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $$s/$$module_srcdir/configure \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --srcdir=$${topdir}/$$module_srcdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --target=${target_alias} --disable-shared \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --target=${target_alias} --disable-shared  @host_libs_picflag@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     || exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30842,7 +30851,7 @@ configure-stage1-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE1_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage2-libiconv maybe-configure-stage2-libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30876,7 +30885,7 @@ configure-stage2-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE2_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage3-libiconv maybe-configure-stage3-libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30910,7 +30919,7 @@ configure-stage3-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE3_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage4-libiconv maybe-configure-stage4-libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30944,7 +30953,7 @@ configure-stage4-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE4_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageprofile-libiconv maybe-configure-stageprofile-libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30978,7 +30987,7 @@ configure-stageprofile-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagetrain-libiconv maybe-configure-stagetrain-libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31012,7 +31021,7 @@ configure-stagetrain-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEtrain_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagefeedback-libiconv maybe-configure-stagefeedback-libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31046,7 +31055,7 @@ configure-stagefeedback-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEfeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautoprofile-libiconv maybe-configure-stageautoprofile-libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31080,7 +31089,7 @@ configure-stageautoprofile-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautoprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautofeedback-libiconv maybe-configure-stageautofeedback-libiconv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31114,7 +31123,7 @@ configure-stageautofeedback-libiconv:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautofeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --disable-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --disable-shared  @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif libiconv-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34178,7 +34187,7 @@ configure-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $$s/$$module_srcdir/configure \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --srcdir=$${topdir}/$$module_srcdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    --target=${target_alias} @extra_host_zlib_configure_flags@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    --target=${target_alias} @extra_host_zlib_configure_flags@ @host_libs_picflag@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     || exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34214,7 +34223,7 @@ configure-stage1-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE1_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage2-zlib maybe-configure-stage2-zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34248,7 +34257,7 @@ configure-stage2-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE2_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage3-zlib maybe-configure-stage3-zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34282,7 +34291,7 @@ configure-stage3-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE3_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage4-zlib maybe-configure-stage4-zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34316,7 +34325,7 @@ configure-stage4-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGE4_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageprofile-zlib maybe-configure-stageprofile-zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34350,7 +34359,7 @@ configure-stageprofile-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagetrain-zlib maybe-configure-stagetrain-zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34384,7 +34393,7 @@ configure-stagetrain-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEtrain_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagefeedback-zlib maybe-configure-stagefeedback-zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34418,7 +34427,7 @@ configure-stagefeedback-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEfeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautoprofile-zlib maybe-configure-stageautoprofile-zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34452,7 +34461,7 @@ configure-stageautoprofile-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautoprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautofeedback-zlib maybe-configure-stageautofeedback-zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34486,7 +34495,7 @@ configure-stageautofeedback-zlib:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --target=${target_alias} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --with-build-libsubdir=$(HOST_SUBDIR) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     $(STAGEautofeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    @extra_host_zlib_configure_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    @extra_host_zlib_configure_flags@ @host_libs_picflag@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif zlib-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# If we should build compilers and supporting tools as PIE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_pie_tools = @enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Build programs are put under this directory.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BUILD_SUBDIR = @build_subdir@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This is set by the configure script to the arguments to use when configuring
</span> diff --git README.md README.md
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..843f75f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..b2103510637
</span> --- /dev/null
 +++ README.md
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,54 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# This is a branch of GCC 12-3 with experimental support for AArch64 (Arm64) on Darwin.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This is a branch of GCC-12.4 supporting AArch64(Arm64) on Darwin.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+The branch is recommended for (and has been tested on) powerpc, i686, x86_64 and aarch64 Darwin from Darwin9 (Mac OSX 10.5) through Darwin22 (macOS 13)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The branch is suitable for powerpc, i686, x86_64 and aarch64 Darwin from Darwin9 (MacOSX 10.5) through Darwin23 (macOS 14 / Sonoma) on architectures relevant to each version.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+The support for Aarch64 (Arm64) remains experimental but is adequate now for many programs (and self-bootstrap).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Please see README for general information on the GCC sources
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+Please see README for general information on the GCC sources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The GCC 12.4 upstream release has many bug-fixes and improvements, please see the general GCC release documentation for details.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+Please see the general GCC 12.3 release documentation for the implementation status of core language features.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The notable changes for Darwin/macOS are:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * better support for the dyld-based linker in Xcode 15+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * better support for macOS 14.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * back-ported editions of "official" implementations for relocatable compiler and handling of `__has_feature/__has_extension`.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+Please see gcc/config/aarch64/darwinpcs.md for a description of the macOS AArch64 (Arm64) ABI support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Please see gcc/config/aarch64/darwinpcs.md for a description of the AArch64 ABI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++support.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**Please report issues for this branch to:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+https://github.com/iains/gcc-12-branch/issues**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**_The current release is GCC-12.4-darwin-r0. (June 2024)_**
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**_The current release is GCC-12.3-darwin-r0. (May 2023)_**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This release:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Includes all 12.4 Upstream bug fixes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * I've included support for the `availability` attribute in this branch, as it is an important facility for compatibility with Apple SDKs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Extras thanks to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * 'FX' (https://github.com/fxcoudert) for the main part of the ```__float128``` support, progressing upstream commits and test fixes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * All folks who have tested and reported issues.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Iain Sandoe, June 2024.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Please report issues for this branch to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++https://github.com/iains/gcc-12-branch/issues
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git c++tools/Makefile.in c++tools/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d6a33613732..4d5a5b0522b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- c++tools/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ c++tools/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,8 +28,9 @@ AUTOCONF := @AUTOCONF@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AUTOHEADER := @AUTOHEADER@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXX := @CXX@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXFLAGS := @CXXFLAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-PIEFLAG := @PIEFLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-CXXOPTS := $(CXXFLAGS) $(PIEFLAG) -fno-exceptions -fno-rtti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PICFLAG := @PICFLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LD_PICFLAG := @LD_PICFLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++CXXOPTS := $(CXXFLAGS) $(PICFLAG) -fno-exceptions -fno-rtti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS := @LDFLAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exeext := @EXEEXT@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBIBERTY := ../libiberty/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -88,11 +89,15 @@ ifeq (@CXX_AUX_TOOLS@,yes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ all::g++-mapper-server$(exeext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ifneq ($(PICFLAG),)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++override LIBIBERTY := ../libiberty/pic/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+This release includes:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * All upstream fixes since 12.2.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * All fixes from GCC-12.1-darwin-r1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * A fix for handling non-bootstrap builds with clang (issue #18).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Some local fixes for building and testing D.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Some fixes for handling newer SDKs with unguarded blocks use and Apple-local deprecations of some Posix interfaces.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * libsanitizer is disabled on Darwin22+ pending a solution to locating dyld in the shared cache.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAPPER.O := server.o resolver.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CODYLIB = ../libcody/libcody.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXINC += -I$(srcdir)/../libcody -I$(srcdir)/../include -I$(srcdir)/../gcc -I. -I../gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ g++-mapper-server$(exeext): $(MAPPER.O) $(CODYLIB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  +$(CXX) $(LDFLAGS) $(PIEFLAG) -o $@ $^ $(LIBIBERTY) $(NETLIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  +$(CXX) $(LDFLAGS) $(PICFLAG) $(LD_PICFLAG) -o $@ $^ $(LIBIBERTY) $(NETLIBS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # copy to gcc dir so tests there can run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ all::../gcc/g++-mapper-server$(exeext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git c++tools/configure c++tools/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 742816e4253..88087009383 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- c++tools/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ c++tools/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -627,7 +627,8 @@ get_gcc_base_ver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EGREP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GREP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-PIEFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LD_PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXX_AUX_TOOLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AUTOHEADER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -700,6 +701,7 @@ enable_c___tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_checking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_default_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gcc_major_version_only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ac_precious_vars='build_alias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1333,6 +1335,7 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           only specific categories of checks. Categories are:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           yes,no,all,none,release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-default-pie    enable Position Independent Executable as default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build host code as PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Optional Packages:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2990,12 +2993,20 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-default-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-default-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_default_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enableval=$enable_default_pie; PIEFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_default_pie; PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  PIEFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie; PICFLAG=-fPIE; LD_PICFLAG=-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**_The current release is GCC-12.2-darwin-r0. (August 2022)_**
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+This release includes:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * All upstream fixes since 12.1.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Improves the build to omit runpaths from the runtime libraries.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * A fix for PR106435 which improves the handling of cross-TU global initializers for thread-local variables.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Fixes for builds and testing (include Ada) on Darwin8 (MacOSX 10.4, Tiger).
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**_GCC-12.1-darwin-r1. (June 2022)_**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if O_CLOEXEC is defined by fcntl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git c++tools/configure.ac c++tools/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6662b5ad7c9..1e42689f2eb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- c++tools/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ c++tools/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -102,8 +102,15 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(default-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--enable-default-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             [enable Position Independent Executable as default])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[PIEFLAG=-fPIE], [PIEFLAG=])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-AC_SUBST([PIEFLAG])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[PICFLAG=-fPIE], [PICFLAG=])
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+This release:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Fixes a critical bug in the Arm64 port (related to Issue #3, which is unfixed in Xcode toolchains in common use).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Adds a new configure option ```--with-darwin-extra-rpath=``` which allows a distribution to prepend a run path to the list automatically added by the compiler.  This is to allow for cases where the distribution refers to installed libraries using symlinks from outside the installation paths.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Resolves a potential issue with library references where a minor GCC version is replaced by the next and the old version is deleted.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Amends some of the system version processing to handle changes expected in macOS 13+.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Improves interoperability with clang in mixed code projects.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Thanks to contributors and testers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+**_GCC-12.1-darwin-r0. (May 2022)_**
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Test results : https://github.com/iains/gcc-12-branch/issues/1#issuecomment-1120194463
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Thanks to:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * 'FX' (https://github.com/fxcoudert) for the main part of the ```__float128``` support, many test fixes and help in testing this release more widely.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Andrew Burgess (while at Embecosm) for the work on heap based trampolines.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Maxim Blinov  (Embecosm) for work on modifications to GCC's function lowering code to enable better support of the Darwin Arm64 ABI.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Iain Sandoe.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git config/mh-darwin config/mh-darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b72835a..bb41127 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- config/mh-darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ config/mh-darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11,7 +11,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # non-bootstrapped compiler), later stages will be built by GCC which supports
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # the required flags.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# We cannot use mdynamic-no-pic when building shared host resources.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# We cannot use mdynamic-no-pic when building shared host resources, or for PIE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# tool executables, which also enables host-shared.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ifeq (${host_shared},no)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := $(shell \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as PIE])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[PICFLAG=-fPIE; LD_PICFLAG=-pie], [])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(LD_PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if O_CLOEXEC is defined by fcntl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CACHE_CHECK(for O_CLOEXEC, ac_cv_o_cloexec, [
</span> diff --git configure configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5dcaab1..c690bbe 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 77638bc84a6..6b5016ac5c2 100755
</span> --- configure
 +++ configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -685,6 +685,7 @@ get_gcc_base_ver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -685,7 +685,11 @@ get_gcc_base_ver
</span>  extra_host_zlib_configure_flags
  extra_host_libiberty_configure_flags
  stage1_languages
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_pie_tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++host_libs_picflag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PICFLAG
</span>  host_shared
<span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++host_pie
</span>  extra_linker_plugin_flags
  extra_linker_plugin_configure_flags
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -830,6 +831,7 @@ enable_lto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ islinc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -829,6 +833,7 @@ enable_isl_version_check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_lto
</span>  enable_linker_plugin_configure_flags
  enable_linker_plugin_flags
<span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span>  enable_host_shared
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_pie_tools
</span>  enable_stage1_languages
  enable_objc_gc
<span style='display:block; white-space:pre;background:#ffe0e0;'>- with_target_bdw_gc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1558,6 +1560,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1557,6 +1562,7 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-linker-plugin-flags=FLAGS
</span>                            additional flags for configuring and building linker
                            plugins [none]
<span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build position independent host executables
</span>    --enable-host-shared    build host code as shared libraries
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-pie-tools      build Position Independent Executables for the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          compilers and other tools
</span>    --enable-stage1-languages[=all]
                            choose additional languages to build during stage1.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                           Mostly useful for compiler development
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8410,6 +8414,20 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3488,6 +3494,8 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Disable libffi for some systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "${target}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  aarch64*-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   powerpc-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i[3456789]86-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8410,6 +8418,20 @@ else
</span>   fi
  fi
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -263,54 +909,124 @@ index 5dcaab1..c690bbe 100755
</span>  
  
  # GCC GRAPHITE dependency isl.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8663,6 +8681,42 @@ else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Check whether --enable-pie-tools was given.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Checked early because it can affect host make fragments.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Check whether --enable-pie-tools was given.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "${enable_pie_tools+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  enableval=$enable_pie_tools; enable_pie_tools=$enableval
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case $target in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   aarch64-*-darwin1[1-9]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     if test x$enable_pie_tools != xyes ; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       echo configure.ac: warning: aarch64-darwin must use PIE, pie-tools setting ignored. 1>&2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       enable_pie_tools=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       host_shared=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8641,6 +8663,39 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Handle --enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# If host PIE executables are the default (or must be forced on) for some host,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# we must pass that configuration to the gcc directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_host_pie=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie; host_pie=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     if test x$host_pie != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       # for Darwin20+ this is required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PIE executables are required for the configured host, host-pie setting ignored." >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: PIE executables are required for the configured host, host-pie setting ignored." >&2;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       host_pie=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       gcc_host_pie=--enable-host-pie
</span> +     fi ;;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *) ;;
</span> + esac
 +else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  case $target in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # PIE is the default for macOS 10.7+ so reflect that in the configure.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # However, we build 32b toolchains mdynamic-no-pic by default which is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # not compatible with PIE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  x86_64-*-darwin1[1-9]* | *-*-darwin2*) enable_pie_tools=yes ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *) enable_pie_tools=no ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Default to PIE (mandatory for aarch64).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    host_pie=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_host_pie=--enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *) host_pie=no ;;
</span> + esac
 +fi
 +
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+case $target in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if test x$enable_pie_tools = xyes && test x$host_shared != xyes ; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo configure.ac: warning: for Darwin PIE requires PIC code, switching host-shared on 1>&2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      host_shared=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    fi ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *) ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+esac
</span> +
 +
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Checked early to determine whether jit is an 'all' language
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-host-shared was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8650,20 +8705,60 @@ if test "${enable_host_shared+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    x86_64-*-darwin* | aarch64-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      if test x$host_shared != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # PIC is the default, and actually cannot be switched off.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PIC code is required for the configured host; host-shared setting ignored." >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: PIC code is required for the configured host; host-shared setting ignored." >&2;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       host_shared=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     fi ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     if test x$host_pie = xyes -a x$host_shared != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PIC code is required for PIE host executables host-shared setting ignored." >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: PIC code is required for PIE host executables host-shared setting ignored." >&2;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        host_shared=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      fi ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case $target in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # 64B x86_64 and Aarch64 Darwin default to PIC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *) host_shared=no ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # 32B and powerpc64 Darwin must use PIC to link PIE exes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*-darwin*) host_shared=$host_pie ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *) host_shared=no;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  
<span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # Since host shared is the default for 64b Darwin, and also enabled for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # host_pie, ensure that we present the PIE flag when host_pie is active.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if test x$host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# If we are building PIC/PIE host executables, and we are building dependent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libs (e.g. GMP) in-tree those libs need to be configured to generate PIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++host_libs_picflag=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "$host_shared" = "yes" -o "$host_pie" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++host_libs_picflag='--with-pic'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span>  # By default, C and C++ are the only stage 1 languages.
  stage1_languages=,c,
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git configure.ac configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8597748..72bd20f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7abd02f8b56..e8a22fe6dd4 100644
</span> --- configure.ac
 +++ configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1827,6 +1827,20 @@ AC_ARG_WITH(boot-ldflags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -748,6 +748,8 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Disable libffi for some systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "${target}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  aarch64*-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   powerpc-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i[[3456789]]86-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1827,6 +1829,20 @@ AC_ARG_WITH(boot-ldflags,
</span>   if test "$poststage1_libs" = ""; then
     poststage1_ldflags="-static-libstdc++ -static-libgcc"
   fi])
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -331,50 +1047,104 @@ index 8597748..72bd20f 100644
</span>  AC_SUBST(poststage1_ldflags)
  
  # GCC GRAPHITE dependency isl.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1931,7 +1945,41 @@ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   *) host_shared=no ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  esac])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Check whether --enable-pie-tools was given.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Checked early because it can affect host make fragments.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_ARG_ENABLE(pie-tools,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[AS_HELP_STRING([--enable-pie-tools],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  [build Position Independent Executables for the compilers and other tools])],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[enable_pie_tools=$enableval
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ case $target in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   aarch64-*-darwin1[[1-9]]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     if test x$enable_pie_tools != xyes ; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       echo configure.ac: warning: aarch64-darwin must use PIE, pie-tools setting ignored. 1>&2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       enable_pie_tools=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       host_shared=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1912,6 +1928,36 @@ AC_ARG_ENABLE(linker-plugin-flags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   extra_linker_plugin_flags=)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(extra_linker_plugin_flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Handle --enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# If host PIE executables are the default (or must be forced on) for some host,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# we must pass that configuration to the gcc directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_host_pie=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build position independent host executables])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[host_pie=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     if test x$host_pie != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       # for Darwin20+ this is required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       AC_MSG_WARN([PIE executables are required for the configured host, host-pie setting ignored.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       host_pie=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       gcc_host_pie=--enable-host-pie
</span> +     fi ;;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *) ;;
</span> + esac],
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+[case $target in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # PIE is the default for macOS 10.7+ so reflect that in the configure.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # However, we build 32b toolchains mdynamic-no-pic by default which is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  # not compatible with PIE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  x86_64-*-darwin1[[1-9]]* | *-*-darwin2*) enable_pie_tools=yes ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *) enable_pie_tools=no ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Default to PIE (mandatory for aarch64).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    host_pie=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_host_pie=--enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *) host_pie=no ;;
</span> + esac])
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+case $target in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if test x$enable_pie_tools = xyes && test x$host_shared != xyes ; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo configure.ac: warning: for Darwin PIE requires PIC code, switching host-shared on 1>&2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      host_shared=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    fi ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *) ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(host_pie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(gcc_host_pie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Checked early to determine whether jit is an 'all' language
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1922,17 +1968,55 @@ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    x86_64-*-darwin* | aarch64-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      if test x$host_shared != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # PIC is the default, and actually cannot be switched off.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       echo configure.ac: warning: PIC code is required for the configured target, host-shared setting ignored. 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       AC_MSG_WARN([PIC code is required for the configured host; host-shared setting ignored.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       host_shared=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     fi ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     if test x$host_pie = xyes -a x$host_shared != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       AC_MSG_WARN([PIC code is required for PIE host executables host-shared setting ignored.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        host_shared=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      fi ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  esac],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[case $target in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # 64B x86_64 and Aarch64 Darwin default to PIC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *) host_shared=no ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # 32B and powerpc64 Darwin must use PIC to link PIE exes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*-darwin*) host_shared=$host_pie ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *) host_shared=no;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  esac])
</span>  AC_SUBST(host_shared)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST([enable_pie_tools])
</span>  
<span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # Since host shared is the default for 64b Darwin, and also enabled for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # host_pie, ensure that we present the PIE flag when host_pie is active.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if test x$host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# If we are building PIC/PIE host executables, and we are building dependent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libs (e.g. GMP) in-tree those libs need to be configured to generate PIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++host_libs_picflag=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "$host_shared" = "yes" -o "$host_pie" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++host_libs_picflag='--with-pic'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(host_libs_picflag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span>  # By default, C and C++ are the only stage 1 languages.
  stage1_languages=,c,
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git contrib/compare-debug contrib/compare-debug
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index cf80ae3..678a897 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cf80ae32695..678a897c931 100755
</span> --- contrib/compare-debug
 +++ contrib/compare-debug
 @@ -60,9 +60,19 @@ trap 'rm -f "$1.$suf1" "$2.$suf2"' 0 1 2 15
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -400,34 +1170,137 @@ index cf80ae3..678a897 100755
</span>    ;;
  *)
    cp "$1" "$1.$suf1"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git fixincludes/Makefile.in fixincludes/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1937dcaa32d..e6ce41dba39 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- fixincludes/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ fixincludes/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -73,7 +73,7 @@ default : all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Now figure out from those variables how to compile and link.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .c.o:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(CC) -c $(CFLAGS) $(PICFLAG) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The only suffixes we want for implicit rules are .c and .o.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .SUFFIXES:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -87,7 +87,11 @@ default : all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ##
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ifeq ($(PICFLAG),)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBIBERTY=../libiberty/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBIBERTY=../libiberty/pic/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALLOBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fixlib.o fixopts.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,15 +111,15 @@ oneprocess : full-stamp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ twoprocess : test-stamp $(AF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ full-stamp : $(ALLOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(CC) $(CFLAGS) $(PICFLAG) $(LDFLAGS) $(LD_PICFLAG) -o $(FI) $(ALLOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(STAMP) $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test-stamp : $(TESTOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(CC) $(CFLAGS) $(PICFLAG) $(LDFLAGS) $(LD_PICFLAG) -o $(FI) $(TESTOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(STAMP) $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(AF): $(FIXOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(FIXOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(CC) $(CFLAGS) $(PICFLAG) $(LDFLAGS) $(LD_PICFLAG) -o $@ $(FIXOBJ) $(LIBIBERTY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(ALLOBJ)   : $(HDR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fixincl.o   : fixincl.c  $(srcdir)/fixincl.x
</span> diff --git fixincludes/configure fixincludes/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0d5cd69..bdcc41f 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0d5cd6967ca..5d1db193a50 100755
</span> --- fixincludes/configure
 +++ fixincludes/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2644,7 +2644,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -623,6 +623,8 @@ ac_subst_vars='LTLIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ get_gcc_base_ver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LD_PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_noncanonical
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ WERROR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -695,6 +697,7 @@ enable_option_checking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_werror_always
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_local_prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_twoprocess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gcc_major_version_only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1323,6 +1326,7 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-werror-always  enable -Werror despite compiler version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-twoprocess       Use a separate process to apply the fixes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build host code as PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-maintainer-mode enable make rules and dependencies not useful
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           (and sometimes confusing) to the casual installer
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # _LT_DARWIN_LINKER_FEATURES
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # --------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Checks for linker and compiler features on darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Checks for linker and compiler features on Darwin / macOS / iOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3044,7 +3048,6 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the compiler configuration to `libtool'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # _LT_LANG_CXX_CONFIG
</span>  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ---------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Figure out "hidden" library dependencies from verbose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4835,6 +4838,15 @@ $as_echo "#define SEPARATE_FIX_PROC 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # _LT_SYS_MODULE_PATH_AIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie; PICFLAG=-fPIE; LD_PICFLAG=-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   vax-dec-bsd* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git fixincludes/configure.ac fixincludes/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ef2227e3c93..4e78511d20f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- fixincludes/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ fixincludes/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,6 +68,14 @@ if test $TARGET = twoprocess; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             [Define if testing and fixing are done by separate process])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       [build host code as PIE])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[PICFLAG=-fPIE; LD_PICFLAG=-pie], [])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(LD_PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   vax-dec-bsd* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           AC_DEFINE(exit, xexit, [Define to xexit if the host system does not support atexit])
</span> diff --git fixincludes/fixincl.x fixincludes/fixincl.x
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index bad4904..efaedff 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0bc8eb049a3..2e810ba92e1 100644
</span> --- fixincludes/fixincl.x
 +++ fixincludes/fixincl.x
 @@ -2,11 +2,11 @@
   *
   * DO NOT EDIT THIS FILE   (fixincl.x)
   *
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- * It has been AutoGen-ed  February 27, 2022 at 07:47:03 PM by AutoGen 5.18.16
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * It has been AutoGen-ed  May  6, 2023 at 09:12:07 AM by AutoGen 5.18.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * It has been AutoGen-ed  March 30, 2024 at 04:03:59 PM by AutoGen 5.18.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * It has been AutoGen-ed  June  9, 2024 at 09:57:56 AM by AutoGen 5.18.7
</span>   * From the definitions    inclhack.def
   * and the template file   fixincl
   */
<span style='display:block; white-space:pre;background:#ffe0e0;'>--/* DO NOT SVN-MERGE THIS FILE, EITHER Sun Feb 27 19:47:03 UTC 2022
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* DO NOT SVN-MERGE THIS FILE, EITHER Sat May  6 09:12:07 BST 2023
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* DO NOT SVN-MERGE THIS FILE, EITHER Sat Mar 30 16:03:59 GMT 2024
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* DO NOT SVN-MERGE THIS FILE, EITHER Sun Jun  9 09:57:56 BST 2024
</span>   *
   * You must regenerate it.  Use the ./genfixes script.
   *
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -435,308 +1308,322 @@ index bad4904..efaedff 100644
</span>   * certain ANSI-incompatible system header files which are fixed to work
   * correctly with ANSI C and placed in a directory that GNU C will search.
   *
<span style='display:block; white-space:pre;background:#ffe0e0;'>-- * This file contains 267 fixup descriptions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * This file contains 269 fixup descriptions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * This file contains 269 fixup descriptions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file contains 267 fixup descriptions.
</span>   *
   * See README for more information.
   *
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2610,6 +2610,46 @@ int vfscanf(FILE *, const char *, __builtin_va_list) __asm__ (_BSD_STRING(__USER
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -267,56 +267,6 @@ static const char* apzAab_Darwin7_9_Long_Double_FuncsPatch[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* __MATH__ */",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (char*)NULL };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* * * * * * * * * * * * * * * * * * * * * * * * * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  Description of Darwin_Api_Availability fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC zDarwin_Api_AvailabilityName[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     "darwin_api_availability";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  File name selection pattern
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC zDarwin_Api_AvailabilityList[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  "os/availability.h\0";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  Machine/OS name selection pattern
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC* apzDarwin_Api_AvailabilityMachs[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "*-*-darwin*",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        (const char*)NULL };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  content selection pattern - do fix if pattern found
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC zDarwin_Api_AvailabilitySelect0[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       " *#define __API_AVAILABLE.*\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *#define __API_DEPRECATED.*\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *#define __API_DEPRECATED_WITH_REPLACEMENT.*\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *#define __API_UNAVAILABLE.*\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  content bypass pattern - skip fix if pattern found
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC zDarwin_Api_AvailabilityBypass0[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       "__IPHONE_OS_VERSION_MIN_REQUIRED";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define    DARWIN_API_AVAILABILITY_TEST_CT  2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static tTestDesc aDarwin_Api_AvailabilityTests[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  { TT_NEGREP,   zDarwin_Api_AvailabilityBypass0, (regex_t*)NULL },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  { TT_EGREP,    zDarwin_Api_AvailabilitySelect0, (regex_t*)NULL }, };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  Fix Command Arguments for Darwin_Api_Availability
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static const char* apzDarwin_Api_AvailabilityPatch[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "format",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "    #define API_AVAILABLE(...)\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #define API_DEPRECATED(...)\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #define API_DEPRECATED_WITH_REPLACEMENT(...)\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #define API_UNAVAILABLE(...)\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (char*)NULL };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span>  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  Description of Apple_Local_Stdio_Fn_Deprecation fix
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+tSCC zApple_Local_Stdio_Fn_DeprecationName[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     "apple_local_stdio_fn_deprecation";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  File name selection pattern
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+tSCC zApple_Local_Stdio_Fn_DeprecationList[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  "stdio.h\0";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  Machine/OS name selection pattern
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+tSCC* apzApple_Local_Stdio_Fn_DeprecationMachs[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        "*-*-*darwin2*",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        (const char*)NULL };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  content selection pattern - do fix if pattern found
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+tSCC zApple_Local_Stdio_Fn_DeprecationSelect0[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       "__deprecated_msg([^\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+]*)$";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define    APPLE_LOCAL_STDIO_FN_DEPRECATION_TEST_CT  1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static tTestDesc aApple_Local_Stdio_Fn_DeprecationTests[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { TT_EGREP,    zApple_Local_Stdio_Fn_DeprecationSelect0, (regex_t*)NULL }, };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  Fix Command Arguments for Apple_Local_Stdio_Fn_Deprecation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static const char* apzApple_Local_Stdio_Fn_DeprecationPatch[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    "format",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    "#if defined(__APPLE_LOCAL_DEPRECATIONS)\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%0\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (char*)NULL };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* * * * * * * * * * * * * * * * * * * * * * * * * *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *  Description of Ctrl_Quotes_Def fix
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- tSCC zCtrl_Quotes_DefName[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3046,6 +3086,53 @@ static const char* apzDarwin_Os_Trace_2Patch[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *  Description of Aab_Fd_Zero_Asm_Posix_Types_H fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2763,51 +2713,6 @@ extern \"C\" {\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     (char*)NULL };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* * * * * * * * * * * * * * * * * * * * * * * * * *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  Description of Darwin_Availabilityinternal fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC zDarwin_AvailabilityinternalName[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     "darwin_availabilityinternal";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  File name selection pattern
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC zDarwin_AvailabilityinternalList[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  "AvailabilityInternal.h\0";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  Machine/OS name selection pattern
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC* apzDarwin_AvailabilityinternalMachs[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        "*-*-darwin*",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        (const char*)NULL };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  content selection pattern - do fix if pattern found
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tSCC zDarwin_AvailabilityinternalSelect0[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       "#define[ \t]+(__API_[ADU]\\([^)]*\\)).*";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define    DARWIN_AVAILABILITYINTERNAL_TEST_CT  1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static tTestDesc aDarwin_AvailabilityinternalTests[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  { TT_EGREP,    zDarwin_AvailabilityinternalSelect0, (regex_t*)NULL }, };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  Fix Command Arguments for Darwin_Availabilityinternal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static const char* apzDarwin_AvailabilityinternalPatch[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "format",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "#if defined(__has_attribute)\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #if __has_attribute(availability)\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%0\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #else\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #define %1\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #endif\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #define %1\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (char*)NULL };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span>  /* * * * * * * * * * * * * * * * * * * * * * * * * *
   *
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  Description of Darwin_Objc_Runtime_1 fix
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+tSCC zDarwin_Objc_Runtime_1Name[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     "darwin_objc_runtime_1";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  File name selection pattern
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+tSCC zDarwin_Objc_Runtime_1List[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  "objc/runtime.h\0";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  Machine/OS name selection pattern
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+tSCC* apzDarwin_Objc_Runtime_1Machs[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        "*-*-darwin2*",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        (const char*)NULL };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  content selection pattern - do fix if pattern found
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+tSCC zDarwin_Objc_Runtime_1Select0[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       "OBJC_EXPORT void.*\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+objc_enumerateClasses.*\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.*\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.*\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.*\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.*void \\(\\^ _Nonnull block.*\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.*\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.*\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+.*OBJC_REFINED_FOR_SWIFT.*";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define    DARWIN_OBJC_RUNTIME_1_TEST_CT  1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static tTestDesc aDarwin_Objc_Runtime_1Tests[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { TT_EGREP,    zDarwin_Objc_Runtime_1Select0, (regex_t*)NULL }, };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  Fix Command Arguments for Darwin_Objc_Runtime_1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static const char* apzDarwin_Objc_Runtime_1Patch[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    "format",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    "#if __BLOCKS__\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+%0\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    (char*)NULL };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* * * * * * * * * * * * * * * * * * * * * * * * * *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *  Description of Darwin_Os_Trace_3 fix
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- tSCC zDarwin_Os_Trace_3Name[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10872,9 +10959,9 @@ static const char* apzX11_SprintfPatch[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *  Description of Darwin_9_Long_Double_Funcs_2 fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10959,9 +10864,9 @@ static const char* apzX11_SprintfPatch[] = {
</span>   *
   *  List of all fixes
   */
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#define REGEX_COUNT          305
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define REGEX_COUNT          307
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define REGEX_COUNT          307
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define REGEX_COUNT          304
</span>  #define MACH_LIST_SIZE_LIMIT 187
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#define FIX_COUNT            267
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define FIX_COUNT            269
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *  Enumerate the fixes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10941,6 +11028,7 @@ typedef enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     BROKEN_CABS_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     BROKEN_NAN_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     BSD_STDIO_ATTRS_CONFLICT_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    APPLE_LOCAL_STDIO_FN_DEPRECATION_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     CTRL_QUOTES_DEF_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     CTRL_QUOTES_USE_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     CXX_UNREADY_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10952,6 +11040,7 @@ typedef enum {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DARWIN_LONGJMP_NORETURN_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DARWIN_OS_TRACE_1_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DARWIN_OS_TRACE_2_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    DARWIN_OBJC_RUNTIME_1_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DARWIN_OS_TRACE_3_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DARWIN_OS_BASE_1_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     DARWIN_DISPATCH_OBJECT_1_FIXIDX,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11455,6 +11544,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      aBsd_Stdio_Attrs_ConflictTests,   apzBsd_Stdio_Attrs_ConflictPatch, 0 },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {  zApple_Local_Stdio_Fn_DeprecationName,    zApple_Local_Stdio_Fn_DeprecationList,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     apzApple_Local_Stdio_Fn_DeprecationMachs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     APPLE_LOCAL_STDIO_FN_DEPRECATION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     aApple_Local_Stdio_Fn_DeprecationTests,   apzApple_Local_Stdio_Fn_DeprecationPatch, 0 },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {  zCtrl_Quotes_DefName,    zCtrl_Quotes_DefList,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      apzCtrl_Quotes_DefMachs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11510,6 +11604,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      DARWIN_OS_TRACE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      aDarwin_Os_Trace_2Tests,   apzDarwin_Os_Trace_2Patch, 0 },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {  zDarwin_Objc_Runtime_1Name,    zDarwin_Objc_Runtime_1List,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     apzDarwin_Objc_Runtime_1Machs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     DARWIN_OBJC_RUNTIME_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     aDarwin_Objc_Runtime_1Tests,   apzDarwin_Objc_Runtime_1Patch, 0 },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {  zDarwin_Os_Trace_3Name,    zDarwin_Os_Trace_3List,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      apzDarwin_Os_Trace_3Machs,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      DARWIN_OS_TRACE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git fixincludes/inclhack.def fixincludes/inclhack.def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7605ac8..96cfaa4 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- fixincludes/inclhack.def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ fixincludes/inclhack.def
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1269,6 +1269,18 @@ fix = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     test_text = '#define  vfscanf __svfscanf';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fix = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    hackname  = apple_local_stdio_fn_deprecation;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    mach      = "*-*-*darwin2*";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    files     = stdio.h;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    select    = "__deprecated_msg([^\n]*)$";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    c_fix     = format;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    c_fix_arg = "#if defined(__APPLE_LOCAL_DEPRECATIONS)\n"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                "%0\n"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                "#endif";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    test_text = '__deprecated_msg("This function is provided for compat...")';
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *  Fix various macros used to define ioctl numbers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *  The traditional syntax was:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1480,6 +1492,41 @@ fix = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ *  macOSX 13.0 SDK objc/runtime.h uses Apple Blocks extension without a guard.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fix = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  hackname  = darwin_objc_runtime_1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  mach      = "*-*-darwin2*";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  files     = objc/runtime.h;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  select    =   <<- _EOSelect_
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  OBJC_EXPORT void.*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  objc_enumerateClasses.*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  .*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  .*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  .*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  .*void \(\^ _Nonnull block.*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  .*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  .*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  .*OBJC_REFINED_FOR_SWIFT.*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  _EOSelect_;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  c_fix     = format;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  c_fix_arg = "#if __BLOCKS__\n%0\n#endif";
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  test_text = <<- _OBJC_RUNTIME_1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+OBJC_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+objc_enumerateClasses(const void * _Nullable image,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      const char * _Nullable namePrefix,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      Protocol * _Nullable conformingTo,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      Class _Nullable subclassing,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      void (^ _Nonnull block)(Class _Nonnull aClass, BOOL * _Nonnull stop)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      OBJC_NOESCAPE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+OBJC_AVAILABLE(13.0, 16.0, 16.0, 9.0, 7.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+OBJC_REFINED_FOR_SWIFT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+_OBJC_RUNTIME_1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+};
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *  In Mac OS X 10.1[012] <os/trace.h>, need to guard users of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *  os_trace_payload_t typedef, too.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git fixincludes/tests/base/objc/runtime.h fixincludes/tests/base/objc/runtime.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-new file mode 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..8b4855b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- /dev/null
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ fixincludes/tests/base/objc/runtime.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/*  DO NOT EDIT THIS FILE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    It has been auto-edited by fixincludes from:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  "fixinc/tests/inc/objc/runtime.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    This had to be done to correct non-standard usages in the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    original, manufacturer supplied header file.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined( DARWIN_OBJC_RUNTIME_1_CHECK )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if __BLOCKS__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+OBJC_EXPORT void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+objc_enumerateClasses(const void * _Nullable image,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      const char * _Nullable namePrefix,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      Protocol * _Nullable conformingTo,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      Class _Nullable subclassing,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      void (^ _Nonnull block)(Class _Nonnull aClass, BOOL * _Nonnull stop)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                      OBJC_NOESCAPE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+OBJC_AVAILABLE(13.0, 16.0, 16.0, 9.0, 7.0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+OBJC_REFINED_FOR_SWIFT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif  /* DARWIN_OBJC_RUNTIME_1_CHECK */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git fixincludes/tests/base/stdio.h fixincludes/tests/base/stdio.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 491c75d..38381ba 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- fixincludes/tests/base/stdio.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ fixincludes/tests/base/stdio.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -41,6 +41,13 @@ int vfscanf(FILE *, const char *, __builtin_va_list) __asm__ (_BSD_STRING(__USER
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif  /* BSD_STDIO_ATTRS_CONFLICT_CHECK */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define FIX_COUNT            269
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FIX_COUNT            267
</span>  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *  Enumerate the fixes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10970,7 +10875,6 @@ typedef enum {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AAB_AIX_STDIO_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AAB_AIX_FCNTL_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    DARWIN_API_AVAILABILITY_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AAB_FD_ZERO_ASM_POSIX_TYPES_H_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AAB_FD_ZERO_GNU_TYPES_H_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AAB_FD_ZERO_SELECTBITS_H_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11032,7 +10936,6 @@ typedef enum {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CTRL_QUOTES_DEF_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CTRL_QUOTES_USE_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CXX_UNREADY_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    DARWIN_AVAILABILITYINTERNAL_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DARWIN_9_LONG_DOUBLE_FUNCS_2_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DARWIN_EXTERNC_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DARWIN_GCC4_BREAKAGE_FIXIDX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11254,11 +11157,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      AAB_DARWIN7_9_LONG_DOUBLE_FUNCS_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      aAab_Darwin7_9_Long_Double_FuncsTests,   apzAab_Darwin7_9_Long_Double_FuncsPatch, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {  zDarwin_Api_AvailabilityName,    zDarwin_Api_AvailabilityList,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     apzDarwin_Api_AvailabilityMachs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     DARWIN_API_AVAILABILITY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     aDarwin_Api_AvailabilityTests,   apzDarwin_Api_AvailabilityPatch, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {  zAab_Fd_Zero_Asm_Posix_Types_HName,    zAab_Fd_Zero_Asm_Posix_Types_HList,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      apzAab_Fd_Zero_Asm_Posix_Types_HMachs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      AAB_FD_ZERO_ASM_POSIX_TYPES_H_TEST_CT, FD_MACH_ONLY | FD_REPLACEMENT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11564,11 +11462,6 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      CXX_UNREADY_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      aCxx_UnreadyTests,   apzCxx_UnreadyPatch, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {  zDarwin_AvailabilityinternalName,    zDarwin_AvailabilityinternalList,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     apzDarwin_AvailabilityinternalMachs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     DARWIN_AVAILABILITYINTERNAL_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     aDarwin_AvailabilityinternalTests,   apzDarwin_AvailabilityinternalPatch, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {  zDarwin_9_Long_Double_Funcs_2Name,    zDarwin_9_Long_Double_Funcs_2List,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      apzDarwin_9_Long_Double_Funcs_2Machs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      DARWIN_9_LONG_DOUBLE_FUNCS_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git fixincludes/inclhack.def fixincludes/inclhack.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 31a21c2a66d..c4ab0dd4ff6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- fixincludes/inclhack.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ fixincludes/inclhack.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -194,33 +194,6 @@ fix = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   _EndOfHeader_;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined( APPLE_LOCAL_STDIO_FN_DEPRECATION_CHECK )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__APPLE_LOCAL_DEPRECATIONS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+__deprecated_msg("This function is provided for compat...")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif  /* APPLE_LOCAL_STDIO_FN_DEPRECATION_CHECK */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #if defined( HPUX10_STDIO_DECLARATIONS_CHECK )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #  define _iob __iob
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  SDKs for 10.13 and 10.14 omit the definitions for API_AVAILABLE where
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  __attribute__((availability)) is not supported.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-fix = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    hackname  = darwin_api_availability;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    mach      = "*-*-darwin*";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    files     = os/availability.h;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bypass    = "__IPHONE_OS_VERSION_MIN_REQUIRED";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    select    =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    " *#define __API_AVAILABLE.*\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    " *#define __API_DEPRECATED.*\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    " *#define __API_DEPRECATED_WITH_REPLACEMENT.*\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    " *#define __API_UNAVAILABLE.*\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    c_fix     = format;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    c_fix_arg =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "    #define API_AVAILABLE(...)\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "    #define API_DEPRECATED(...)\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "    #define API_DEPRECATED_WITH_REPLACEMENT(...)\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "    #define API_UNAVAILABLE(...)\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    test_text =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "#define __API_AVAILABLE(...)\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "#define __API_DEPRECATED(...)\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "#define __API_DEPRECATED_WITH_REPLACEMENT(...)\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "#define __API_UNAVAILABLE(...)\n";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *  This fixes __FD_ZERO bug for linux 2.x.y (x <= 2 && y <= some n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1350,32 +1323,6 @@ fix = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     test_text = "extern void* malloc( size_t );";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span>  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  macOS 10.12 <AvailabilityInternal.h> uses __attribute__((availability))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *  unconditionally.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-fix = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    hackname  = darwin_availabilityinternal;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    mach      = "*-*-darwin*";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    files     = AvailabilityInternal.h;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    select    = "#define[ \t]+(__API_[ADU]\\([^)]*\\)).*";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    c_fix     = format;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    c_fix_arg = <<- _EOFix_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #if defined(__has_attribute)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #if __has_attribute(availability)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      #define %1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      #define %1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  _EOFix_;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    test_text = "#define __API_A(x) __attribute__((availability(__API_AVAILABLE_PLATFORM_##x)))\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          "#define __API_D(msg,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg)))";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *  For the AAB_darwin7_9_long_double_funcs fix (and later fixes for long long)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *  to be useful, the main math.h must use <> and not "" includes.
</span> diff --git gcc/Makefile.in gcc/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 31ff955..255a10c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 31ff95500c9..3bfaeebdbd2 100644
</span> --- gcc/Makefile.in
 +++ gcc/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -270,11 +270,15 @@ COMPILER += $(CET_HOST_FLAGS)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NO_PIE_CFLAGS = @NO_PIE_CFLAGS@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NO_PIE_FLAG = @NO_PIE_FLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -155,6 +155,9 @@ LDFLAGS = @LDFLAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Should we build position-independent host code?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PICFLAG = @PICFLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The linker flag for the above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LD_PICFLAG = @LD_PICFLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Flags to determine code coverage. When coverage is disabled, this will
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # contain the optimization flags, as you normally want code coverage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # without optimization.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -263,18 +266,17 @@ LINKER = $(CC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LINKER_FLAGS = $(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>--# We don't want to compile the compilers with -fPIE, it make PCH fail.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ifneq (@enable_pie_tools@,yes)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Build and link the compilers and tools without PIE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- COMPILER += $(NO_PIE_CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie = @enable_host_pie@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable Intel CET on Intel CET enabled host if needed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CET_HOST_FLAGS = @CET_HOST_FLAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ COMPILER += $(CET_HOST_FLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-NO_PIE_CFLAGS = @NO_PIE_CFLAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-NO_PIE_FLAG = @NO_PIE_FLAG@
</span> -
<span style='display:block; white-space:pre;background:#e0ffe0;'>+-# We don't want to compile the compilers with -fPIE, it make PCH fail.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-COMPILER += $(NO_PIE_CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Maybe compile the compilers with -fPIE or -fPIC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++COMPILER += $(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> -# Link with -no-pie since we compile the compiler with -fno-PIE.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- LINKER += $(NO_PIE_FLAG)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# FIXME these need to be configured.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+COMPILER += -fPIE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LINKER += -pie
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LINKER += $(NO_PIE_FLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Link with -pie, or -no-pie, depending on the above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LINKER += $(LD_PICFLAG)
</span>  
  # Like LINKER, but use a mutex for serializing front end links.
  ifeq (@DO_LINK_MUTEX@,true)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -407,6 +411,7 @@ ifeq ($(enable_plugin),yes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1036,7 +1038,7 @@ RTL_SSA_H = $(PRETTY_PRINT_H) insn-config.h splay-tree-utils.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # programs built during a bootstrap.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # autoconf inserts -DCROSS_DIRECTORY_STRUCTURE if we are building a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # cross compiler which does not use the native headers and libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-INTERNAL_CFLAGS = -DIN_GCC $(PICFLAG) @CROSS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++INTERNAL_CFLAGS = -DIN_GCC @CROSS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This is the variable actually used when we compile. If you change this,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # you probably want to update BUILD_CFLAGS in configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1054,21 +1056,24 @@ ALL_CXXFLAGS = $(T_CFLAGS) $(CFLAGS-$@) $(CXXFLAGS) $(INTERNAL_CFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALL_CPPFLAGS = $(INCLUDES) $(CPPFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This is the variable to use when using $(COMPILER).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ALL_COMPILERFLAGS = $(ALL_CXXFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ALL_COMPILERFLAGS = $(ALL_CXXFLAGS) $(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This is the variable to use when using $(LINKER).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ALL_LINKERFLAGS = $(ALL_CXXFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ALL_LINKERFLAGS = $(ALL_CXXFLAGS) $(LD_PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Build and host support libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Use the "pic" build of libiberty if --enable-host-shared, unless we are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# building for mingw.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Use the "pic" build of libiberty if --enable-host-shared or --enable-host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# unless we are building for mingw.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBIBERTY_PICDIR=$(if $(findstring mingw,$(target)),,pic)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ifeq ($(enable_host_shared),yes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ifneq ($(enable_host_shared)$(enable_host_pie),)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBIBERTY = ../libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBIBERTY = ../libiberty/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ifeq ($(enable_host_shared),yes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/$(LIBIBERTY_PICDIR)/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BUILD_LIBIBERTY = $(build_libobjdir)/libiberty/libiberty.a
</span>  endif
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_host_shared = @enable_host_shared@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_default_pie = @enable_default_pie@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_as_accelerator = @enable_as_accelerator@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span> @@ -1153,6 +1158,8 @@ LANG_MAKEFRAGS = @all_lang_makefrags@
  # Used by gcc/jit/Make-lang.in
  LD_VERSION_SCRIPT_OPTION = @ld_version_script_option@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -766,14 +1653,14 @@ index 31ff955..255a10c 100644
</span>     echo "set COMPAT_OPTIONS \"$(COMPAT_OPTIONS)\"" >> ./site.tmp; \
        else true; \
        fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       @if test "x@enable_darwin_at_rpath@" = "xyes" ; then \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  @if test "X@ENABLE_DARWIN_AT_RPATH_TRUE@" != "X#" ; then \
</span> +   echo "set ENABLE_DARWIN_AT_RPATH 1" >> ./site.tmp; \
 +      fi
        @echo "## All variables above are generated by configure. Do Not Edit ##" >> ./site.tmp
        @cat ./site.tmp > site.exp
        @cat site.bak | sed \
 diff --git gcc/aclocal.m4 gcc/aclocal.m4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6be36df..126e09b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6be36df5190..126e09bbcd1 100644
</span> --- gcc/aclocal.m4
 +++ gcc/aclocal.m4
 @@ -12,6 +12,56 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -834,7 +1721,7 @@ index 6be36df..126e09b 100644
</span>  m4_include([../ltoptions.m4])
  m4_include([../ltsugar.m4])
 diff --git gcc/ada/Makefile.rtl gcc/ada/Makefile.rtl
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index aaf853e..b202183 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index aaf853e3a2a..b20218310f3 100644
</span> --- gcc/ada/Makefile.rtl
 +++ gcc/ada/Makefile.rtl
 @@ -2822,6 +2822,15 @@ ifeq ($(strip $(filter-out darwin%,$(target_os))),)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -853,11 +1740,96 @@ index aaf853e..b202183 100644
</span>    GNATLIB_SHARED = gnatlib-shared-darwin
    GMEM_LIB = gmemlib
    LIBRARY_VERSION := $(LIB_VERSION)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ada/gcc-interface/Make-lang.in gcc/ada/gcc-interface/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a8d8899d3c9..73c4367539a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ada/gcc-interface/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ada/gcc-interface/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -74,7 +74,8 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALL_ADAFLAGS = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) $(CHECKING_ADAFLAGS) $(WARN_ADAFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) $(CHECKING_ADAFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(WARN_ADAFLAGS) $(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FORCE_DEBUG_ADAFLAGS = -g
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ADA_CFLAGS =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ COMMON_ADA_INCLUDES = -I- -I. -Iada/generated -Iada -I$(srcdir)/ada
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -260,11 +261,20 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ifneq ($(filter darwin9% darwin8%,$(host_os)),)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# gnat1 uses exceptions which is incompatible with statically-linked libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# on Darwin8 and 9, since gnat1 also pulls in libraries linked with the system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# unwinder.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC_LINKERFLAGS = $(filter-out -Werror -static-libgcc, $(ALL_LINKERFLAGS))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC_LDFLAGS = $(filter-out -static-libgcc, $(LDFLAGS))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Strip -Werror during linking for the LTO bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC_LDFLAGS = $(LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) $(LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(GCC_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Lists of files for various purposes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1095,7 +1105,7 @@ ada/b_gnat1.adb : $(GNAT1_ADA_OBJS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ada/b_gnat1.o : ada/b_gnat1.adb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Do not use ADAFLAGS to get rid of -gnatg which generates a lot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # of style messages.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(CC) -c $(CFLAGS) $(ADA_CFLAGS) -gnatp -gnatws $(ADA_INCLUDES) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(CC) -c $(CFLAGS) $(ADA_CFLAGS) $(PICFLAG) -gnatp -gnatws $(ADA_INCLUDES) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       $< $(ADA_OUTPUT_OPTION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1104,7 +1114,7 @@ ada/b_gnatb.adb : $(GNATBIND_OBJS) ada/gnatbind.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(MV) b_gnatb.adb b_gnatb.ads ada/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ada/b_gnatb.o : ada/b_gnatb.adb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(CC) -c $(CFLAGS) $(ADA_CFLAGS) -gnatp -gnatws $(ADA_INCLUDES) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(CC) -c $(CFLAGS) $(ADA_CFLAGS) $(PICFLAG) -gnatp -gnatws $(ADA_INCLUDES) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       $< $(ADA_OUTPUT_OPTION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include $(srcdir)/ada/Make-generated.in
</span> diff --git gcc/ada/gcc-interface/Makefile.in gcc/ada/gcc-interface/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1e9801a..0ab3960 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1e9801a8b96..bd59e49152b 100644
</span> --- gcc/ada/gcc-interface/Makefile.in
 +++ gcc/ada/gcc-interface/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -795,14 +795,15 @@ gnatlib-shared-darwin:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -91,6 +91,7 @@ LS = ls
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RANLIB = @RANLIB@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RANLIB_FLAGS = @ranlib_flags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AWK = @AWK@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PICFLAG = @PICFLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ COMPILER = $(CC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ COMPILER_FLAGS = $(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -239,7 +240,11 @@ ALL_CPPFLAGS = $(CPPFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALL_COMPILERFLAGS = $(ALL_CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This is where we get libiberty.a from.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ifeq ($(PICFLAG),)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBIBERTY = ../../libiberty/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBIBERTY = ../../libiberty/pic/libiberty.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We need to link against libbacktrace because diagnostic.c in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # libcommon.a uses it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -256,9 +261,6 @@ TOOLS_LIBS = ../version.o ../link.o ../targext.o ../../ggc-none.o \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(LIBGNAT) $(LIBINTL) $(LIBICONV) ../$(LIBBACKTRACE) ../$(LIBIBERTY) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(SYSLIBS) $(TGT_LIB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Add -no-pie to TOOLS_LIBS since some of them are compiled with -fno-PIE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-TOOLS_LIBS += @NO_PIE_FLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Specify the directories to be searched for header files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Both . and srcdir are used, in that order,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # so that tm.h and config.h will be found in the compilation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -795,14 +797,15 @@ gnatlib-shared-darwin:
</span>           -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
                $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
                $(SO_OPTS) \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -876,7 +1848,7 @@ index 1e9801a..0ab3960 100644
</span>           $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
        cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
                libgnat$(soext)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -811,6 +812,7 @@ gnatlib-shared-darwin:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -811,6 +814,7 @@ gnatlib-shared-darwin:
</span>   cd $(RTSDIR); $(DSYMUTIL_FOR_TARGET) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
        cd $(RTSDIR); $(DSYMUTIL_FOR_TARGET) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -884,21 +1856,330 @@ index 1e9801a..0ab3960 100644
</span>  gnatlib-shared:
        $(MAKE) $(FLAGS_TO_PASS) \
               GNATLIBFLAGS="$(GNATLIBFLAGS)" \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ada/init.c gcc/ada/init.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6b6ed5fb058..e95948021b4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ada/init.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ada/init.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2473,7 +2473,10 @@ __gnat_map_signal (int sig, siginfo_t *si, void *mcontext ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* Reset the use of alt stack, so that the alt stack will be used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    for the next signal delivery.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    The stack can't be used in case of stack checking.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma GCC diagnostic push
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       syscall (SYS_sigreturn, NULL, UC_RESET_ALT_STACK);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma GCC diagnostic pop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case SIGFPE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/builtins.cc gcc/builtins.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f91947020b6..c4bab4cf1fd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/builtins.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/builtins.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5189,6 +5189,12 @@ expand_builtin_trap (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ expand_builtin_unreachable (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* If the target wants a trap in place of the fall-through, use that.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (targetm.unreachable_should_trap ())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      expand_builtin_trap ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   emit_barrier ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7611,6 +7617,10 @@ expand_builtin (tree exp, rtx target, rtx subtarget, machine_mode mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case BUILT_IN_ADJUST_DESCRIPTOR:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return expand_builtin_adjust_descriptor (exp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case BUILT_IN_GCC_NESTED_PTR_CREATED:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case BUILT_IN_GCC_NESTED_PTR_DELETED:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break; /* At present, no expansion, just call the function.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case BUILT_IN_FORK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case BUILT_IN_EXECL:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case BUILT_IN_EXECV:
</span> diff --git gcc/builtins.def gcc/builtins.def
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 005976f..e2cd65e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 005976f34e9..acd3df6d215 100644
</span> --- gcc/builtins.def
 +++ gcc/builtins.def
 @@ -950,6 +950,8 @@ DEF_BUILTIN_STUB (BUILT_IN_ADJUST_TRAMPOLINE, "__builtin_adjust_trampoline")
  DEF_BUILTIN_STUB (BUILT_IN_INIT_DESCRIPTOR, "__builtin_init_descriptor")
  DEF_BUILTIN_STUB (BUILT_IN_ADJUST_DESCRIPTOR, "__builtin_adjust_descriptor")
  DEF_BUILTIN_STUB (BUILT_IN_NONLOCAL_GOTO, "__builtin_nonlocal_goto")
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+DEF_BUILTIN_STUB (BUILT_IN_NESTED_PTR_CREATED, "__builtin_nested_func_ptr_created")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DEF_BUILTIN_STUB (BUILT_IN_NESTED_PTR_DELETED, "__builtin_nested_func_ptr_deleted")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_CREATED, "__gcc_nested_func_ptr_created", BT_FN_VOID_PTR_PTR_PTR, ATTR_NOTHROW_LIST)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEF_EXT_LIB_BUILTIN (BUILT_IN_GCC_NESTED_PTR_DELETED, "__gcc_nested_func_ptr_deleted", BT_FN_VOID, ATTR_NOTHROW_LIST)
</span>  
  /* Implementing __builtin_setjmp.  */
  DEF_BUILTIN_STUB (BUILT_IN_SETJMP_SETUP, "__builtin_setjmp_setup")
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c-family/c-attribs.cc gcc/c-family/c-attribs.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 88f026336c9..98183051949 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c-family/c-attribs.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c-family/c-attribs.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -593,6 +593,18 @@ attribute_takes_identifier_p (const_tree attr_id)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return targetm.attribute_takes_identifier_p (attr_id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Returns TRUE iff the attribute indicated by ATTR_ID needs its
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   arguments converted to string constants.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++attribute_clang_form_p (const_tree attr_id)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const struct attribute_spec *spec = lookup_attribute_spec (attr_id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (spec && !strcmp ("availability", spec->name))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Verify that argument value POS at position ARGNO to attribute NAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    applied to function TYPE refers to a function parameter at position
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    POS and the expected type CODE.  Treat CODE == INTEGER_TYPE as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c-family/c-common.cc gcc/c-family/c-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 94bef24220b..867cf15412b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c-family/c-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c-family/c-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -309,6 +309,44 @@ const struct fname_var_t fname_vars[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {NULL, 0, 0},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Flags to restrict availability of generic features that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   are known to __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  HF_FLAG_NONE = 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  HF_FLAG_EXT = 1,        /* Available only as an extension.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  HF_FLAG_SANITIZE = 2, /* Availability depends on sanitizer flags.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Info for generic features which can be queried through
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct hf_feature_info
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *ident;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned flags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned mask;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Table of generic features which can be queried through
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static constexpr hf_feature_info has_feature_table[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "address_sanitizer",            HF_FLAG_SANITIZE, SANITIZE_ADDRESS },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "thread_sanitizer",             HF_FLAG_SANITIZE, SANITIZE_THREAD },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "leak_sanitizer",               HF_FLAG_SANITIZE, SANITIZE_LEAK },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "hwaddress_sanitizer",          HF_FLAG_SANITIZE, SANITIZE_HWADDRESS },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "undefined_behavior_sanitizer", HF_FLAG_SANITIZE, SANITIZE_UNDEFINED },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "attribute_deprecated_with_message",  HF_FLAG_NONE, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "attribute_unavailable_with_message", HF_FLAG_NONE, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "enumerator_attributes",              HF_FLAG_NONE, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "tls",                                HF_FLAG_NONE, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "gnu_asm_goto_with_outputs",          HF_FLAG_EXT, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "gnu_asm_goto_with_outputs_full",     HF_FLAG_EXT, 0 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Global visibility options.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct visibility_flags visibility_options;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9486,4 +9524,63 @@ c_common_finalize_early_debug (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       (*debug_hooks->early_global_decl) (cnode->decl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Map from identifiers to booleans.  Value is true for features, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   false for extensions.  Used to implement __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++using feature_map_t = hash_map <tree, bool>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static feature_map_t *feature_map;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Register a feature for __has_{feature,extension}.  FEATURE_P is true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   if the feature identified by NAME is a feature (as opposed to an
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   extension).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_common_register_feature (const char *name, bool feature_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool dup = feature_map->put (get_identifier (name), feature_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_checking_assert (!dup);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Lazily initialize hash table for __has_{feature,extension},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   dispatching to the appropriate front end to register language-specific
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   features.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++init_has_feature ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_checking_assert (!feature_map);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  feature_map = new feature_map_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (unsigned i = 0; i < ARRAY_SIZE (has_feature_table); i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      const hf_feature_info *info = has_feature_table + i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if ((info->flags & HF_FLAG_SANITIZE) && !(flag_sanitize & info->mask))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      const bool feature_p = !(info->flags & HF_FLAG_EXT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      c_common_register_feature (info->ident, feature_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Register language-specific features.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  c_family_register_lang_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* If STRICT_P is true, evaluate __has_feature (IDENT).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   Otherwise, evaluate __has_extension (IDENT).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++has_feature_p (const char *ident, bool strict_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!feature_map)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    init_has_feature ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree name = canonicalize_attr_name (get_identifier (ident));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool *feat_p = feature_map->get (name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!feat_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return !strict_p || *feat_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "gt-c-family-c-common.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c-family/c-common.h gcc/c-family/c-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3d5b9c40e6b..dff0d14ecb2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c-family/c-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c-family/c-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1068,6 +1068,14 @@ extern bool c_cpp_diagnostic (cpp_reader *, enum cpp_diagnostic_level,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      ATTRIBUTE_GCC_DIAG(5,0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern int c_common_has_attribute (cpp_reader *, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern int c_common_has_builtin (cpp_reader *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern int c_common_has_feature (cpp_reader *, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implemented by each front end in *-lang.cc.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void c_family_register_lang_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implemented in c-family/c-common.cc.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void c_common_register_feature (const char *, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern bool has_feature_p (const char *, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern bool parse_optimize_options (tree, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1470,6 +1478,7 @@ extern void warn_for_multistatement_macros (location_t, location_t,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* In c-attribs.cc.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern bool attribute_takes_identifier_p (const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree handle_deprecated_attribute (tree *, tree, tree, int, bool *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern bool attribute_clang_form_p (const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree handle_unused_attribute (tree *, tree, tree, int, bool *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree handle_fallthrough_attribute (tree *, tree, tree, int, bool *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern int parse_tm_stmt_attr (tree, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c-family/c-lex.cc gcc/c-family/c-lex.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bd48bfc88e0..62a41f334dd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c-family/c-lex.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c-family/c-lex.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -82,6 +82,7 @@ init_c_lex (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->read_pch = c_common_read_pch;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->has_attribute = c_common_has_attribute;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->has_builtin = c_common_has_builtin;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cb->has_feature = c_common_has_feature;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->get_source_date_epoch = cb_get_source_date_epoch;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->get_suggestion = cb_get_suggestion;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->remap_filename = remap_macro_filename;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -441,16 +442,16 @@ c_common_has_attribute (cpp_reader *pfile, bool std_syntax)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Callback for has_builtin.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Helper for __has_{builtin,feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-c_common_has_builtin (cpp_reader *pfile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_common_lex_availability_macro (cpp_reader *pfile, const char *builtin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const cpp_token *token = get_token_no_padding (pfile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (token->type != CPP_OPEN_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       cpp_error (pfile, CPP_DL_ERROR,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           "missing '(' after \"__has_builtin\"");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           "missing '(' after \"__has_%s\"", builtin);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -470,7 +471,7 @@ c_common_has_builtin (cpp_reader *pfile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       cpp_error (pfile, CPP_DL_ERROR,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           "macro \"__has_builtin\" requires an identifier");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           "macro \"__has_%s\" requires an identifier", builtin);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (token->type == CPP_CLOSE_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -489,9 +490,38 @@ c_common_has_builtin (cpp_reader *pfile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Callback for has_builtin.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_common_has_builtin (cpp_reader *pfile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *name = c_common_lex_availability_macro (pfile, "builtin");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return names_builtin_p (name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Callback for has_feature.  STRICT_P is true for has_feature and false
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   for has_extension.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_common_has_feature (cpp_reader *pfile, bool strict_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *builtin = strict_p ? "feature" : "extension";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *name = c_common_lex_availability_macro (pfile, builtin);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* If -pedantic-errors is given, __has_extension is equivalent to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     __has_feature.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  strict_p |= flag_pedantic_errors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return has_feature_p (name, strict_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Read a token and return its type.  Fill *VALUE with its value, if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    applicable.  Fill *CPP_FLAGS with the token's flags, if it is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -523,6 +553,21 @@ c_lex_with_flags (tree *value, location_t *loc, unsigned char *cpp_flags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case CPP_NUMBER:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* If the user wants number-like entities to be returned as a raw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     string, then don't try to classify them, which emits unwanted
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     diagnostics.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (lex_flags & C_LEX_NUMBER_AS_STRING)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* build_string adds a trailing NUL at [len].  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tree num_string = build_string (tok->val.str.len + 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                      (const char *) tok->val.str.text);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      TREE_TYPE (num_string) = char_array_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      *value = num_string;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* We will effectively note this as CPP_N_INVALID, because we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         made no checks here.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const char *suffix = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unsigned int flags = cpp_classify_number (parse_in, tok, &suffix, *loc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git gcc/c-family/c-opts.cc gcc/c-family/c-opts.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a341a06..b584a05 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a341a061758..b584a05c935 100644
</span> --- gcc/c-family/c-opts.cc
 +++ gcc/c-family/c-opts.cc
 @@ -1068,7 +1068,7 @@ c_common_post_options (const char **pfilename)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -910,8 +2191,268 @@ index a341a06..b584a05 100644
</span>   {
          /* Lazy TLS initialization for a variable in another TU requires
             alias and weak reference support.  */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c-family/c-ppoutput.cc gcc/c-family/c-ppoutput.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9de46a9655f..9aa8aeadf9c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c-family/c-ppoutput.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c-family/c-ppoutput.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -152,6 +152,7 @@ init_pp_output (FILE *out_stream)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->has_attribute = c_common_has_attribute;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->has_builtin = c_common_has_builtin;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cb->has_feature = c_common_has_feature;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->get_source_date_epoch = cb_get_source_date_epoch;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cb->remap_filename = remap_macro_filename;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c-family/c-pragma.h gcc/c-family/c-pragma.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 54864c2ec41..78bb5fe2943 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c-family/c-pragma.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c-family/c-pragma.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -256,6 +256,9 @@ extern enum cpp_ttype pragma_lex (tree *, location_t *loc = NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define C_LEX_STRING_NO_JOIN        2 /* Do not concatenate strings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                  nor translate them into execution
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                  character set.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define C_LEX_NUMBER_AS_STRING      4 /* Do not classify a number, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 instead return it as a raw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                 string.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* This is not actually available to pragma parsers.  It's merely a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    convenient location to declare this function for c-lex, after
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c-family/c.opt gcc/c-family/c.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 07da40ef43b..d2c4700e1b6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c-family/c.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c-family/c.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1443,6 +1443,10 @@ Wsubobject-linkage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C++ ObjC++ Var(warn_subobject_linkage) Warning Init(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Warn if a class type has a base or a field whose type uses the anonymous namespace or depends on a type with no linkage.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Welaborated-enum-base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++C++ ObjC++ Var(warn_elaborated_enum_base) Warning Init(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Warn if an additional enum-base is used in an elaborated-type-specifier.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Wduplicate-decl-specifier
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C ObjC Var(warn_duplicate_decl_specifier) Warning LangEnabledBy(C ObjC,Wall)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Warn when a declaration has duplicate const, volatile, restrict or _Atomic specifier.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1885,7 +1889,7 @@ Implement resolution of DR 150 for matching of template template arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fnext-runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ObjC ObjC++ LTO RejectNegative Var(flag_next_runtime)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Generate code for NeXT (Apple Mac OS X) runtime environment.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Generate code for NeXT (Apple macOS) runtime environment.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fnil-receivers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ObjC ObjC++ Var(flag_nil_receivers) Init(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c/c-lang.cc gcc/c/c-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eecc0a07137..72b5962dbf2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c/c-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c/c-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,6 +49,15 @@ enum c_language_kind c_language = clk_c;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Each front end provides its own lang hook initializer.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implement c-family hook to register language-specific features for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_family_register_lang_features ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  c_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if CHECKING_P
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace selftest {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c/c-objc-common.cc gcc/c/c-objc-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cba01f4d5f3..ecf3a9628f1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c/c-objc-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c/c-objc-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,6 +34,38 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool c_tree_printer (pretty_printer *, text_info *, const char *,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                       int, bool, bool, bool, bool *, const char **);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Info for C language features which can be queried through
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct c_feature_info
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *ident;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const int *enable_flag;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const c_feature_info c_feature_table[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "c_alignas", &flag_isoc11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "c_alignof", &flag_isoc11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "c_atomic", &flag_isoc11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "c_generic_selections", &flag_isoc11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "c_static_assert", &flag_isoc11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "c_thread_local", &flag_isoc11 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Register features specific to the C language.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_register_features ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (unsigned i = 0; i < ARRAY_SIZE (c_feature_table); i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      const c_feature_info *info = c_feature_table + i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      const bool feat_p = !info->enable_flag || *info->enable_flag;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      c_common_register_feature (info->ident, feat_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c_missing_noreturn_ok_p (tree decl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c/c-objc-common.h gcc/c/c-objc-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0b60df9750f..6d2f2dd8a09 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c/c-objc-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c/c-objc-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,6 +21,9 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef GCC_C_OBJC_COMMON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define GCC_C_OBJC_COMMON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implemented in c-objc-common.cc.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void c_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Lang hooks that are shared between C and ObjC are defined here.  Hooks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    specific to C or ObjC go in c-lang.cc and objc/objc-lang.cc, respectively.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c/c-parser.cc gcc/c/c-parser.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 78a313fe31e..cf423a964ee 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c/c-parser.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c/c-parser.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -202,6 +202,9 @@ struct GTY(()) c_parser {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      should translate them to the execution character set (false
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      inside attributes).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   BOOL_BITFIELD translate_strings_p : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* True if we want to lex arbitrary number-like sequences as their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     string representation.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  BOOL_BITFIELD lex_number_as_string : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Objective-C specific parser/lexer information.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -276,10 +279,10 @@ c_lex_one_token (c_parser *parser, c_token *token, bool raw = false)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (raw || vec_safe_length (parser->raw_tokens) == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      int lex_flags = parser->lex_joined_string ? 0 : C_LEX_STRING_NO_JOIN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      lex_flags |= parser->lex_number_as_string ? C_LEX_NUMBER_AS_STRING : 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       token->type = c_lex_with_flags (&token->value, &token->location,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                &token->flags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                (parser->lex_joined_string
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                 ? 0 : C_LEX_STRING_NO_JOIN));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                &token->flags, lex_flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       token->id_kind = C_ID_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       token->keyword = RID_MAX;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       token->pragma_kind = PRAGMA_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4561,6 +4564,88 @@ c_parser_gnu_attribute_any_word (c_parser *parser)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return attr_name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Handle parsing clang-form attribute arguments, where we need to adjust
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   the parsing rules to relate to a specific attribute.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static tree
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_parser_clang_attribute_arguments (c_parser *parser, tree /*attr_id*/)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* We can, if required, alter the parsing on the basis of the attribute.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     At present, we handle the availability attr, where ach entry can be :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  identifier
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  identifier=N.MM.Z
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  identifier="string"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  followed by ',' or ) for the last entry*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree attr_args = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tree name = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tree value = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (c_parser_next_token_is (parser, CPP_NAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    && c_parser_peek_token (parser)->id_kind == C_ID_ID)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    name = c_parser_peek_token (parser)->value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    c_parser_consume_token (parser);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (c_parser_next_token_is (parser, CPP_COMMA))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  name = error_mark_node; /* Comma handled below.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool saved_join_state = parser->lex_joined_string;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parser->lex_number_as_string = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parser->lex_joined_string = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                               "expected an attribute keyword");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parser->lex_number_as_string = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parser->lex_joined_string = saved_join_state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return error_mark_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (c_parser_next_token_is (parser, CPP_EQ))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    c_parser_consume_token (parser); /* eat the '=' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* We need to bludgeon the lexer into not trying to interpret the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       xx.yy.zz form, since that just looks like a malformed float.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       Also, as a result of macro processing, we can have strig literals
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       that are in multiple pieces so, for this specific part of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       parse, we need to join strings.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    bool saved_join_state = parser->lex_joined_string;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parser->lex_number_as_string = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parser->lex_joined_string = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* So look at the next token, expecting a string, or something that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       looks initially like a number, but might be a version number.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    c_parser_peek_token (parser);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* Done with the funky number parsing.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parser->lex_number_as_string = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    parser->lex_joined_string = saved_join_state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        && c_parser_next_token_is_not (parser, CPP_COMMA))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        value = c_parser_peek_token (parser)->value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        /* ???: check for error mark and early-return?  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        c_parser_consume_token (parser);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* else value is absent.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         && c_parser_next_token_is_not (parser, CPP_COMMA))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    c_parser_skip_until_found (parser, CPP_CLOSE_PAREN,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                               "expected %<,%> or %<=%>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return error_mark_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (c_parser_next_token_is (parser, CPP_COMMA))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      c_parser_consume_token (parser); /* Just skip the comma.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    tree t = tree_cons (value, name, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!attr_args)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      attr_args = t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      chainon (attr_args, t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } while (c_parser_next_token_is_not (parser, CPP_CLOSE_PAREN));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return attr_args;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Parse attribute arguments.  This is a common form of syntax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    covering all currently valid GNU and standard attributes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4707,9 +4792,13 @@ c_parser_gnu_attribute (c_parser *parser, tree attrs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       attrs = chainon (attrs, attr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return attrs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  c_parser_consume_token (parser);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  c_parser_consume_token (parser); /* The '('.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tree attr_args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree attr_args;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (attribute_clang_form_p (attr_name))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    attr_args = c_parser_clang_attribute_arguments (parser, attr_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    attr_args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     = c_parser_attribute_arguments (parser,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               attribute_takes_identifier_p (attr_name),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               false, true);
</span> diff --git gcc/calls.cc gcc/calls.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4d0bc45..208648a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4d0bc45be28..95463b14d23 100644
</span> --- gcc/calls.cc
 +++ gcc/calls.cc
 @@ -1355,7 +1355,8 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -924,7 +2465,25 @@ index 4d0bc45..208648a 100644
</span>        if (pass_by_reference (args_so_far_pnt, arg))
        {
          const bool callee_copies
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1528,6 +1529,7 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1475,10 +1476,13 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       unsignedp = TYPE_UNSIGNED (type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       arg.type = type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      arg.mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  = promote_function_mode (type, TYPE_MODE (type), &unsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                           fndecl ? TREE_TYPE (fndecl) : fntype, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      arg.mode = TYPE_MODE (type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//      arg.mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//        = promote_function_mode (type, TYPE_MODE (type), &unsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                                 fndecl ? TREE_TYPE (fndecl) : fntype, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      arg.mode = promote_function_mode (args_so_far, arg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  fndecl ? TREE_TYPE (fndecl) : fntype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  &unsignedp, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       args[i].unsignedp = unsignedp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       args[i].mode = arg.mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1528,6 +1532,7 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
</span>  #endif
                             reg_parm_stack_space,
                             args[i].pass_on_stack ? 0 : args[i].partial,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -932,7 +2491,15 @@ index 4d0bc45..208648a 100644
</span>                        fndecl, args_size, &args[i].locate);
  #ifdef BLOCK_REG_PADDING
        else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4215,6 +4217,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4030,6 +4035,7 @@ split_complex_types (tree types)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return types;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void debug_tree (tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Output a library call to function ORGFUN (a SYMBOL_REF rtx)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    for a value of mode OUTMODE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    with NARGS different arguments, passed as ARGS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4215,6 +4221,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
</span>                      argvec[count].reg != 0,
  #endif
                           reg_parm_stack_space, 0,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -940,7 +2507,26 @@ index 4d0bc45..208648a 100644
</span>                      NULL_TREE, &args_size, &argvec[count].locate);
  
        if (argvec[count].reg == 0 || argvec[count].partial != 0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4306,6 +4309,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4285,8 +4292,16 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     val = force_operand (XEXP (slot, 0), NULL_RTX);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      arg.mode = promote_function_mode (NULL_TREE, arg.mode, &unsigned_p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                  NULL_TREE, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//      arg.mode = promote_function_mode (NULL_TREE, arg.mode, &unsigned_p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                                        NULL_TREE, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tree t = arg.type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (t)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  debug_tree (t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_assert (!t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      arg.type = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      arg.mode = promote_function_mode (args_so_far, arg, NULL_TREE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  &unsigned_p, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      arg.type = t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       argvec[count].mode = arg.mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       argvec[count].value = convert_modes (arg.mode, GET_MODE (val), val,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                      unsigned_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4306,6 +4321,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
</span>                          argvec[count].reg != 0,
  #endif
                               reg_parm_stack_space, argvec[count].partial,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -949,7 +2535,7 @@ index 4d0bc45..208648a 100644
</span>     args_size.constant += argvec[count].locate.size.constant;
          gcc_assert (!argvec[count].locate.size.var);
 diff --git gcc/calls.h gcc/calls.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index fd7836e..a2a4f85 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fd7836e481d..a2a4f85e23e 100644
</span> --- gcc/calls.h
 +++ gcc/calls.h
 @@ -35,24 +35,43 @@ class function_arg_info
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1010,22 +2596,119 @@ index fd7836e..a2a4f85 100644
</span>    /* True if we have decided to pass the argument by reference, in which case
       the function_arg_info describes a pointer to the original argument.  */
    unsigned int pass_by_reference : 1;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/common.opt gcc/common.opt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8a0dafc..7feb463 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/common.opt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/common.opt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2173,6 +2173,10 @@ foffload-abi=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Common Joined RejectNegative Enum(offload_abi)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -foffload-abi=[lp64|ilp32]        Set the ABI to use in an offload compiler.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/collect2.cc gcc/collect2.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d81c7f28f16..d5af65def40 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/collect2.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/collect2.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -73,7 +73,7 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    In a cross-compiler, this means you need a cross nm,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    but that is not quite as unpleasant as special headers.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if !defined (OBJECT_FORMAT_COFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined (OBJECT_FORMAT_COFF) && !defined (OBJECT_FORMAT_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define OBJECT_FORMAT_NONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +107,7 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* OBJECT_FORMAT_COFF */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef OBJECT_FORMAT_NONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (OBJECT_FORMAT_NONE) || defined (OBJECT_FORMAT_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Default flags to pass to nm.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef NM_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -525,7 +525,7 @@ static const char *const target_machine = TARGET_MACHINE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Return 0 if not found, otherwise return its name, allocated with malloc.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef OBJECT_FORMAT_NONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (OBJECT_FORMAT_NONE) || defined (OBJECT_FORMAT_MACHO)
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+foff-stack-trampolines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Common RejectNegative Var(flag_off_stack_trampolines) Init(OFF_STACK_TRAMPOLINES_INIT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Generate trampolines in executable memory rather than executable stack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Add an entry for the object file NAME to object file list LIST.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    New entries are added at the end of the list. The original pointer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -764,6 +764,12 @@ do_link (char **ld_argv, const char *atsuffix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (OBJECT_FORMAT_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define LLD_NAME "ld64.lld"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define LLD_NAME "ld.lld"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>- Enum
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Main program.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -777,16 +783,19 @@ main (int argc, char **argv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       USE_BFD_LD,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       USE_LLD_LD,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       USE_MOLD_LD,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      USE_CLASSIC_LD,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       USE_LD_MAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } selected_linker = USE_DEFAULT_LD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   static const char *const ld_suffixes[USE_LD_MAX] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       "ld",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       PLUGIN_LD_SUFFIX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       "ld.gold",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       "ld.bfd",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      "ld.lld",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      "ld.mold"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      LLD_NAME,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      "ld.mold",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      "ld-classic"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   static const char *const real_ld_suffix = "real-ld";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   static const char *const collect_ld_suffix = "collect-ld";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -953,14 +962,22 @@ main (int argc, char **argv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (selected_linker == USE_DEFAULT_LD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         selected_linker = USE_PLUGIN_LD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined (OBJECT_FORMAT_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (strcmp (argv[i], "-fuse-ld=bfd") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     selected_linker = USE_BFD_LD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (strcmp (argv[i], "-fuse-ld=gold") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     selected_linker = USE_GOLD_LD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (strcmp (argv[i], "-fuse-ld=lld") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     selected_linker = USE_LLD_LD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (strcmp (argv[i], "-fuse-ld=mold") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     selected_linker = USE_MOLD_LD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (OBJECT_FORMAT_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (strcmp (argv[i], "-fuse-ld=classic") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    selected_linker = USE_CLASSIC_LD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (strcmp (argv[i], "-fuse-ld=") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     selected_linker = USE_DEFAULT_LD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (startswith (argv[i], "-o"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* Parse the output filename if it's given so that we can make
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1052,7 +1069,8 @@ main (int argc, char **argv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ld_file_name = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef DEFAULT_LINKER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (selected_linker == USE_BFD_LD || selected_linker == USE_GOLD_LD ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      selected_linker == USE_LLD_LD || selected_linker == USE_MOLD_LD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      selected_linker == USE_LLD_LD || selected_linker == USE_MOLD_LD ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      selected_linker == USE_CLASSIC_LD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       char *linker_name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ifdef HOST_EXECUTABLE_SUFFIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2266,7 +2284,7 @@ write_aix_file (FILE *stream, struct id *list)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef OBJECT_FORMAT_NONE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (OBJECT_FORMAT_NONE) || defined (OBJECT_FORMAT_MACHO)
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2733,6 +2737,10 @@ fstack-usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check to make sure the file is an LTO object file.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/common.opt gcc/common.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8a0dafc522d..fdcfdebd1fb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/common.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/common.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2733,6 +2733,10 @@ fstack-usage
</span>  Common RejectNegative Var(flag_stack_usage)
  Output stack usage information on a per-function basis.
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1036,57 +2719,145 @@ index 8a0dafc..7feb463 100644
</span>  fstrength-reduce
  Common Ignore
  Does nothing.  Preserved for backward compatibility.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2801,7 +2809,7 @@ Common Var(flag_tracer) Optimization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2801,10 +2805,25 @@ Common Var(flag_tracer) Optimization
</span>  Perform superblock formation via tail duplication.
  
  ftrampolines
 -Common Var(flag_trampolines) Init(0)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+Common Var(flag_trampolines) Init(OFF_STACK_TRAMPOLINES_INIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Common Var(flag_trampolines) Init(HEAP_TRAMPOLINES_INIT)
</span>  For targets that normally need trampolines for nested functions, always
  generate them instead of using descriptors.
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>++ftrampoline-impl=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Common Joined RejectNegative Enum(trampoline_impl) Var(flag_trampoline_impl) Init(HEAP_TRAMPOLINES_INIT ? TRAMPOLINE_IMPL_HEAP : TRAMPOLINE_IMPL_STACK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Whether trampolines are generated in executable memory rather than
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++executable stack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Enum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Name(trampoline_impl) Type(enum trampoline_impl) UnknownError(unknown trampoline implementation %qs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EnumValue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Enum(trampoline_impl) String(stack) Value(TRAMPOLINE_IMPL_STACK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EnumValue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Enum(trampoline_impl) String(heap) Value(TRAMPOLINE_IMPL_HEAP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ; Zero means that floating-point math operations cannot generate a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ; (user-visible) trap.  This is the case, for example, in nonstop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ; IEEE 754 arithmetic.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3058,6 +3077,10 @@ fuse-ld=mold
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Common Driver Negative(fuse-ld=mold)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Use the Modern linker (MOLD) linker instead of the default linker.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fuse-ld=classic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Common Driver Negative(fuse-ld=classic)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Use the ld-classic linker instead of the default linker.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fuse-linker-plugin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Common Undocumented Var(flag_use_linker_plugin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/common/config/aarch64/aarch64-common.cc gcc/common/config/aarch64/aarch64-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dfda5b8372a..074557edd50 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/common/config/aarch64/aarch64-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/common/config/aarch64/aarch64-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -421,6 +421,7 @@ aarch64_get_extension_string_for_isa_flags (uint64_t isa_flags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       we just mask all default bits away at the end.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    isa_flag_bits &= ~default_arch_flags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef DISABLE_AARCH64_AS_CRC_BUGFIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    /* We now have the smallest set of features we need to process.  A subsequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       linear scan of the bits in isa_flag_bits will allow us to print the ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       names.  However as a special case if CRC was enabled before, always print
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -432,6 +433,7 @@ aarch64_get_extension_string_for_isa_flags (uint64_t isa_flags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       issue, so we don't need this fix when targeting Armv8-R.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if ((isa_flags & AARCH64_ISA_CRC) && !AARCH64_ISA_V8_R)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     isa_flag_bits |= AARCH64_ISA_CRC;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Pass Two:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      Print the option names that we're sure we must turn on.  These are only
</span> diff --git gcc/config.gcc gcc/config.gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5c378c6..f4887bb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5c378c698ff..196225955ba 100644
</span> --- gcc/config.gcc
 +++ gcc/config.gcc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1089,6 +1089,23 @@ case ${target} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1089,6 +1089,26 @@ case ${target} in
</span>    ;;
  esac
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Defaults that need fixing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Figure out if we need to enable heap trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# and variadic functions handling.
</span> +case ${target} in
 +aarch64*-*-darwin2*)
<span style='display:block; white-space:pre;background:#e0ffe0;'>++  # This applies to arm64 Darwin variadic funtions.
</span> +  tm_defines="$tm_defines STACK_USE_CUMULATIVE_ARGS_INIT=1"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  tm_defines="$tm_defines OFF_STACK_TRAMPOLINES_INIT=1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Executable stack is forbidden.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tm_defines="$tm_defines HEAP_TRAMPOLINES_INIT=1"
</span> +  ;;
 +*-*-darwin2*)
 +  tm_defines="$tm_defines STACK_USE_CUMULATIVE_ARGS_INIT=0"
 +  # Currently, we do this for macOS 11 and above.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  tm_defines="$tm_defines OFF_STACK_TRAMPOLINES_INIT=1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tm_defines="$tm_defines HEAP_TRAMPOLINES_INIT=1"
</span> +  ;;
 +*)
 +  tm_defines="$tm_defines STACK_USE_CUMULATIVE_ARGS_INIT=0"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  tm_defines="$tm_defines OFF_STACK_TRAMPOLINES_INIT=0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tm_defines="$tm_defines HEAP_TRAMPOLINES_INIT=0"
</span> +  ;;
 +esac
 +
  case ${target} in
  aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
        tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1127,6 +1144,11 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1127,6 +1147,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
</span>   done
        TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
        ;;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+aarch64-*-darwin* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64-*-darwin*)
</span> + tm_file="${tm_file} aarch64/aarch64-errata.h"
 +      tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-darwin"
 +      tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++       tm_defines="${tm_defines} DISABLE_AARCH64_AS_CRC_BUGFIX=1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Choose a default CPU version that will work for all current releases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  with_cpu=${with_cpu:-apple-m1}
</span> + ;;
  aarch64*-*-freebsd*)
        tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
        tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4177,8 +4205,8 @@ case "${target}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           for which in cpu arch tune; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   eval "val=\$with_$which"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  base_val=`echo $val | sed -e 's/\+.*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  base_val=`echo $val | sed -E -e 's/\+.*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ext_val=`echo $val | sed -E -e 's/[a-z0-9.-]+//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if [ $which = arch ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     def=aarch64-arches.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4237,9 +4265,9 @@ case "${target}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     while [ x"$ext_val" != x ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          ext_val=`echo $ext_val | sed -e 's/\+//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          ext=`echo $ext_val | sed -e 's/\+.*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          base_ext=`echo $ext | sed -e 's/^no//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ext_val=`echo $ext_val | sed -E -e 's/\+//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ext=`echo $ext_val | sed -E -e 's/\+.*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          base_ext=`echo $ext | sed -E -e 's/^no//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           opt_line=`echo -e "$options_parsed" | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   grep "^\"$base_ext\""`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4268,7 +4296,7 @@ case "${target}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             echo "Unknown extension used in --with-$which=$val" 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ext_val=`echo $ext_val | sed -E -e 's/[a-z0-9]+//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     ext_mask="(("$ext_mask") << TARGET_CPU_NBITS)"
</span> diff --git gcc/config.in gcc/config.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 64c27c9..5cd26ca 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 52f496ca5de..80dfff17b74 100644
</span> --- gcc/config.in
 +++ gcc/config.in
 @@ -49,6 +49,19 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1109,49 +2880,51 @@ index 64c27c9..5cd26ca 100644
</span>  /* Define to enable the use of a default assembler. */
  #ifndef USED_FOR_TARGET
  #undef DEFAULT_ASSEMBLER
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -224,6 +237,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -628,15 +641,13 @@
</span>  #endif
  
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Define if you build Position Independent Executables for the compilers and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   other tools. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifndef USED_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#undef ENABLE_PIE_TOOLS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Define to enable plugin support. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Define if your Mac OS X assembler supports -mllvm -x86-pad-for-align=false.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Define if your macOS assembler supports -mllvm -x86-pad-for-align=false. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef USED_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Define if your Mac OS X assembler supports the -mmacos-version-min option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Define if your macOS assembler supports the -mmacos-version-min option. */
</span>  #ifndef USED_FOR_TARGET
<span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef ENABLE_PLUGIN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2208,6 +2228,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2250,6 +2261,12 @@
</span>  #endif
  
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Define which stat syscall is able to handle 64bit indodes. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Define to 1 if ld64 supports '-demangle'. */
</span> +#ifndef USED_FOR_TARGET
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#undef HOST_STAT_FOR_64BIT_INODES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef LD64_HAS_DEMANGLE
</span> +#endif
 +
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Define as const if the declaration of iconv() needs const. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Define to 1 if ld64 supports '-export_dynamic'. */
</span>  #ifndef USED_FOR_TARGET
<span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef ICONV_CONST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef LD64_HAS_EXPORT_DYNAMIC
</span> diff --git gcc/config/aarch64/aarch64-builtins.cc gcc/config/aarch64/aarch64-builtins.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 42276e7..8741d50 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 197b763658c..2f78fcf6b6c 100644
</span> --- gcc/config/aarch64/aarch64-builtins.cc
 +++ gcc/config/aarch64/aarch64-builtins.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -619,6 +619,10 @@ enum aarch64_builtins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -619,6 +619,8 @@ enum aarch64_builtins
</span>    AARCH64_RBIT,
    AARCH64_RBITL,
    AARCH64_RBITLL,
 +  /* OS-specific */
 +  AARCH64_BUILTIN_CFSTRING,
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  AARCH64_BUILTIN_HUGE_VALQ,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  AARCH64_BUILTIN_INFQ,
</span>    AARCH64_BUILTIN_MAX
  };
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -738,6 +742,9 @@ tree aarch64_fp16_ptr_type_node = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -738,6 +740,9 @@ tree aarch64_fp16_ptr_type_node = NULL_TREE;
</span>  tree aarch64_bf16_type_node = NULL_TREE;
  tree aarch64_bf16_ptr_type_node = NULL_TREE;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1161,7 +2934,7 @@ index 42276e7..8741d50 100644
</span>  /* Wrapper around add_builtin_function.  NAME is the name of the built-in
     function, TYPE is the function type, CODE is the function subcode
     (relative to AARCH64_BUILTIN_GENERAL), and ATTRS is the function
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1480,6 +1487,40 @@ aarch64_init_bf16_types (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1490,6 +1495,29 @@ aarch64_init_bf16_types (void)
</span>    aarch64_bf16_ptr_type_node = build_pointer_type (aarch64_bf16_type_node);
  }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1170,39 +2943,28 @@ index 42276e7..8741d50 100644
</span> +static void
 +aarch64_init_float128_types (void)
 +{
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  tree ftype, fndecl;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  /* Populate the float128 node if it is not already done so that the FEs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+     know it is available.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* The __float128 type.  The node has already been created as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     _Float128, so for C we only need to register the __float128 name for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     it.  For C++, we create a distinct type which will mangle differently
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     (g) vs. _Float128 (DF128_) and behave backwards compatibly.  */
</span> +  if (float128_type_node == NULL_TREE)
 +    {
 +      float128_type_node = make_node (REAL_TYPE);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      TYPE_PRECISION (float128_type_node) = 128;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      SET_TYPE_MODE (float128_type_node, TFmode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      TYPE_PRECISION (float128_type_node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  = TYPE_PRECISION (float128_type_node);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      SET_TYPE_MODE (float128_type_node, TYPE_MODE (float128_type_node));
</span> +      layout_type (float128_type_node);
 +    }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span> +  lang_hooks.types.register_builtin_type (float128_type_node, "__float128");
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  aarch64_float128_ptr_type_node = build_pointer_type (float128_type_node);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ftype = build_function_type_list (float128_type_node, NULL_TREE);
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  fndecl = aarch64_general_add_builtin ("__builtin_huge_valq", ftype,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                  AARCH64_BUILTIN_HUGE_VALQ);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  TREE_READONLY (fndecl) = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  aarch64_builtin_decls[AARCH64_BUILTIN_HUGE_VALQ] = fndecl;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  fndecl = aarch64_general_add_builtin ("__builtin_infq", ftype,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                  AARCH64_BUILTIN_INFQ);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  TREE_READONLY (fndecl) = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  aarch64_builtin_decls[AARCH64_BUILTIN_INFQ] = fndecl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  aarch64_float128_ptr_type_node = build_pointer_type (float128_type_node);
</span> +}
 +
 +
  /* Pointer authentication builtins that will become NOP on legacy platform.
     Currently, these builtins are for internal use only (libgcc EH unwinder).  */
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1767,8 +1808,9 @@ aarch64_general_init_builtins (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1778,8 +1806,9 @@ aarch64_general_init_builtins (void)
</span>    aarch64_init_fpsr_fpcr_builtins ();
  
    aarch64_init_fp16_types ();
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1213,8 +2975,8 @@ index 42276e7..8741d50 100644
</span>  
    {
      aarch64_simd_switcher simd;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1802,6 +1844,14 @@ aarch64_general_init_builtins (void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     aarch64_init_memtag_builtins ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1816,6 +1845,14 @@ aarch64_general_init_builtins (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     handle_arm_acle_h ();
</span>  }
  
 +void
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1224,31 +2986,32 @@ index 42276e7..8741d50 100644
</span> +  SUBTARGET_INIT_BUILTINS;
 +#endif
 +}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Implement TARGET_BUILTIN_DECL for the AARCH64_BUILTIN_GENERAL group.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- tree
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- aarch64_general_builtin_decl (unsigned code, bool)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2801,6 +2851,15 @@ aarch64_general_fold_builtin (unsigned int fcode, tree type,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (aarch64_fold_builtin_lane_check (args[0], args[1], args[2]))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return void_node;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      case AARCH64_BUILTIN_HUGE_VALQ:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      case AARCH64_BUILTIN_INFQ:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gcc_assert (n_args == 0);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    REAL_VALUE_TYPE inf;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    real_inf (&inf);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return build_real (type, inf);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Implement TARGET_BUILTIN_DECL for the AARCH64_BUILTIN_GENERAL group.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_general_builtin_decl (unsigned code, bool)
</span> diff --git gcc/config/aarch64/aarch64-c.cc gcc/config/aarch64/aarch64-c.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a4c4077..85efdca 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a4c407724a7..fdcb41b272e 100644
</span> --- gcc/config/aarch64/aarch64-c.cc
 +++ gcc/config/aarch64/aarch64-c.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -370,4 +370,8 @@ aarch64_register_pragmas (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -222,6 +222,16 @@ aarch64_cpu_cpp_builtins (cpp_reader *pfile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   aarch64_define_unconditional_macros (pfile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   aarch64_update_cpp_builtins (pfile);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      builtin_define ("__builtin_copysignq=__builtin_copysignf128");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      builtin_define ("__builtin_fabsq=__builtin_fabsf128");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      builtin_define ("__builtin_huge_valq=__builtin_huge_valf128");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      builtin_define ("__builtin_infq=__builtin_inff128");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      builtin_define ("__builtin_nanq=__builtin_nanf128");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      builtin_define ("__builtin_nansq=__builtin_nansf128");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Hook to validate the current #pragma GCC target and set the state, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -370,4 +380,8 @@ aarch64_register_pragmas (void)
</span>    targetm.check_builtin_call = aarch64_check_builtin_call;
  
    c_register_pragma ("GCC", "aarch64", aarch64_pragma_aarch64);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1257,8 +3020,31 @@ index a4c4077..85efdca 100644
</span> +  REGISTER_SUBTARGET_PRAGMAS ();
 +#endif
  }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/aarch64-cores.def gcc/config/aarch64/aarch64-cores.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 956afa70714..ee2d8c57c1e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64-cores.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64-cores.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -161,6 +161,18 @@ AARCH64_CORE("cortex-a76.cortex-a55",  cortexa76cortexa55, cortexa53, 8_2A,  AAR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Armv8-R Architecture Processors.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AARCH64_CORE("cortex-r82", cortexr82, cortexa53, 8R, AARCH64_FL_FOR_ARCH8_R, cortexa53, 0x41, 0xd15, -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Apple (A12 and M) cores.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   Apple implementer ID from xnu,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   guesses for part #, guesses for scheduler ident, generic_armv8_a for costs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   A12 seems mostly 8.3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   M1 seems to be 8.4 + extras (see comments in option-extensions about f16fml),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   M2 mostly 8.5 but with missing mandatory features.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   M3 is pretty much the same as M2.   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AARCH64_CORE("apple-a12", applea12, cortexa53, 8_3A,  AARCH64_FL_FOR_ARCH8_3, cortexa53, 0x61, 0x12, -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AARCH64_CORE("apple-m1", applem1, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_F16 | AARCH64_FL_SB | AARCH64_FL_SSBS, cortexa73, 0x61, 0x23, -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AARCH64_CORE("apple-m2", applem2, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_SB | AARCH64_FL_SSBS, cortexa73, 0x61, 0x23, -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AARCH64_CORE("apple-m3", applem3, cortexa57, 8_4A,  AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_SB | AARCH64_FL_SSBS, cortexa73, 0x61, 0x23, -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Armv9.0-A Architecture Processors.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Arm ('A') cores. */
</span> diff --git gcc/config/aarch64/aarch64-protos.h gcc/config/aarch64/aarch64-protos.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 475d174..7b1da1b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9d99a021379..6d8dc45ea3d 100644
</span> --- gcc/config/aarch64/aarch64-protos.h
 +++ gcc/config/aarch64/aarch64-protos.h
 @@ -108,6 +108,14 @@ enum aarch64_symbol_type
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1284,15 +3070,19 @@ index 475d174..7b1da1b 100644
</span>  bool aarch64_bitmask_imm (HOST_WIDE_INT val, machine_mode);
  unsigned HOST_WIDE_INT aarch64_and_split_imm1 (HOST_WIDE_INT val_in);
  unsigned HOST_WIDE_INT aarch64_and_split_imm2 (HOST_WIDE_INT val_in);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -915,6 +924,7 @@ void aarch64_expand_vector_init (rtx, rtx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void aarch64_sve_expand_vector_init (rtx, rtx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void aarch64_init_cumulative_args (CUMULATIVE_ARGS *, const_tree, rtx,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                              const_tree, unsigned, bool = false);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void aarch64_init_cumulative_incoming_args (CUMULATIVE_ARGS *, const_tree, rtx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void aarch64_init_expanders (void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void aarch64_init_simd_builtins (void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void aarch64_emit_call_insn (rtx);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -989,6 +999,7 @@ void aarch64_override_options_internal (struct gcc_options *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -793,7 +802,11 @@ bool aarch64_is_extend_from_extract (scalar_int_mode, rtx, rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool aarch64_is_long_call_p (rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool aarch64_is_noplt_call_p (rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool aarch64_label_mentioned_p (rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void aarch64_darwin_declare_function_name (FILE *, const char*, tree );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_declare_function_name (FILE *, const char*, tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_asm_output_alias (FILE *, const tree, const tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_asm_output_external (FILE *, tree, const char*);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool aarch64_legitimate_pic_operand_p (rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -990,6 +1003,7 @@ void aarch64_override_options_internal (struct gcc_options *);
</span>  
  const char *aarch64_general_mangle_builtin_type (const_tree);
  void aarch64_general_init_builtins (void);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1300,8 +3090,19 @@ index 475d174..7b1da1b 100644
</span>  tree aarch64_general_fold_builtin (unsigned int, tree, unsigned int, tree *);
  gimple *aarch64_general_gimple_fold_builtin (unsigned int, gcall *,
                                             gimple_stmt_iterator *);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/aarch64-tune.md gcc/config/aarch64/aarch64-tune.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2c1852c8fe6..859c52d2289 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64-tune.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64-tune.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; -*- buffer-read-only: t -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; Generated automatically by gentune.sh from aarch64-cores.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define_attr "tune"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,ts [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,ts [...]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   (const (symbol_ref "((enum attr_tune) aarch64_tune)")))
</span> diff --git gcc/config/aarch64/aarch64.cc gcc/config/aarch64/aarch64.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 226dc9d..13bb3cf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f8082c4035e..ef13e465ccd 100644
</span> --- gcc/config/aarch64/aarch64.cc
 +++ gcc/config/aarch64/aarch64.cc
 @@ -292,8 +292,10 @@ static bool aarch64_vfp_is_call_or_return_candidate (machine_mode,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1315,16 +3116,16 @@ index 226dc9d..13bb3cf 100644
</span>  static void aarch64_override_options_after_change (void);
  static bool aarch64_vector_mode_supported_p (machine_mode);
  static int aarch64_address_cost (rtx, machine_mode, addr_space_t, bool);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2794,6 +2796,9 @@ static const struct attribute_spec aarch64_attribute_table[] =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   { "Advanced SIMD type", 1, 1, false, true,  false, true,  NULL, NULL },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   { "SVE type",           3, 3, false, true,  false, true,  NULL, NULL },
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   { "SVE sizeless type",  0, 0, false, true,  false, true,  NULL, NULL },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2786,6 +2788,9 @@ static const struct attribute_spec aarch64_attribute_table[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        affects_type_identity, handler, exclude } */
</span> +#ifdef SUBTARGET_ATTRIBUTE_TABLE
 +  SUBTARGET_ATTRIBUTE_TABLE,
 +#endif
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   { NULL,                 0, 0, false, false, false, false, NULL, NULL }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   { "aarch64_vector_pcs", 0, 0, false, true,  true,  true,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     handle_aarch64_vector_pcs_attribute, NULL },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   { "arm_sve_vector_bits", 1, 1, false, true,  false, true,
</span> @@ -4010,7 +4015,7 @@ aarch64_hard_regno_mode_ok (unsigned regno, machine_mode mode)
        if (known_le (GET_MODE_SIZE (mode), 8))
        return true;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1416,6 +3217,15 @@ index 226dc9d..13bb3cf 100644
</span>  
  /* Given MODE and TYPE of a function argument, return the alignment in
     bits.  The idea is to suppress any stronger alignment requested by
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7316,7 +7344,7 @@ aarch64_function_arg_alignment (machine_mode mode, const_tree type,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (integer_zerop (TYPE_SIZE (type)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  gcc_assert (TYPE_MODE (type) == mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_assert (TARGET_MACHO || TYPE_MODE (type) == mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!AGGREGATE_TYPE_P (type))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span> @@ -7402,6 +7430,13 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
    gcc_assert (!alignment || abi_break < alignment);
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1438,7 +3248,7 @@ index 226dc9d..13bb3cf 100644
</span> +  if (TARGET_MACHO)
 +    /* Since we can pack things on the stack, we need the unrounded size.  */
 +    pcum->darwinpcs_stack_bytes = size;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span>    size = ROUND_UP (size, UNITS_PER_WORD);
  
    allocate_ncrn = (type) ? !(FLOAT_TYPE_P (type)) : !FLOAT_MODE_P (mode);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1453,9 +3263,9 @@ index 226dc9d..13bb3cf 100644
</span> +     so use this call directly.  */
 +  allocate_nvrn
 +    = aarch64_vfp_is_call_or_return_candidate (mode, type,
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                              &pcum->aapcs_vfp_rmode,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                         &nregs, &is_ha,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                         pcum->silent_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          &pcum->aapcs_vfp_rmode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          &nregs, &is_ha,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          pcum->silent_p);
</span> +#endif
    gcc_assert (!sve_p || !allocate_nvrn);
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1483,7 +3293,7 @@ index 226dc9d..13bb3cf 100644
</span>     return;
        }
        else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7530,10 +7588,18 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7530,14 +7588,24 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span>    /* C6 - C9.  though the sign and zero extension semantics are
       handled elsewhere.  This is the case where the argument fits
       entirely general registers.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1502,17 +3312,12 @@ index 226dc9d..13bb3cf 100644
</span>        /* C.8 if the argument has an alignment of 16 then the NGRN is
         rounded up to the next even number.  */
        if (nregs == 2
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7543,7 +7609,9 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        alignment nregs should be > 2 and therefore it should be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        passed by reference rather than value.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     && (aarch64_function_arg_alignment (mode, type, &abi_break)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        == 16 * BITS_PER_UNIT))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        == 16 * BITS_PER_UNIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     && ncrn % 2
</span> +   /* Darwin PCS deletes rule C.8.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         && !TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (warn_pcs_change && abi_break)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       inform (input_location, "parameter passing for argument of type "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    && !TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* The == 16 * BITS_PER_UNIT instead of >= 16 * BITS_PER_UNIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        comparison is there because for > 16 * BITS_PER_UNIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        alignment nregs should be > 2 and therefore it should be
</span> @@ -7589,8 +7657,8 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
            }
          pcum->aapcs_reg = par;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1551,7 +3356,7 @@ index 226dc9d..13bb3cf 100644
</span> + change nor the warning should fire here (i.e. we do not need to check
 +      if 16byte entities alter the stack size).  */
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+gcc_checking_assert (arg.named == pcum->named_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      gcc_checking_assert (arg.named == pcum->named_p);
</span> +      pcum->darwinpcs_arg_padding = BITS_PER_UNIT;
 +      if (!pcum->named_p
 +        || TREE_CODE (type) == COMPLEX_TYPE
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1594,7 +3399,7 @@ index 226dc9d..13bb3cf 100644
</span> +    not add any stack space.  */
 +      pcum->darwinpcs_sub_word_offset = new_off;
 +      pcum->darwinpcs_sub_word_pos = new_pos;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      pcum->darwinpcs_arg_boundary = align;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      pcum->darwinpcs_arg_boundary = align ;
</span> +      if (pcum->last_named_p && new_pos > 0)
 +      {
 +        /* Round the last named arg to the start of the next stack slot.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1663,9 +3468,9 @@ index 226dc9d..13bb3cf 100644
</span> +      pcum->darwinpcs_arg_boundary = BITS_PER_UNIT;
 +      pcum->darwinpcs_arg_padding = BITS_PER_UNIT;
 +      pcum->named_p
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        = pcum->darwinpcs_n_args_processed < pcum->darwinpcs_n_named;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  = pcum->darwinpcs_n_args_processed < pcum->darwinpcs_n_named;
</span> +      pcum->last_named_p
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        = pcum->darwinpcs_n_args_processed + 1 == pcum->darwinpcs_n_named;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  = pcum->darwinpcs_n_args_processed + 1 == pcum->darwinpcs_n_named;
</span>      }
  }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1680,8 +3485,8 @@ index 226dc9d..13bb3cf 100644
</span> -   Stacked Argument Address (NSAA) will have a minimum alignment of
 -   8 bytes.  */
 +/* Implement FUNCTION_ARG_BOUNDARY.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+   For AAPCS64, Every parameter gets at least PARM_BOUNDARY bits of 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   alignment, but will be given anything up to STACK_BOUNDARY bits 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   For AAPCS64, Every parameter gets at least PARM_BOUNDARY bits of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   alignment, but will be given anything up to STACK_BOUNDARY bits
</span> +   if the type requires it.  This makes sure that both before and after
 +   the layout of each argument, the Next Stacked Argument Address (NSAA)
 +   will have a minimum alignment of 8 bytes.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1691,10 +3496,12 @@ index 226dc9d..13bb3cf 100644
</span>  
  static unsigned int
  aarch64_function_arg_boundary (machine_mode mode, const_tree type)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7727,15 +7904,118 @@ aarch64_function_arg_boundary (machine_mode mode, const_tree type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7727,6 +7904,22 @@ aarch64_function_arg_boundary (machine_mode mode, const_tree type)
</span>    unsigned int abi_break;
    unsigned int alignment = aarch64_function_arg_alignment (mode, type,
                                                           &abi_break);
<span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* We rely on aarch64_layout_arg and aarch64_gimplify_va_arg_expr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     to emit warnings about ABI incompatibility.  */
</span> +#if TARGET_MACHO
 +  /* This can only work for unnamed args.  */
 +  machine_mode comp_mode = VOIDmode;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1712,13 +3519,10 @@ index 226dc9d..13bb3cf 100644
</span>    alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
    if (abi_break && warn_psabi)
      {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-       abi_break = MIN (MAX (abi_break, PARM_BOUNDARY), STACK_BOUNDARY);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if (alignment != abi_break && !TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  inform (input_location, "parameter passing for argument of type "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          "%qT changed in GCC 9.1", type);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return alignment;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7736,6 +7929,96 @@ aarch64_function_arg_boundary (machine_mode mode, const_tree type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           "%qT changed in GCC 9.1", type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return alignment;
</span> +#endif
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1734,6 +3538,8 @@ index 226dc9d..13bb3cf 100644
</span> +  unsigned int abi_break;
 +  unsigned int alignment = aarch64_function_arg_alignment (mode, type,
 +                                                         &abi_break);
<span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* We rely on aarch64_layout_arg and aarch64_gimplify_va_arg_expr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     to emit warnings about ABI incompatibility.  */
</span> +#if TARGET_MACHO
 +  CUMULATIVE_ARGS *pcum = get_cumulative_args (ca);
 +gcc_checking_assert (pcum->aapcs_arg_processed);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1761,14 +3567,14 @@ index 226dc9d..13bb3cf 100644
</span> +
 +#else
 +  alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (abi_break & warn_psabi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (abi_break && warn_psabi)
</span> +    {
 +      abi_break = MIN (MAX (abi_break, PARM_BOUNDARY), STACK_BOUNDARY);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-       if (alignment != abi_break)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   inform (input_location, "parameter passing for argument of type "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           "%qT changed in GCC 9.1", type);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return alignment;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (alignment != abi_break)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  inform (input_location, "parameter passing for argument of type "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          "%qT changed in GCC 9.1", type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return alignment;
</span> +#endif
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1810,7 +3616,7 @@ index 226dc9d..13bb3cf 100644
</span>  }
  
  /* Implement TARGET_GET_RAW_RESULT_MODE and TARGET_GET_RAW_ARG_MODE.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10911,6 +11191,7 @@ aarch64_classify_address (struct aarch64_address_info *info,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10972,6 +11255,7 @@ aarch64_classify_address (struct aarch64_address_info *info,
</span>        /* load literal: pc-relative constant pool entry.  Only supported
           for SI mode or larger.  */
        info->type = ADDRESS_SYMBOLIC;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1818,7 +3624,7 @@ index 226dc9d..13bb3cf 100644
</span>  
        if (!load_store_pair_p
          && GET_MODE_SIZE (mode).is_constant (&const_size)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10918,6 +11199,7 @@ aarch64_classify_address (struct aarch64_address_info *info,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10979,6 +11263,7 @@ aarch64_classify_address (struct aarch64_address_info *info,
</span>   {
          poly_int64 offset;
          rtx sym = strip_offset_and_salt (x, &offset);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1826,7 +3632,7 @@ index 226dc9d..13bb3cf 100644
</span>     return ((LABEL_REF_P (sym)
                   || (SYMBOL_REF_P (sym)
                       && CONSTANT_POOL_ADDRESS_P (sym)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10935,10 +11217,13 @@ aarch64_classify_address (struct aarch64_address_info *info,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10996,10 +11281,13 @@ aarch64_classify_address (struct aarch64_address_info *info,
</span>     poly_int64 offset;
          HOST_WIDE_INT const_offset;
          rtx sym = strip_offset_and_salt (info->offset, &offset);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1841,7 +3647,7 @@ index 226dc9d..13bb3cf 100644
</span>       {
              /* The symbol and offset must be aligned to the access size.  */
              unsigned int align;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10988,6 +11273,55 @@ aarch64_address_valid_for_prefetch_p (rtx x, bool strict_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11049,6 +11337,55 @@ aarch64_address_valid_for_prefetch_p (rtx x, bool strict_p)
</span>    if (!res)
      return false;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1897,7 +3703,7 @@ index 226dc9d..13bb3cf 100644
</span>    /* ... except writeback forms.  */
    return addr.type != ADDRESS_REG_WB;
  }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11672,6 +12006,144 @@ sizetochar (int size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11733,6 +12070,144 @@ sizetochar (int size)
</span>      }
  }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2042,11 +3848,11 @@ index 226dc9d..13bb3cf 100644
</span>  /* Print operand X to file F in a target specific manner according to CODE.
     The acceptable formatting commands given by CODE are:
       'c':             An integer or symbol address without a preceding #
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11740,6 +12212,12 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11801,6 +12276,12 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span>   }
        break;
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    case 'K':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case 'J':
</span> +      output_macho_postfix_expr (f, x, "PAGEOFF");
 +      break;
 +    case 'O':
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2055,7 +3861,7 @@ index 226dc9d..13bb3cf 100644
</span>      case 'e':
        {
        x = unwrap_const_vec_duplicate (x);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12063,7 +12541,7 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12124,7 +12605,7 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span>      case 'A':
        if (GET_CODE (x) == HIGH)
        x = XEXP (x, 0);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2064,26 +3870,23 @@ index 226dc9d..13bb3cf 100644
</span>        switch (aarch64_classify_symbolic_expression (x))
        {
        case SYMBOL_SMALL_GOT_4G:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12094,9 +12572,29 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12155,9 +12636,26 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span>     break;
        }
        output_addr_const (asm_out_file, x);
 +#endif
 +#if TARGET_MACHO
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  // FIXME update classify symbolic expression to handle macho.
</span> +      switch (aarch64_classify_symbolic_expression (x))
 +      {
 +      case SYMBOL_MO_SMALL_PCR:
 +        output_macho_postfix_expr (asm_out_file, x, "PAGE");
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+//       asm_fprintf (asm_out_file, "@PAGE;mopcr");
</span> +   break;
 +      case SYMBOL_MO_SMALL_GOT:
 +        output_macho_postfix_expr (asm_out_file, x, "GOTPAGE");
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+//       asm_fprintf (asm_out_file, "@GOTPAGE;mosg");
</span> +   break;
 +      default:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         output_macho_postfix_expr (asm_out_file, x, "BLEAH");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+//          asm_fprintf (asm_out_file, "@BLEAH");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* large code model unimplemented.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_unreachable ();
</span> +   break;
 +      }
 +#endif
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2094,7 +3897,7 @@ index 226dc9d..13bb3cf 100644
</span>        switch (aarch64_classify_symbolic_expression (x))
        {
        case SYMBOL_SMALL_GOT_4G:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12134,10 +12632,12 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12195,10 +12693,12 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span>   default:
          break;
        }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2107,7 +3910,7 @@ index 226dc9d..13bb3cf 100644
</span>        switch (aarch64_classify_symbolic_expression (x))
        {
        case SYMBOL_TLSLE24:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12146,6 +12646,7 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12207,6 +12707,7 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span>   default:
          break;
        }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2115,14 +3918,13 @@ index 226dc9d..13bb3cf 100644
</span>        output_addr_const (asm_out_file, x);
        break;
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12295,8 +12796,14 @@ aarch64_print_address_internal (FILE *f, machine_mode mode, rtx x,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12356,8 +12857,13 @@ aarch64_print_address_internal (FILE *f, machine_mode mode, rtx x,
</span>   break;
  
        case ADDRESS_LO_SUM:
 +#if TARGET_MACHO
 +      asm_fprintf (f, "[%s, #", reg_names [REGNO (addr.base)]);
 +      output_macho_postfix_expr (f, addr.offset, "PAGEOFF");
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+//     output_addr_const (f, addr.offset);
</span> +#else
        asm_fprintf (f, "[%s, #:lo12:", reg_names [REGNO (addr.base)]);
        output_addr_const (f, addr.offset);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2130,7 +3932,34 @@ index 226dc9d..13bb3cf 100644
</span>   asm_fprintf (f, "]");
        return true;
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12766,6 +13273,8 @@ aarch64_asm_output_labelref (FILE* f, const char *name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12610,6 +13116,26 @@ aarch64_secondary_reload (bool in_p ATTRIBUTE_UNUSED, rtx x,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return NO_REGS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implement TARGET_FRAME_POINTER_REQUIRED.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_darwin_frame_pointer_required ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (crtl->calls_eh_return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Not used in leaf functions (unless forced).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (flag_omit_leaf_frame_pointer && leaf_function_p ())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* NOTE: We are allowing the user to force omission of the frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     pointer, (despite that it is not ABI-compliant).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return flag_omit_frame_pointer != 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_can_eliminate (const int from ATTRIBUTE_UNUSED, const int to)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12827,6 +13353,8 @@ aarch64_asm_output_labelref (FILE* f, const char *name)
</span>    asm_fprintf (f, "%U%s", name);
  }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2139,7 +3968,7 @@ index 226dc9d..13bb3cf 100644
</span>  static void
  aarch64_elf_asm_constructor (rtx symbol, int priority)
  {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12805,6 +13314,7 @@ aarch64_elf_asm_destructor (rtx symbol, int priority)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12866,6 +13394,7 @@ aarch64_elf_asm_destructor (rtx symbol, int priority)
</span>        assemble_aligned_integer (POINTER_BYTES, symbol);
      }
  }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2147,7 +3976,19 @@ index 226dc9d..13bb3cf 100644
</span>  
  const char*
  aarch64_output_casesi (rtx *operands)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15111,15 +15621,17 @@ aarch64_init_builtins ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12969,7 +13498,11 @@ aarch64_select_rtx_section (machine_mode mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (aarch64_can_use_per_function_literal_pools_p ())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return function_section (current_function_decl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return machopic_select_rtx_section (mode, x, align);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return default_elf_select_rtx_section (mode, x, align);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Implement ASM_OUTPUT_POOL_EPILOGUE.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15172,15 +15705,17 @@ aarch64_init_builtins ()
</span>  {
    aarch64_general_init_builtins ();
    aarch64_sve::init_builtins ();
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2168,7 +4009,7 @@ index 226dc9d..13bb3cf 100644
</span>    unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
    unsigned int subcode = code >> AARCH64_BUILTIN_SHIFT;
    tree type = TREE_TYPE (TREE_TYPE (fndecl));
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -18452,10 +18964,14 @@ initialize_aarch64_code_model (struct gcc_options *opts)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18513,10 +19048,14 @@ initialize_aarch64_code_model (struct gcc_options *opts)
</span>   }
        break;
      case AARCH64_CMODEL_LARGE:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2176,7 +4017,7 @@ index 226dc9d..13bb3cf 100644
</span> +      if (TARGET_MACHO)
 +      /* We need to implement fPIC here (arm64_32 also accepts the large
 +         model).  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sorry ("code model %qs not supported yet", "large");
</span> +      else if (opts->x_flag_pic)
        sorry ("code model %qs with %<-f%s%>", "large",
               opts->x_flag_pic > 1 ? "PIC" : "pic");
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2185,7 +4026,7 @@ index 226dc9d..13bb3cf 100644
</span>   sorry ("code model %qs not supported in ilp32 mode", "large");
        break;
      case AARCH64_CMODEL_TINY_PIC:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19378,7 +19894,9 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19439,7 +19978,9 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span>   case AARCH64_CMODEL_SMALL_SPIC:
        case AARCH64_CMODEL_SMALL_PIC:
        case AARCH64_CMODEL_SMALL:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2196,7 +4037,7 @@ index 226dc9d..13bb3cf 100644
</span>  
        default:
          gcc_unreachable ();
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19414,10 +19932,22 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19475,10 +20016,22 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span>  
          return SYMBOL_TINY_ABSOLUTE;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2220,7 +4061,7 @@ index 226dc9d..13bb3cf 100644
</span>     if ((flag_pic || SYMBOL_REF_WEAK (x))
              && !aarch64_symbol_binds_local_p (x))
            return aarch64_cmodel == AARCH64_CMODEL_SMALL_SPIC
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19429,7 +19959,8 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19490,7 +20043,8 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span>           || offset_within_block_p (x, offset)))
            return SYMBOL_FORCE_TO_MEM;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2230,7 +4071,7 @@ index 226dc9d..13bb3cf 100644
</span>  
        case AARCH64_CMODEL_LARGE:
          /* This is alright even in PIC code as the constant
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19559,7 +20090,10 @@ static GTY(()) tree va_list_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19620,7 +20174,10 @@ static GTY(()) tree va_list_type;
</span>       void *__vr_top;
       int   __gr_offs;
       int   __vr_offs;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2242,7 +4083,7 @@ index 226dc9d..13bb3cf 100644
</span>  
  static tree
  aarch64_build_builtin_va_list (void)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19567,6 +20101,13 @@ aarch64_build_builtin_va_list (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19628,6 +20185,13 @@ aarch64_build_builtin_va_list (void)
</span>    tree va_list_name;
    tree f_stack, f_grtop, f_vrtop, f_groff, f_vroff;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2256,7 +4097,7 @@ index 226dc9d..13bb3cf 100644
</span>    /* Create the type.  */
    va_list_type = lang_hooks.types.make_type (RECORD_TYPE);
    /* Give it the required name.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19638,6 +20179,13 @@ aarch64_expand_builtin_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19699,6 +20263,13 @@ aarch64_expand_builtin_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED)
</span>    int vr_save_area_size = cfun->va_list_fpr_size;
    int vr_offset;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2270,7 +4111,7 @@ index 226dc9d..13bb3cf 100644
</span>    cum = &crtl->args.info;
    if (cfun->va_list_gpr_size)
      gr_save_area_size = MIN ((NUM_ARG_REGS - cum->aapcs_ncrn) * UNITS_PER_WORD,
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19728,6 +20276,9 @@ aarch64_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19789,6 +20360,9 @@ aarch64_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
</span>    HOST_WIDE_INT size, rsize, adjust, align;
    tree t, u, cond1, cond2;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2280,7 +4121,7 @@ index 226dc9d..13bb3cf 100644
</span>    indirect_p = pass_va_arg_by_reference (type);
    if (indirect_p)
      type = build_pointer_type (type);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19912,8 +20463,18 @@ aarch64_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19973,8 +20547,18 @@ aarch64_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
</span>     field_ptr_t = double_ptr_type_node;
          break;
        case E_TFmode:
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2301,7 +4142,7 @@ index 226dc9d..13bb3cf 100644
</span>     break;
        case E_HFmode:
          field_t = aarch64_fp16_type_node;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19984,6 +20545,9 @@ aarch64_setup_incoming_varargs (cumulative_args_t cum_v,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20045,6 +20629,9 @@ aarch64_setup_incoming_varargs (cumulative_args_t cum_v,
</span>    int gr_saved = cfun->va_list_gpr_size;
    int vr_saved = cfun->va_list_fpr_size;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2311,7 +4152,7 @@ index 226dc9d..13bb3cf 100644
</span>    /* The caller has advanced CUM up to, but not beyond, the last named
       argument.  Advance a local copy of CUM past the last "real" named
       argument, to find out how many registers are left over.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -20811,6 +21375,12 @@ aarch64_autovectorize_vector_modes (vector_modes *modes, bool)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20872,6 +21459,12 @@ aarch64_autovectorize_vector_modes (vector_modes *modes, bool)
</span>  static const char *
  aarch64_mangle_type (const_tree type)
  {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2324,18 +4165,20 @@ index 226dc9d..13bb3cf 100644
</span>    /* The AArch64 ABI documents say that "__va_list" has to be
       mangled as if it is in the "std" namespace.  */
    if (lang_hooks.types_compatible_p (CONST_CAST_TREE (type), va_list_type))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -20825,6 +21395,10 @@ aarch64_mangle_type (const_tree type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20886,6 +21479,12 @@ aarch64_mangle_type (const_tree type)
</span>   return "Dh";
      }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  /* TFmode is __float128 for Darwin. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (TARGET_MACHO && TYPE_MODE (type) == TFmode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* __float128 is mangled as "g" on darwin.  _Float128 is not mangled here,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     but handled in common code (as "DF128_").  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (TARGET_MACHO && TYPE_MODE (type) == TFmode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && TYPE_MAIN_VARIANT (type) == float128_type_node)
</span> +    return "g";
 +
    /* Mangle AArch64-specific internal types.  TYPE_NAME is non-NULL_TREE for
       builtin types.  */
    if (TYPE_NAME (type) != NULL)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -21515,7 +22089,8 @@ aarch64_mov_operand_p (rtx x, machine_mode mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21576,7 +22175,8 @@ aarch64_mov_operand_p (rtx x, machine_mode mode)
</span>  
    /* GOT accesses are valid moves.  */
    if (SYMBOL_REF_P (x)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2345,17 +4188,84 @@ index 226dc9d..13bb3cf 100644
</span>      return true;
  
    if (SYMBOL_REF_P (x) && mode == DImode && CONSTANT_ADDRESS_P (x))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -22675,7 +23250,9 @@ aarch64_declare_function_name (FILE *stream, const char* name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22688,12 +23288,8 @@ aarch64_asm_output_variant_pcs (FILE *stream, const tree decl, const char* name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static std::string aarch64_last_printed_arch_string;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static std::string aarch64_last_printed_tune_string;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Implement ASM_DECLARE_FUNCTION_NAME.  Output the ISA features used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   by the function fndecl.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-aarch64_declare_function_name (FILE *stream, const char* name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          tree fndecl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_function_options_preamble (tree fndecl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tree target_parts = DECL_FUNCTION_SPECIFIC_TARGET (fndecl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22732,15 +23328,60 @@ aarch64_declare_function_name (FILE *stream, const char* name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              this_tune->name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       aarch64_last_printed_tune_string = this_tune->name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implement ASM_DECLARE_FUNCTION_NAME.  Output the ISA features used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   by the function fndecl.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_darwin_declare_function_name (FILE *stream, const char* name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                tree fndecl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_checking_assert (TREE_CODE (fndecl) == FUNCTION_DECL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_checking_assert (!DECL_COMMON (fndecl));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Update .arch and .tune as needed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  aarch64_function_options_preamble (fndecl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Darwin does not emit pcs variant info.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rtx decl_rtx = XEXP (DECL_RTL (fndecl), 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (GET_CODE (decl_rtx) != SYMBOL_REF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    name = IDENTIFIER_POINTER (DECL_NAME (fndecl));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (! DECL_WEAK (fndecl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && ((TREE_STATIC (fndecl) && !TREE_PUBLIC (fndecl))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    || DECL_INITIAL (fndecl)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    machopic_define_symbol (DECL_RTL (fndecl));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if ((TREE_STATIC (fndecl) && !TREE_PUBLIC (fndecl))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       || DECL_INITIAL (fndecl))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (* targetm.encode_section_info) (fndecl, DECL_RTL (fndecl), false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ASM_OUTPUT_FUNCTION_LABEL (stream, name, fndecl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cfun->machine->label_is_assembled = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_declare_function_name (FILE *stream, const char* name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          tree fndecl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Update .arch and .tune as needed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  aarch64_function_options_preamble (fndecl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Emit any necessary pcs information.  */
</span>    aarch64_asm_output_variant_pcs (stream, fndecl, name);
  
    /* Don't forget the type directive for ELF.  */
 +#ifdef ASM_OUTPUT_TYPE_DIRECTIVE
    ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "function");
<span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ASM_OUTPUT_LABEL (stream, name);
</span> +#endif
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ASM_OUTPUT_LABEL (stream, name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ASM_OUTPUT_FUNCTION_LABEL (stream, name, fndecl);
</span>  
    cfun->machine->label_is_assembled = true;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -22736,12 +23313,17 @@ aarch64_output_patchable_area (unsigned int patch_area_size, bool record_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Implement PRINT_PATCHABLE_FUNCTION_ENTRY.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22797,12 +23438,17 @@ aarch64_output_patchable_area (unsigned int patch_area_size, bool record_p)
</span>  /* Implement ASM_OUTPUT_DEF_FROM_DECLS.  Output .variant_pcs for aliases.  */
  
  void
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2374,7 +4284,28 @@ index 226dc9d..13bb3cf 100644
</span>  }
  
  /* Implement ASM_OUTPUT_EXTERNAL.  Output .variant_pcs for undefined
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23365,6 +23947,16 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22848,6 +23494,9 @@ aarch64_start_file (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           aarch64_last_printed_arch_string.c_str ());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default_file_start ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  darwin_file_start ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Emit load exclusive.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23325,6 +23974,10 @@ aarch64_float_const_representable_p (rtx x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       || REAL_VALUE_MINUS_ZERO (r))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* For BFmode, only handle 0.0. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (GET_MODE (x) == BFmode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return r.cl == rvc_zero;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Extract exponent.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   r = real_value_abs (&r);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exponent = REAL_EXP (&r);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23428,6 +24081,16 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span>      }
  
    gcc_assert (CONST_INT_P (info.u.mov.value));
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2391,7 +4322,7 @@ index 226dc9d..13bb3cf 100644
</span>  
    if (which == AARCH64_CHECK_MOV)
      {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23373,16 +23965,16 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23436,16 +24099,16 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span>             ? "msl" : "lsl");
        if (lane_count == 1)
        snprintf (templ, sizeof (templ), "%s\t%%d0, " HOST_WIDE_INT_PRINT_HEX,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2411,7 +4342,7 @@ index 226dc9d..13bb3cf 100644
</span>      }
    else
      {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23391,12 +23983,12 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23454,12 +24117,12 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span>        if (info.u.mov.shift)
        snprintf (templ, sizeof (templ), "%s\t%%0.%d%c, #"
                  HOST_WIDE_INT_PRINT_DEC ", %s #%d", mnemonic, lane_count,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2426,22 +4357,24 @@ index 226dc9d..13bb3cf 100644
</span>      }
    return templ;
  }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -26541,12 +27133,12 @@ aarch64_libgcc_floating_mode_supported_p (scalar_float_mode mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26605,12 +27268,14 @@ aarch64_libgcc_floating_mode_supported_p (scalar_float_mode mode)
</span>  }
  
  /* Implement TARGET_SCALAR_MODE_SUPPORTED_P - return TRUE
 -   if MODE is HFmode, and punt to the generic implementation otherwise.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+   if MODE is HFmode, or TFmode on Mach-O, and punt to the generic implementation otherwise.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   if MODE is [BH]Fmode, or TFmode on Mach-O, and punt to the generic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   implementation otherwise.  */
</span>  
  static bool
  aarch64_scalar_mode_supported_p (scalar_mode mode)
  {
 -  return (mode == HFmode
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return (mode == HFmode || (mode == TFmode && TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return ((mode == HFmode || mode == BFmode || (mode == TFmode && TARGET_MACHO))
</span>     ? true
          : default_scalar_mode_supported_p (mode));
  }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27304,19 +27896,37 @@ aarch64_sls_emit_shared_blr_thunks (FILE *out_file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27378,19 +28043,37 @@ aarch64_sls_emit_shared_blr_thunks (FILE *out_file)
</span>   continue;
  
        const char *name = indirect_symbol_names[regnum];
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2482,7 +4415,68 @@ index 226dc9d..13bb3cf 100644
</span>      }
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27509,6 +28119,15 @@ aarch64_run_selftests (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27421,6 +28104,60 @@ aarch64_indirect_call_asm (rtx addr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return "";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* This handles the promotion of function return values.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   It also handles function args under two specific curcumstances:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     - called from combine with a register argument
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     - caller for a libcall with type == NULL.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   The remaining cases for argument promotion are handled with access to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   cumulative args data, below.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++machine_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_darwin_promote_fn_mode (const_tree type, machine_mode mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         int *punsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         const_tree funtype ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                         int for_return ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* With the amended use of promote using cargs, the only cases that arrive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     here with for_return == 0 are from combine (where the value is definitely
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     in a register) and for libcalls, where type == NULL.  We want to promote
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     function return values in the callee, so this becomes pretty much
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     unconditional now.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (type != NULL_TREE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return promote_mode (type, mode, punsignedp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Ensure that we only promote the mode of named parms when they are passed in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   a register.  Named values passed on the stack retain their original mode and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   alignment.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++machine_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_darwin_promote_function_mode_ca (cumulative_args_t ca,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                   function_arg_info arg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                   const_tree funtype ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                   int *punsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                   int for_return ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree type = arg.type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  machine_mode mode = arg.mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  machine_mode new_mode = promote_mode (type, mode, punsignedp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (new_mode == mode || arg.named == false
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      || GET_MODE_CLASS (new_mode) != MODE_INT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      || known_gt (GET_MODE_SIZE (new_mode), 4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return new_mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CUMULATIVE_ARGS *pcum = get_cumulative_args (ca);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Make sure that changes in assumption do not get missed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_checking_assert (for_return == 0 && new_mode == SImode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                 && !pcum->aapcs_arg_processed);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* We have a named integer value that fits in a reg; if there's one available
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     then promote the value.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (pcum->aapcs_ncrn < 8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return new_mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Target-specific selftests.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if CHECKING_P
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27583,6 +28320,15 @@ aarch64_run_selftests (void)
</span>  #undef TARGET_ASM_ALIGNED_SI_OP
  #define TARGET_ASM_ALIGNED_SI_OP "\t.word\t"
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2498,7 +4492,7 @@ index 226dc9d..13bb3cf 100644
</span>  #undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
  #define TARGET_ASM_CAN_OUTPUT_MI_THUNK \
    hook_bool_const_tree_hwi_hwi_const_tree_true
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27595,6 +28214,12 @@ aarch64_run_selftests (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27669,6 +28415,12 @@ aarch64_run_selftests (void)
</span>  #undef TARGET_FUNCTION_ARG_BOUNDARY
  #define TARGET_FUNCTION_ARG_BOUNDARY aarch64_function_arg_boundary
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2511,7 +4505,7 @@ index 226dc9d..13bb3cf 100644
</span>  #undef TARGET_FUNCTION_ARG_PADDING
  #define TARGET_FUNCTION_ARG_PADDING aarch64_function_arg_padding
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -27922,7 +28547,7 @@ aarch64_libgcc_floating_mode_supported_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27996,7 +28748,7 @@ aarch64_libgcc_floating_mode_supported_p
</span>  
  /* The architecture reserves bits 0 and 1 so use bit 2 for descriptors.  */
  #undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2520,8 +4514,20 @@ index 226dc9d..13bb3cf 100644
</span>  
  #undef TARGET_HARD_REGNO_NREGS
  #define TARGET_HARD_REGNO_NREGS aarch64_hard_regno_nregs
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28083,6 +28835,11 @@ aarch64_libgcc_floating_mode_supported_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef TARGET_HAVE_SHADOW_CALL_STACK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_HAVE_SHADOW_CALL_STACK true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_FRAME_POINTER_REQUIRED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_FRAME_POINTER_REQUIRED aarch64_darwin_frame_pointer_required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct gcc_target targetm = TARGET_INITIALIZER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "gt-aarch64.h"
</span> diff --git gcc/config/aarch64/aarch64.h gcc/config/aarch64/aarch64.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6834c3e..4b2ccb6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fadcf98b85c..3f85d26b59b 100644
</span> --- gcc/config/aarch64/aarch64.h
 +++ gcc/config/aarch64/aarch64.h
 @@ -54,6 +54,10 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2548,7 +4554,7 @@ index 6834c3e..4b2ccb6 100644
</span>  /* Defined by the ABI */
  #define WCHAR_TYPE "unsigned int"
  #define WCHAR_TYPE_SIZE                       32
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1028,6 +1038,24 @@ typedef struct
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1038,6 +1048,24 @@ typedef struct
</span>                              aapcs_reg == NULL_RTX.  */
    int aapcs_stack_size;               /* The total size (in words, per 8 byte) of the
                                   stack arg area so far.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2573,7 +4579,7 @@ index 6834c3e..4b2ccb6 100644
</span>    bool silent_p;         /* True if we should act silently, rather than
                                   raise an error for invalid calls.  */
  } CUMULATIVE_ARGS;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1312,8 +1340,13 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1322,8 +1350,13 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
</span>  #define ASM_CPU_SPEC \
     MCPU_TO_MARCH_SPEC
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2588,7 +4594,7 @@ index 6834c3e..4b2ccb6 100644
</span>  
  #define ASM_OUTPUT_POOL_EPILOGUE  aarch64_asm_output_pool_epilogue
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1327,6 +1360,10 @@ extern GTY(()) tree aarch64_fp16_ptr_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1337,6 +1370,10 @@ extern GTY(()) tree aarch64_fp16_ptr_type_node;
</span>  extern GTY(()) tree aarch64_bf16_type_node;
  extern GTY(()) tree aarch64_bf16_ptr_type_node;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2600,14 +4606,14 @@ index 6834c3e..4b2ccb6 100644
</span>     So in order to unwind a function using a frame pointer, the very first
     function that is unwound must save the frame pointer.  That way the frame
 diff --git gcc/config/aarch64/aarch64.md gcc/config/aarch64/aarch64.md
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d24c8af..cecef27 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 99f185718c9..2c165c6047a 100644
</span> --- gcc/config/aarch64/aarch64.md
 +++ gcc/config/aarch64/aarch64.md
 @@ -304,6 +304,7 @@
      UNSPEC_LD1RO
      UNSPEC_SALT_ADDR
      UNSPECV_PATCHABLE_AREA
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    UNSPEC_MACHOPIC_OFFSET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    UNSPEC_MACHOPIC_OFFSET        ; Common to Mach-O ports.
</span>  ])
  
  (define_c_enum "unspecv" [
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2649,7 +4655,7 @@ index d24c8af..cecef27 100644
</span>  (define_insn "trap"
    [(trap_if (const_int 1) (const_int 8))]
    ""
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1287,7 +1319,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1305,7 +1337,7 @@
</span>     ldr\\t%s0, %1
     str\\t%w1, %0
     str\\t%s1, %0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2658,7 +4664,7 @@ index d24c8af..cecef27 100644
</span>     adr\\t%x0, %c1
     adrp\\t%x0, %A1
     fmov\\t%s0, %w1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1326,7 +1358,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1344,7 +1376,7 @@
</span>     ldr\\t%d0, %1
     str\\t%x1, %0
     str\\t%d1, %0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2667,20 +4673,60 @@ index d24c8af..cecef27 100644
</span>     adr\\t%x0, %c1
     adrp\\t%x0, %A1
     fmov\\t%d0, %x1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -6863,7 +6895,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1777,16 +1809,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    (set_attr "arch" "*,fp")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "load_pair_dw_tftf"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  [(set (match_operand:TF 0 "register_operand" "=w")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  (match_operand:TF 1 "aarch64_mem_pair_operand" "Ump"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   (set (match_operand:TF 2 "register_operand" "=w")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  (match_operand:TF 3 "memory_operand" "m"))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(define_insn "load_pair_dw_<TX:mode><TX2:mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  [(set (match_operand:TX 0 "register_operand" "=w")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (match_operand:TX 1 "aarch64_mem_pair_operand" "Ump"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   (set (match_operand:TX2 2 "register_operand" "=w")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (match_operand:TX2 3 "memory_operand" "m"))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "TARGET_SIMD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     && rtx_equal_p (XEXP (operands[3], 0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               plus_constant (Pmode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                              XEXP (operands[1], 0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             GET_MODE_SIZE (TFmode)))"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             GET_MODE_SIZE (<TX:MODE>mode)))"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "ldp\\t%q0, %q2, %z1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [(set_attr "type" "neon_ldp_q")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    (set_attr "fp" "yes")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1827,11 +1859,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    (set_attr "arch" "*,fp")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "store_pair_dw_tftf"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  [(set (match_operand:TF 0 "aarch64_mem_pair_operand" "=Ump")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  (match_operand:TF 1 "register_operand" "w"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   (set (match_operand:TF 2 "memory_operand" "=m")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  (match_operand:TF 3 "register_operand" "w"))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(define_insn "store_pair_dw_<TX:mode><TX2:mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  [(set (match_operand:TX 0 "aarch64_mem_pair_operand" "=Ump")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (match_operand:TX 1 "register_operand" "w"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   (set (match_operand:TX2 2 "memory_operand" "=m")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (match_operand:TX2 3 "register_operand" "w"))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "TARGET_SIMD &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rtx_equal_p (XEXP (operands[2], 0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            plus_constant (Pmode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6889,7 +6921,10 @@
</span>   (lo_sum:P (match_operand:P 1 "register_operand" "r")
                  (match_operand 2 "aarch64_valid_symref" "S")))]
    ""
 -  "add\\t%<w>0, %<w>1, :lo12:%c2"
 +  { return TARGET_MACHO
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ? "add\\t%<w>0, %<w>1, %K2;momd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ? "add\\t%<w>0, %<w>1, %J2;"
</span> +    : "add\\t%<w>0, %<w>1, :lo12:%c2";
 +  }
    [(set_attr "type" "alu_imm")]
  )
  
 diff --git gcc/config/aarch64/aarch64.opt gcc/config/aarch64/aarch64.opt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 92220b2..15ec719 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 92220b26ee2..15ec719ca2d 100644
</span> --- gcc/config/aarch64/aarch64.opt
 +++ gcc/config/aarch64/aarch64.opt
 @@ -152,6 +152,13 @@ Enum(aarch64_abi) String(ilp32) Value(AARCH64_ABI_ILP32)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2698,7 +4744,7 @@ index 92220b2..15ec719 100644
</span>  Target Save Var(pcrelative_literal_loads) Init(2) Save
  PC relative literal loads.
 diff --git gcc/config/aarch64/constraints.md gcc/config/aarch64/constraints.md
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ee7587c..cb73a2d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee7587cca16..cb73a2daae8 100644
</span> --- gcc/config/aarch64/constraints.md
 +++ gcc/config/aarch64/constraints.md
 @@ -158,7 +158,9 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2726,10 +4772,10 @@ index ee7587c..cb73a2d 100644
</span>     A constraint that matches an immediate offset valid for SVE LD1B
 diff --git gcc/config/aarch64/darwin.h gcc/config/aarch64/darwin.h
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..2a855c1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..08febf1401b
</span> --- /dev/null
 +++ gcc/config/aarch64/darwin.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,280 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,289 @@
</span> +/* Target definitions for Arm64/Aarch64 running on macOS/iOS.
 +
 +Copyright The GNU Toolchain Authors.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2758,15 +4804,20 @@ index 0000000..2a855c1
</span> +#undef DARWIN_ARM64
 +#define DARWIN_ARM64 1
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* FIXME FIXME FIXME - these are mostly guesses right now.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* FIXME: this is only used in generic code in darwin.c.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* This is used in generic code in darwin.cc (at present, we have no support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   for the arm64_32 target).  */
</span> +#undef TARGET_64BIT
 +#define TARGET_64BIT 1
 +
 +#undef  PTRDIFF_TYPE
 +#define PTRDIFF_TYPE "long int"
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_PROMOTE_FUNCTION_MODE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_PROMOTE_FUNCTION_MODE aarch64_darwin_promote_fn_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_PROMOTE_FUNCTION_MODE_CA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_PROMOTE_FUNCTION_MODE_CA aarch64_darwin_promote_function_mode_ca
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +/* NOTE that arm64_32 is a valid thing and corresponds to darwinpcs
 +   and TARGET_ILP32, but we are not implementing that for now.  */
 +#define TARGET_OS_CPP_BUILTINS()              \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2777,8 +4828,7 @@ index 0000000..2a855c1
</span> +    darwin_cpp_builtins (pfile);         \
 +  } while (0)
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* In Darwin's arm64 ABI, chars are signed, for consistency with other Darwin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   architectures.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* In Darwin's Arm64 ABI, chars are signed.  */
</span> +
 +#undef DEFAULT_SIGNED_CHAR
 +#define DEFAULT_SIGNED_CHAR 1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2786,21 +4836,18 @@ index 0000000..2a855c1
</span> +#undef LONG_DOUBLE_TYPE_SIZE
 +#define LONG_DOUBLE_TYPE_SIZE 64
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Disable custom function descriptors on Darwin, it breaks ABI.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Disable custom function descriptors on Darwin (we use heap-based
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   trampolines).  */
</span> +#undef AARCH64_CUSTOM_FUNCTION_TEST
 +#define AARCH64_CUSTOM_FUNCTION_TEST 0
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Non-PIE executables are forbidden by the aarch64-darwin security model;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Non-PIE executables are forbidden by the Arm64-darwin security model;
</span> +   remove the option from link-lines since they just produce a warning from
 +   ld64 and are then ignored anyway.  */
 +#undef DARWIN_NOPIE_SPEC
 +#define DARWIN_NOPIE_SPEC \
 +" %<no-pie %<fno-pie %<fno-PIE "
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Hack alert - we want the exported cas etc.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#undef LIB_SPEC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define LIB_SPEC "%{!static:-lSystem} -lgcc"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span> +/* Force the default endianness and ABI flags onto the command line
 +   in order to make the other specs easier to write.  Match clang in
 +   silently ignoring mdynamic-no-pic */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2822,7 +4869,7 @@ index 0000000..2a855c1
</span> +"%{!mkernel:%{!static:-fPIC}} " DARWIN_CC1_SPEC
 +
 +#undef ASM_SPEC
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#define ASM_SPEC "-arch %(darwin_arch) "\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_SPEC "-arch %(darwin_arch) %{march*} %{mtune*} "\
</span> +  ASM_OPTIONS " %{static} " ASM_MMACOSX_VERSION_MIN_SPEC
 +
 +#undef ENDFILE_SPEC
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2832,6 +4879,9 @@ index 0000000..2a855c1
</span> +/* The arch is known as 'arm64' by the system tools.  */
 +#define DARWIN_ARCH_SPEC "arm64"
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DARWIN_HEAP_T_LIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_HEAP_T_LIB " -lheapt_w "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +#undef SUBTARGET_EXTRA_SPECS
 +#define SUBTARGET_EXTRA_SPECS                                 \
 +  DARWIN_EXTRA_SPECS                                          \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2907,8 +4957,8 @@ index 0000000..2a855c1
</span> +    1, 1                 /* FFR and FFRT */      \
 +  }
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Although we cannot use executable stack, we still need to assign
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   a static chain regnum.  At the moment using R16 (IP0) is available.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Assign a static chain regnum.  At the moment using R16 (IP0) is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   available.  */
</span> +#undef STATIC_CHAIN_REGNUM
 +#define STATIC_CHAIN_REGNUM   R16_REGNUM
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2920,9 +4970,10 @@ index 0000000..2a855c1
</span> +    {                                                                    \
 +      if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_pcrel)           \
 +      {                                                               \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         fputs (ASM_LONG, FILE);                                       \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    static unsigned got_pcr_count = 0;                            \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fprintf (FILE, "L_got_pcr%d:\n" ASM_LONG, got_pcr_count);   \
</span> +   assemble_name (FILE, XSTR (ADDR, 0));                         \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         fputs ("@GOT-.", FILE);                                     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fprintf (FILE, "@GOT-L_got_pcr%d", got_pcr_count++);                \
</span> +   goto DONE;                                                    \
 +      }                                                               \
 +    }                                                                 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2931,12 +4982,15 @@ index 0000000..2a855c1
</span> +      if (ENCODING == ASM_PREFERRED_EH_DATA_FORMAT (2, 1))               \
 +      {                                                               \
 +        gcc_unreachable (); /* no 32b support yet.*/                  \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         /*darwin_non_lazy_pcrel (FILE, ADDR);*/                       \
</span> +   goto DONE;                                                    \
 +      }                                                               \
 +    }
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Darwin x86 assemblers support the .ident directive.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef ASM_DECLARE_FUNCTION_NAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_DECLARE_FUNCTION_NAME(STR, NAME, DECL)        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  aarch64_darwin_declare_function_name (STR, NAME, DECL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Darwin assemblers support the .ident directive.  */
</span> +
 +#undef TARGET_ASM_OUTPUT_IDENT
 +#define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2944,7 +4998,7 @@ index 0000000..2a855c1
</span> +/* Darwin has experimental support for section anchors on aarch64*; it is
 +   not enabled by default (the -fsection-anchors is required).  */
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#undef TARGET_ASM_OUTPUT_ANCHOR 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_ASM_OUTPUT_ANCHOR
</span> +#define TARGET_ASM_OUTPUT_ANCHOR darwin_asm_output_anchor
 +
 +#undef TARGET_USE_ANCHORS_FOR_SYMBOL_P
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2953,14 +5007,16 @@ index 0000000..2a855c1
</span> +#undef DARWIN_SECTION_ANCHORS
 +#define DARWIN_SECTION_ANCHORS 1
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Executable stack is prohibited by the system security policy.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef HAVE_ENABLE_EXECUTE_STACK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +/* Pull in the stuff common to all Darwin-based platforms.  */
 +#define C_COMMON_OVERRIDE_OPTIONS                             \
 +  do {                                                                \
 +    SUBTARGET_C_COMMON_OVERRIDE_OPTIONS;                      \
 +  } while (0)
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* We do not have a definition for a tiny (or large) code model so
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   far.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We do not have a definition for a tiny code model.
</span> +   Section anchors are (probably) not useful with ld64 atom model so
 +   default them off - this can be overridden by the user at present.
 +   mdynamic-no-pic is silently ignored by clang (and not applicable
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3009,18 +5065,17 @@ index 0000000..2a855c1
</span> +#define CLEAR_INSN_CACHE(beg, end)                               \
 +  extern void sys_icache_invalidate(void *start, size_t len); \
 +  sys_icache_invalidate ((beg), (size_t)((end)-(beg)))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span> diff --git gcc/config/aarch64/darwinpcs.md gcc/config/aarch64/darwinpcs.md
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..1238c6b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..0626ed817a7
</span> --- /dev/null
 +++ gcc/config/aarch64/darwinpcs.md
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,456 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# The Darwin ABI (darwinpcs) for AArch64 (Arm64) Mach-O 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,455 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The Darwin ABI (darwinpcs) for AArch64 (Arm64) Mach-O
</span> +
 +## Introduction.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+This describes the Darwin PCS (darwinpcs) as implemented in GCC-12.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This describes the Darwin PCS (darwinpcs) as implemented in GCC.
</span> +
 +Base information is taken from:
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3028,7 +5083,7 @@ index 0000000..1238c6b
</span> +
 +[2] [Apple iOS document : darwinpcs](https://developer.apple.com/library/archive/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html#//apple_ref/doc/uid/TP40013702-SW1)
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+[3] [The LLVM backend for Mach-O/arm64 from GIT (master 12 at the document date).](https://github.com/llvm/llvm-project.git)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[3] [The LLVM backend for Mach-O/arm64 from GIT (LLVM-12 was used initially).](https://github.com/llvm/llvm-project.git)
</span> +
 +## Terminology
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3043,7 +5098,7 @@ index 0000000..1238c6b
</span> +`aarch64` for Darwin in GCC).   There is an ILP32 variant, `arm64_32` (not yet
 +considered in detail or handled by these branches).
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+There are two main technical sections 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++There are two main technical sections
</span> +
 +* Part 1 which describes the darwinpcs deviations from AAPCS64.
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3177,7 +5232,7 @@ index 0000000..1238c6b
</span> +but beyond that, unused bytes on the stack are not specified by the darwinpcs.
 +
 +(see section 7) As a result of this change, the type va_list is an alias for
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+char * rather than for the struct type specified in the generic PCS. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char * rather than for the struct type specified in the generic PCS.
</span> +It is also not in the std namespace when compiling C++ code.
 +
 +#### Stage A
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3206,7 +5261,7 @@ index 0000000..1238c6b
</span> +From the observations section:
 +"Both before and after the layout of each argument, then NSAA will have a
 + minimum alignment of 8."  This no longer applies.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +### AAPCS64 Section 6.
 +
 +No changes (noting that the `__fp16` type is `IEEE754-2008` format.)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3229,6 +5284,7 @@ index 0000000..1238c6b
</span> +We need to consider **_very_** carefully how to handle this.  The current
 +(64bit) long double is mangled as 'e' by the clang toolchain.
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +7.1.4 Additional Types
 +
 +Table 5 is amended to reflect the different variadic function rules.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3247,7 +5303,7 @@ index 0000000..1238c6b
</span> +#### Red Zone
 +
 +The ARM64 iOS red zone consists of the 128 bytes immediately below the stack
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+pointer sp. As with the x86-64 ABI, the operating system has committed not to 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++pointer sp. As with the x86-64 ABI, the operating system has committed not to
</span> +modify these bytes during exceptions. User-mode programs can rely on them not
 +to change unexpectedly, and can potentially make use of the space for local
 +variables.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3357,12 +5413,11 @@ index 0000000..1238c6b
</span> +  (default for > 10years).  Any symbol that is not 'global' and does not begin
 +  with 'L' (the local symbol designation) is counted as 'linker visible'.
 + * does _not_ support 'static' code in the user space
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +   Everything needs to be invoked using the dynamic linker (`dyld`).  There is
 +  neither crt0.o nor a static edition of libc.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+Some versions of Darwin have used 'static' code for kernel modules.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+FIXME: ??? what is the kernel model here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FIXME: CHECK the kernel model here.
</span> +
 +### Darwin Relocations and Assembler syntax
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3471,9 +5526,92 @@ index 0000000..1238c6b
</span> +  The ABI used for __float128 matches that for AAPCS64
 +
 +## End.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/driver-aarch64.cc gcc/config/aarch64/driver-aarch64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d714a8bda43..02fd8663201 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/driver-aarch64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/driver-aarch64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,6 +27,74 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "tm.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "aarch64-protos.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Default architecture to use if -mcpu=native did not detect a known CPU.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DEFAULT_ARCH "apple-m1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* macOS does not have /proc/cpuinfo and needs a different approach,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   based on sysctl.  It is much simpler.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++host_detect_local_cpu (ATTRIBUTE_UNUSED int argc, ATTRIBUTE_UNUSED const char **argv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool arch = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool tune = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool cpu = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *res = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uint32_t family;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_t len = sizeof(family);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_assert (argc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!argv[0])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Are we processing -march, mtune or mcpu?  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  arch = strcmp (argv[0], "arch") == 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!arch)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    tune = strcmp (argv[0], "tune") == 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!arch && !tune)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cpu = strcmp (argv[0], "cpu") == 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!arch && !tune && !cpu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sysctlbyname("hw.cpufamily", &family, &len, NULL, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (family)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case 0x07d34b9f: // Vortex, Tempest
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      res = "apple-a12";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case 0x573b5eec:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case 0x1b588bb3: // Firestorm, Icestorm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      res = "apple-m1";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case 0xda33d83d: // Blizzard, Avalanche
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      res = "apple-m2";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case 0xfa33415e: // Ibiza (M3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case 0x5f4dea93: // Lobos (M3 Pro)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case 0x72015832: // Palma (M3 Max)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      res = "apple-m3";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      res = DEFAULT_ARCH;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (res)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return concat ("-m", argv[0], "=", res, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span> +
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct aarch64_arch_extension
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const char *ext;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -468,3 +536,4 @@ not_found:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span> diff --git gcc/config/aarch64/falkor-tag-collision-avoidance.cc gcc/config/aarch64/falkor-tag-collision-avoidance.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5f19829..6108380 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5f198290568..ab881d9abc0 100644
</span> --- gcc/config/aarch64/falkor-tag-collision-avoidance.cc
 +++ gcc/config/aarch64/falkor-tag-collision-avoidance.cc
 @@ -740,7 +740,7 @@ dump_insn_list (const rtx &t, const insn_info_list_t &insn_info,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3481,12 +5619,28 @@ index 5f19829..6108380 100644
</span>  {
    gcc_assert (dump_file);
 -  fprintf (dump_file, "Tag 0x%lx ::\n", INTVAL (t));
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  fprintf (dump_file, "Tag 0x%lx ::\n", (long unsigned int)INTVAL (t));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fprintf (dump_file, "Tag 0x" HOST_WIDE_INT_PRINT_HEX_PURE " ::\n", INTVAL (t));
</span>  
    for (unsigned i = 0; i < insn_info.length (); i++)
      dump_insn_slim (dump_file, insn_info[i]->insn);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/iterators.md gcc/config/aarch64/iterators.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d49e37893df..b2c507745a8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/iterators.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/iterators.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -306,6 +306,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; TX plus V16QImode.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define_mode_iterator TX_V16QI [TI TF V16QI])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++;; Duplicate of TX above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(define_mode_iterator TX2 [TI TF])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(define_mode_iterator VTX [TI TF V16QI V8HI V4SI V2DI V8HF V4SF V2DF V8BF])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; Advanced SIMD opaque structure modes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define_mode_iterator VSTRUCT [OI CI XI])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git gcc/config/aarch64/predicates.md gcc/config/aarch64/predicates.md
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c308015..cd88f93 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c308015ac2c..cd88f93ca2d 100644
</span> --- gcc/config/aarch64/predicates.md
 +++ gcc/config/aarch64/predicates.md
 @@ -261,9 +261,24 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3516,7 +5670,7 @@ index c308015..cd88f93 100644
</span>  })
 diff --git gcc/config/aarch64/t-aarch64-darwin gcc/config/aarch64/t-aarch64-darwin
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..a8bfcff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..e2b8ad9237f
</span> --- /dev/null
 +++ gcc/config/aarch64/t-aarch64-darwin
 @@ -0,0 +1,25 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3542,14 +5696,54 @@ index 0000000..a8bfcff
</span> +LIB1ASMSRC   = aarch64/lib1funcs.asm
 +LIB1ASMFUNCS = _aarch64_sync_cache_range
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# FIXME - figure out what multilib provisions we should make for 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# TODO - figure out what multilib provisions we should make for
</span> +# a) arm64e
 +# b) arm64_32
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/darwin-c.cc gcc/config/darwin-c.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 923434da5b1..fe4b5538a0b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin-c.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin-c.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -555,7 +555,7 @@ find_subframework_header (cpp_reader *pfile, const char *header, cpp_dir **dirp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Given an OS X version VERSION_STR, return it as a statically-allocated array
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Given an macOS version VERSION_STR, return it as a statically-allocated array
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    of three integers. If VERSION_STR is invalid, return NULL.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    VERSION_STR must consist of one, two, or three tokens, each separated by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -612,7 +612,7 @@ parse_version (const char *version_str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return version_array;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Given VERSION -- a three-component OS X version represented as an array of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Given VERSION -- a three-component macOS version represented as an array of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    non-negative integers -- return a statically-allocated string suitable for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    the legacy __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  If VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    is invalid and cannot be coerced into a valid form, return NULL.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -645,7 +645,7 @@ version_as_legacy_macro (const unsigned long *version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Given VERSION -- a three-component OS X version represented as an array of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Given VERSION -- a three-component macOS version represented as an array of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    non-negative integers -- return a statically-allocated string suitable for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    the modern __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  If VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    is invalid, return NULL.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -675,7 +675,7 @@ version_as_modern_macro (const unsigned long *version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return the value of darwin_macosx_version_min, suitably formatted for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ macro.  Values representing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   OS X 10.9 and earlier are encoded using the legacy four-character format,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   macOS 10.9 and earlier are encoded using the legacy four-character format,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    while 10.10 and later use a modern six-character format.  (For example,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "10.9" produces "1090", and "10.10.1" produces "101001".)  If
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    darwin_macosx_version_min is invalid and cannot be coerced into a valid
</span> diff --git gcc/config/darwin-driver.cc gcc/config/darwin-driver.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 00287f3..6df85f5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00287f3d5ec..98a1ea7b672 100644
</span> --- gcc/config/darwin-driver.cc
 +++ gcc/config/darwin-driver.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -268,14 +268,21 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -268,10 +268,13 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span>    bool seenX86_64 = false;
    bool seenPPC = false;
    bool seenPPC64 = false;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3563,15 +5757,7 @@ index 00287f3..6df85f5 100644
</span>    const char *vers_string = NULL;
    bool seen_version_min = false;
    bool seen_sysroot_p = false;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   bool noexport_p = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef RPATH_SETS_NODEFAULT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool seen_rpath_p = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  bool seen_nodefaultrpaths_p = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   for (i = 1; i < *decoded_options_count; i++)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -296,6 +303,12 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -296,6 +299,12 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span>       seenPPC = true;
          else if (!strcmp ((*decoded_options)[i].arg, "ppc64"))
            seenPPC64 = true;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3584,7 +5770,7 @@ index 00287f3..6df85f5 100644
</span>     else
            error ("this compiler does not support %qs",
                   (*decoded_options)[i].arg);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -309,7 +322,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -309,7 +318,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span>     --i;
          --*decoded_options_count; 
          break;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3593,7 +5779,7 @@ index 00287f3..6df85f5 100644
</span>   case OPT_m32:
          seenM32 = true;
          break;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -317,6 +330,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -317,6 +326,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span>   case OPT_m64:
          seenM64 = true;
          break;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3601,24 +5787,7 @@ index 00287f3..6df85f5 100644
</span>  
        case OPT_mmacosx_version_min_:
          seen_version_min = true;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -349,8 +363,16 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     gcc_checking_assert ((*decoded_options)[i].arg);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if (startswith ((*decoded_options)[i].arg, "-exported_symbol"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       noexport_p = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef RPATH_SETS_NODEFAULT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else if (strncmp ((*decoded_options)[i].arg, "-rpath", 6) == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      seen_rpath_p = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef RPATH_SETS_NODEFAULT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  case OPT_nodefaultrpaths:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    seen_nodefaultrpaths_p = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -366,6 +388,9 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -366,6 +376,9 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span>    if (seenPPC || seenPPC64)
      warning (0, "this compiler does not support PowerPC"
                " (%<-arch%> option ignored)");
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3628,7 +5797,7 @@ index 00287f3..6df85f5 100644
</span>    if (seenX86)
      {
        if (seenX86_64 || seenM64)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -389,6 +414,9 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -389,6 +402,9 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span>    if (seenX86 || seenX86_64)
      warning (0, "this compiler does not support x86"
                " (%<-arch%> option ignored)");
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3638,7 +5807,7 @@ index 00287f3..6df85f5 100644
</span>    if (seenPPC)
      {
        if (seenPPC64 || seenM64)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -408,12 +436,20 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -408,12 +424,20 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span>        if (! seenM64) /* Add -m64 if the User didn't. */
        appendM64 = true;
      }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3659,7 +5828,7 @@ index 00287f3..6df85f5 100644
</span>    if (appendM32 || appendM64)
      {
        ++*decoded_options_count;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -423,6 +459,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -423,6 +447,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span>        generate_option (appendM32 ? OPT_m32 : OPT_m64, NULL, 1, CL_DRIVER,
                       &(*decoded_options)[*decoded_options_count - 1]);
      }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3667,62 +5836,452 @@ index 00287f3..6df85f5 100644
</span>  
    if (!seen_sysroot_p)
      {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -490,4 +527,16 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       generate_option (OPT_nodefaultexport, NULL, 1, CL_DRIVER,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                  &(*decoded_options)[*decoded_options_count - 1]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -440,7 +465,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span>      }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* We will need to know the OS X version we're trying to build for here
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* We will need to know the macOS version we're trying to build for here
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      so that we can figure out the mechanism and source for the sysroot to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      be used.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (!seen_version_min)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/darwin-protos.h gcc/config/darwin-protos.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c7f87098ab9..5dee00fd643 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin-protos.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin-protos.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -86,9 +86,12 @@ extern void darwin_asm_lto_end (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void darwin_mark_decl_preserved (const char *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree darwin_handle_kext_attribute (tree *, tree, tree, int, bool *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern tree darwin_handle_weak_import_attribute (tree *node, tree name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                           tree args, int flags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                           bool * no_add_attrs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern tree darwin_handle_weak_import_attribute (tree *, tree, tree, int,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           bool *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern tree darwin_handle_availability_attribute (tree *, tree, tree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                            int, bool *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern bool darwin_attribute_takes_identifier_p (const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void machopic_output_stub (FILE *, const char *, const char *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void darwin_globalize_label (FILE *, const char *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void darwin_assemble_visibility (tree, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -124,6 +127,7 @@ extern void darwin_enter_string_into_cfstring_table (tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void darwin_asm_output_anchor (rtx symbol);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern bool darwin_use_anchors_for_symbol_p (const_rtx symbol);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern bool darwin_kextabi_p (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern bool darwin_unreachable_traps_p (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void darwin_override_options (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void darwin_patch_builtins (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void darwin_rename_builtins (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/darwin.cc gcc/config/darwin.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 76feb87a29d..0f45ccfbc16 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "cfghooks.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "df.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "memmodel.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "c-family/c-common.h"  /* enum rid.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "tm_p.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "stringpool.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "attribs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,6 +50,7 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "optabs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "flags.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "opts.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "c-family/c-objc.h"    /* for objc_method_decl().  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Fix and Continue.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -102,6 +104,7 @@ int darwin_running_cxx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Some code-gen now depends on OS major version numbers (at least).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int generating_for_darwin_version ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unsigned long current_os_version = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* For older linkers we need to emit special sections (marked 'coalesced') for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    for weak or single-definition items.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,7 +134,7 @@ struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ section * darwin_sections[NUM_DARWIN_SECTIONS];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* While we transition to using in-tests instead of ifdef'd code.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if !HAVE_lo_sum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !HAVE_lo_sum || DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define gen_macho_high(m,a,b) (a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define gen_macho_low(m,a,b,c) (a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1065,6 +1068,7 @@ machopic_legitimize_pic_address (rtx orig, machine_mode mode, rtx reg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return pic_ref;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Callbacks to output the stub or non-lazy pointers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Each works on the item in *SLOT,if it has been used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    DATA is the FILE* for assembly output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1220,6 +1224,7 @@ machopic_finish (FILE *out_file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   machopic_indirections->traverse_noresize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     <FILE *, machopic_output_indirection> (out_file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ machopic_operand_p (rtx op)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2155,6 +2160,122 @@ darwin_handle_kext_attribute (tree *node, tree name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enum version_components { MAJOR, MINOR, TINY };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Parse a version number in x.y.z form and validate it as a macOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   version.  Ideally, we'd put this in a common place usable by the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   Darwin backend.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++parse_version (unsigned version_array[3], const char *version_str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_t version_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  char *end, last = '\0', delimiter = '.', alt_delim = '_';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!version_str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Handle the odd situation in which we get STRING_CST which contain the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     starting and ending quotes.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (version_str[0] == '"')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      version_str++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      version_len = strrchr (&version_str[1], '"') - version_str;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      last = '"';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    version_len = strlen (version_str);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (version_len < 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Version string must consist of digits and periods only.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (strspn (version_str, "0123456789._") != version_len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!ISDIGIT (version_str[0]) || !ISDIGIT (version_str[version_len - 1]))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  version_array[MAJOR] = strtoul (version_str, &end, 10);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (*end == '_')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      delimiter = '_';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      alt_delim = '.';
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  version_str = end + ((*end == delimiter) ? 1 : 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (version_array[MAJOR] == 100000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (version_array[MAJOR]  > 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Version string must not contain adjacent delimiters.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (*version_str == delimiter || *version_str == alt_delim)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  version_array[MINOR] = strtoul (version_str, &end, 10);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (*end == alt_delim)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  version_str = end + ((*end == delimiter) ? 1 : 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (version_array[MINOR]  > 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  version_array[TINY] = strtoul (version_str, &end, 10);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (version_array[TINY]  > 99)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Version string must contain no more than three tokens.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (*end != last)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Turn a version expressed as maj.min.tiny into an unsigned long
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   integer representing the value used in macOS availability macros.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static unsigned long
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++version_from_version_array (unsigned vers[3])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned long res = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* There seems to be a special "unknown" value.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (vers[0] == 100000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return 999999;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Here, we follow the 'modern' / 'legacy' numbering scheme for versions.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (vers[0] > 10 || vers[1] >= 10)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    res = vers[0] * 10000 + vers[1] * 100 + vers[2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      res = vers[0] * 100;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (vers[1] > 9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  res += 90;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  res += vers[1] * 10;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (vers[2] > 9)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  res += 9;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  res += vers[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return res;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Extract a macOS version from an availability attribute argument.  */
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef RPATH_SETS_NODEFAULT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (seen_rpath_p && !seen_nodefaultrpaths_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static unsigned long
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++os_version_from_avail_value (tree value)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned long res = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned vers[3] = {0,0,0};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (TREE_CODE (value) == STRING_CST)
</span> +    {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      ++*decoded_options_count;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      *decoded_options = XRESIZEVEC (struct cl_decoded_option,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                               *decoded_options,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                               *decoded_options_count);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      generate_option (OPT_nodefaultrpaths, NULL, 1, CL_DRIVER,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                 &(*decoded_options)[*decoded_options_count - 1]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (parse_version (&vers[0], TREE_STRING_POINTER (value)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  res = version_from_version_array (&vers[0]);
</span> +    }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/config/darwin.cc gcc/config/darwin.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index f065a13..7cd684c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/config/darwin.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/config/darwin.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -118,7 +118,7 @@ static bool ld_init_term_start_labels = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- section * darwin_sections[NUM_DARWIN_SECTIONS];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* While we transition to using in-tests instead of ifdef'd code.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#if !HAVE_lo_sum
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if !HAVE_lo_sum || DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define gen_macho_high(m,a,b) (a)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define gen_macho_low(m,a,b,c) (a)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1052,6 +1052,7 @@ machopic_legitimize_pic_address (rtx orig, machine_mode mode, rtx reg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return pic_ref;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_unreachable ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return res;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Handle a "weak_import" attribute; arguments as in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    struct attribute_spec.handler.  */
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if !DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Callbacks to output the stub or non-lazy pointers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    Each works on the item in *SLOT,if it has been used.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    DATA is the FILE* for assembly output.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1207,6 +1208,7 @@ machopic_finish (FILE *out_file)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   machopic_indirections->traverse_noresize
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     <FILE *, machopic_output_indirection> (out_file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2176,6 +2297,231 @@ darwin_handle_weak_import_attribute (tree *node, tree name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return NULL_TREE;
</span>  }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- machopic_operand_p (rtx op)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1936,6 +1938,8 @@ darwin_label_is_anonymous_local_objc_name (const char *name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else if (startswith ((const char *)p, "ClassMethods"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  else if (startswith ((const char *)p, "ClassProtocols"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else if (startswith ((const char *)p, "Instance"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       if (p[8] == 'I' || p[8] == 'M')
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2238,6 +2242,8 @@ darwin_emit_except_table_label (FILE *file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NUM_AV_OSES 13
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++const char *availability_os[NUM_AV_OSES]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  = { "macos", "macosx", "ios", "tvos", "watchos", "driverkit", "swift",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      "maccatalyst", "macCatalyst", "xros", "visionos", "android", "zos" };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define NUM_AV_CLAUSES 6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++const char *availability_clause[NUM_AV_CLAUSES]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  = { "unavailable", "introduced", "deprecated", "obsoleted", "message",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      "replacement" };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Validate and act upon the arguments to an 'availability' attribute.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++tree
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++darwin_handle_availability_attribute (tree *node, tree name, tree args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                int flags, bool * no_add_attrs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree decl = *node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *no_add_attrs = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!decl || (!TYPE_P (decl) && !DECL_P (decl)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      warning (OPT_Wattributes, "%qE attribute ignored", name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (decl == error_mark_node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  location_t loc = DECL_SOURCE_LOCATION (decl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (args == NULL_TREE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      error_at (loc, "%qE attribute requires at least one argument",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (args == error_mark_node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* The first argument must name a supported OS - although we could choose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     to ignore any OS we don't recognise.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_checking_assert (TREE_CODE (args) == TREE_LIST);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree platform = TREE_VALUE (args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (platform == error_mark_node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_checking_assert (TREE_CODE (platform) == IDENTIFIER_NODE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool platform_ok = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned plat_num = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (; plat_num < (unsigned) NUM_AV_OSES; plat_num++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (strcmp (availability_os[plat_num], IDENTIFIER_POINTER (platform)) == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  platform_ok = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!platform_ok)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      error_at (input_location,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          "platform %qE is not recognised for the %<availability%> "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          "attribute", platform);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (plat_num > 1) /* We only compile for macos so far.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* We might be dealing with an object or type.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree target_decl = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree type = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool warn = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (DECL_P (*node))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      type = TREE_TYPE (decl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (TREE_CODE (decl) == TYPE_DECL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    || TREE_CODE (decl) == PARM_DECL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    || VAR_OR_FUNCTION_DECL_P (decl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    || TREE_CODE (decl) == FIELD_DECL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    || TREE_CODE (decl) == CONST_DECL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /*|| objc_method_decl (TREE_CODE (decl))*/)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  target_decl = decl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  warn = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (TYPE_P (*node))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    type = target_decl = *node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    warn = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree what = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (warn)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (type && TYPE_NAME (type))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (TREE_CODE (TYPE_NAME (type)) == IDENTIFIER_NODE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      what = TYPE_NAME (*node);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else if (TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             && DECL_NAME (TYPE_NAME (type)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      what = DECL_NAME (TYPE_NAME (type));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (what)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  warning (OPT_Wattributes, "%qE attribute ignored for %qE", name, what);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  warning (OPT_Wattributes, "%qE attribute ignored", name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Now we have to parse the availability clauses.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree msg = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree replacement = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool unavailable = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned introduced = 1000;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned deprecated = current_os_version + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned obsoleted = current_os_version + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (tree arg = TREE_CHAIN (args); arg; arg = TREE_CHAIN (arg))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tree clause_name = TREE_VALUE (arg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tree clause_value = TREE_PURPOSE (arg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (clause_name == error_mark_node
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    || clause_value == error_mark_node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      unsigned clause_num = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      for (; clause_num < (unsigned) NUM_AV_CLAUSES; clause_num++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (strcmp (availability_clause[clause_num],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              IDENTIFIER_POINTER (clause_name)) == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      switch (clause_num)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    error_at (input_location,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              "clause %qE is not recognised for the %<availability%> "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              "attribute", clause_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case 0:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    unavailable = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case 1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case 2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case 3:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!clause_value)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      error_at (input_location, "%<%E=%> requires a value", clause_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        unsigned version = os_version_from_avail_value (clause_value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (version == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          error_at (input_location, "the value %qE provided to %qE is "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  "not a valid OS version", clause_value, clause_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else if (clause_num == 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          introduced = version;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else if (clause_num == 2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          deprecated = version;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else if (clause_num == 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          obsoleted = version;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case 4:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case 5:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (!clause_value || TREE_CODE (clause_value) != STRING_CST)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      error_at (input_location, "%<%E=%> requires a string", clause_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else if (clause_num == 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      msg = clause_value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      replacement = clause_value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Now figure out what to do.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree maybe_text = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (replacement)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    maybe_text = tree_cons (NULL_TREE, replacement, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    maybe_text = tree_cons (NULL_TREE, msg, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (unavailable || current_os_version >= obsoleted)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      TREE_UNAVAILABLE (*node) = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* We do not handle the availability attribute at diagnostics-time, so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   if we want the informational messages, then attach them to additional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   attributes for the deprecation or unavailability.  TODO; maybe we can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   fabricate the composite here.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (maybe_text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *no_add_attrs = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    tree new_attr = tree_cons (get_identifier ("unavailable"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                               maybe_text, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* This is the actual consequence of the evaluation.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (TYPE_P (target_decl) && !(flags & (int) ATTR_FLAG_TYPE_IN_PLACE))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        *node = build_variant_type_copy (*node);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        TYPE_ATTRIBUTES (*node) = chainon (TYPE_ATTRIBUTES (*node),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           new_attr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      DECL_ATTRIBUTES (*node) = chainon (DECL_ATTRIBUTES (*node),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                         new_attr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   else if (current_os_version > deprecated)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      TREE_DEPRECATED (*node) = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (maybe_text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *no_add_attrs = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    tree new_attr = tree_cons (get_identifier ("deprecated"),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                               maybe_text, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* This is the actual consequence of the evaluation.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (TYPE_P (target_decl) && !(flags & (int) ATTR_FLAG_TYPE_IN_PLACE))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        *node = build_variant_type_copy (*node);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        TYPE_ATTRIBUTES (*node) = chainon (TYPE_ATTRIBUTES (*node),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           new_attr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      DECL_ATTRIBUTES (*node) = chainon (DECL_ATTRIBUTES (*node),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                         new_attr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else if (current_os_version < introduced)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *no_add_attrs = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++darwin_attribute_takes_identifier_p (const_tree attr_id)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return is_attribute_p ("availability", attr_id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Emit a label for an FDE, making it global and/or weak if appropriate.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    The third parameter is nonzero if this is for exception handling.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    The fourth parameter is nonzero if this is just a placeholder for an
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2267,6 +2613,8 @@ darwin_emit_except_table_label (FILE *file)
</span>  rtx
  darwin_make_eh_symbol_indirect (rtx orig, bool ARG_UNUSED (pubvis))
  {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3731,7 +6290,7 @@ index f065a13..7cd684c 100644
</span>    if (DARWIN_PPC == 0 && TARGET_64BIT)
      return orig;
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3058,7 +3064,12 @@ darwin_file_end (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3115,7 +3463,12 @@ darwin_file_end (void)
</span>        fprintf (asm_out_file, "\t.long\t0\n\t.long\t%u\n", flags);
       }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3744,10 +6303,54 @@ index f065a13..7cd684c 100644
</span>    if (flag_apple_kext)
      {
        /* These sections are only used for kernel code.  */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3291,6 +3644,13 @@ darwin_kextabi_p (void) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return flag_apple_kext;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* True, iff we want to map __builtin_unreachable to a trap.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++darwin_unreachable_traps_p (void) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return darwin_unreachable_traps;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin_override_options (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3311,7 +3671,14 @@ darwin_override_options (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   generating_for_darwin_version = 8;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* Earlier versions are not specifically accounted, until required.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      unsigned vers[3] = {0,0,0};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (!parse_version (vers, darwin_macosx_version_min))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  error_at (UNKNOWN_LOCATION, "how did we get a bad OS version? (%s)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            darwin_macosx_version_min);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      current_os_version = version_from_version_array (vers);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    current_os_version = 1058;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Some codegen needs to account for the capabilities of the target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      linker.  */
</span> diff --git gcc/config/darwin.h gcc/config/darwin.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 51e257d..13ba6e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6b124601274..ac291582eb8 100644
</span> --- gcc/config/darwin.h
 +++ gcc/config/darwin.h
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Target definitions for Darwin (Mac OS X) systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Target definitions for Darwin (macOS) systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Copyright (C) 1989-2022 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Contributed by Apple Computer Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,7 +27,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define CONFIG_DARWIN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The definitions in this file are common to all processor types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   running Darwin, which is the kernel for Mac OS X.  Darwin is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   running Darwin, which is the kernel for macOS.  Darwin is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    basically a BSD user layer laid over a Mach kernel, then evolved
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    for many years (at NeXT) in parallel with other Unix systems.  So
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    while the runtime is a somewhat idiosyncratic Mach-based thing,
</span> @@ -42,6 +42,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  
  #define DARWIN_X86 0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3756,22 +6359,49 @@ index 51e257d..13ba6e6 100644
</span>  
  #define OBJECT_FORMAT_MACHO 1
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -296,6 +297,31 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -217,8 +218,7 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "%{image_base*:-Xlinker -image_base -Xlinker %*} %<image_base*",   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "%{init*:-Xlinker -init -Xlinker %*} %<init*",                     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "%{multi_module:-Xlinker -multi_module} %<multi_module",           \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  "%{multiply_defined*:-Xlinker -multiply_defined -Xlinker %*} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     %<multiply_defined* ",                                               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  "%{multiply_defined*:-Xlinker -multiply_defined -Xlinker %*} ",       \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "%{multiplydefinedunused*:\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      -Xlinker -multiply_defined_unused -Xlinker %*} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      %<multiplydefinedunused* ",                                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -271,6 +271,12 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "%<y*",                                                            \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "%<Mach "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if LD64_HAS_DEMANGLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_LD_DEMANGLE " -demangle "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_LD_DEMANGLE ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if LD64_HAS_EXPORT_DYNAMIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_RDYNAMIC "%{rdynamic:-export_dynamic}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -304,6 +310,35 @@ extern GTY(()) int darwin_ms_struct;
</span>  #define DARWIN_CC1_SPEC                                                  \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   "%<dynamic %<dynamiclib %<force_cpusubtype_ALL "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "%<dynamic %<force_cpusubtype_ALL %<multiply_defined* %<dynamiclib"
</span>  
 +/* When we are using embedded runpaths DARWIN_AT_RPATH is set. */
 +#if DARWIN_AT_RPATH
 +# define DARWIN_RPATH_LINK \
 +"%{!r:%{!nostdlib:%{!nodefaultrpaths:%(darwin_rpaths)}}}"
 +# define DARWIN_SHARED_LIBGCC "-lgcc_s.1.1"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_SHARED_WEAK_ADDS " "
</span> +#else
 +# define DARWIN_RPATH_LINK ""
 +# define DARWIN_SHARED_LIBGCC \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+"%:version-compare(!> 10.11 mmacosx-version-min= -lgcc_s.1.1) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ %:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w) "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%:version-compare(!> 10.11 mmacosx-version-min= -lgcc_s.1.1)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_SHARED_WEAK_ADDS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{%:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w): \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " DARWIN_HEAP_T_LIB "}"
</span> +#endif
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +/* We might elect to add a path even when this compiler does not use embedded
 +   run paths, so that we can use libraries from an alternate compiler that is
 +   using embedded runpaths.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3788,7 +6418,31 @@ index 51e257d..13ba6e6 100644
</span>  #define SUBSUBTARGET_OVERRIDE_OPTIONS                                    \
    do {                                                                        \
      darwin_override_options ();                                               \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -387,7 +413,9 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -337,7 +372,8 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_NOCOMPACT_UNWIND \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-" %:version-compare(>= 10.6 mmacosx-version-min= -no_compact_unwind) "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{!fuse-ld=lld: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %:version-compare(>= 10.6 mmacosx-version-min= -no_compact_unwind)}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* In Darwin linker specs we can put -lcrt0.o and ld will search the library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    path for crt0.o or -lcrtx.a and it will search for libcrtx.a.  As for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -357,10 +393,12 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LINK_COMMAND_SPEC_A \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "%{!c:%{!E:%{!S:%{!M:%{!MM:%{!fsyntax-only:%{!fdump=*: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %(linker)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    DARWIN_LD_DEMANGLE \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     LINK_PLUGIN_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "%{flto*:%<fcompare-debug*} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      %{flto} %{fno-lto} %{flto=*} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    %l " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     %l \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     %{fuse-ld=*:-fuse-ld=%*} " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DARWIN_PLATFORM_ID \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     LINK_COMPRESS_DEBUG_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "%X %{s} %{t} %{Z} %{u*} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -399,7 +437,9 @@ extern GTY(()) int darwin_ms_struct;
</span>      DARWIN_NOPIE_SPEC \
      DARWIN_RDYNAMIC \
      DARWIN_NOCOMPACT_UNWIND \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3799,69 +6453,32 @@ index 51e257d..13ba6e6 100644
</span>  
  /* Spec that controls whether the debug linker is run automatically for
     a link step.  This needs to be done if there is a source file on the
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -465,34 +493,19 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    This is because,in general, we need to unwind through system libraries that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    are linked with the shared unwinder in libunwind (or libgcc_s for 10.4/5).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   For -static-libgcc: < 10.6, use the unwinder in libgcc_eh (and find
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   the emultls impl. there too).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   For -static-libgcc: >= 10.6, the unwinder *still* comes from libSystem and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   we find the emutls impl from lemutls_w. In either case, the builtins etc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   are linked from -lgcc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   When we have specified shared-libgcc or any case that might require
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   exceptions, we pull the libgcc content (including emulated tls) from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   -lgcc_s.1 in GCC and the unwinder from /usr/lib/libgcc_s.1 for < 10.6 and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   libSystem for >= 10.6 respectively.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   Otherwise, we just link the emutls/builtins from convenience libs.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   If we need exceptions, prior to 10.3.9, then we have to link the static
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   eh lib, since there's no shared version on the system.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   In all cases, libgcc_s.1 will be installed with the compiler, or any app
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   built using it, so we can link the builtins and emutls shared on all.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    We have to work around that DYLD_XXXX are disabled in macOS 10.11+ which
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    means that any bootstrap trying to use a shared libgcc with a bumped SO-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    name will fail.  This means that we do not accept shared libgcc for these
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   versions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   versions, unless we have embedded run paths enabled, in which case the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   compiler will add the appropriate path to find the library.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   For -static-libgcc: < 10.6, use the unwinder in libgcc_eh (and find
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   the emultls impl. there too).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    For -static-libgcc: >= 10.6, the unwinder *still* comes from libSystem and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    we find the emutls impl from lemutls_w. In either case, the builtins etc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    are linked from -lgcc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-->
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    Otherwise, we just link the shared version of gcc_s.1.1 and pick up
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    exceptions:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      * Prior to 10.3.9, then we have to link the static eh lib, since there
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -502,6 +515,10 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    In all cases, libgcc_s.1.1 will be installed with the compiler, or any app
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    built using it, so we can link the builtins and emutls shared on all.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   On most Darwin systems (other than Arm64) we will also install a legacy
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   support libgcc_s.1.dylib to support executables linked with libgcc_ext by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   earlier GCC versions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #undef REAL_LIBGCC_SPEC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define REAL_LIBGCC_SPEC \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -509,8 +526,7 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     %:version-compare(!> 10.6 mmacosx-version-min= -lgcc_eh)             \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     %:version-compare(>= 10.6 mmacosx-version-min= -lemutls_w);                  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -519,7 +559,7 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "%{static-libgcc|static:                                               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %:version-compare(!> 10.6 mmacosx-version-min= -lgcc_eh);            \
</span>     shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime:                \
 -    %:version-compare(!> 10.11 mmacosx-version-min= -lgcc_s.1.1)     \
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    %:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w)               \
</span> +   " DARWIN_SHARED_LIBGCC "                                              \
      %:version-compare(!> 10.3.9 mmacosx-version-min= -lgcc_eh)               \
      %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4)   \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5);     \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -545,7 +561,8 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5)         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -527,10 +567,11 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_WEAK_CRTS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "%{static-libgcc|static:                                               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   %:version-compare(>= 10.6 mmacosx-version-min= -lemutls_w) ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     %:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w) ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   : -lemutls_w \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %{%:version-compare(>= 10.6 mmacosx-version-min= -lemutls_w):        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      " DARWIN_HEAP_T_LIB "} ;                                            \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime: " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     DARWIN_SHARED_WEAK_ADDS " ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   : -lemutls_w " DARWIN_HEAP_T_LIB " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* We specify crt0.o as -lcrt0.o so that ld will search the library path.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -561,7 +602,8 @@ extern GTY(()) int darwin_ms_struct;
</span>    { "darwin_crt2", DARWIN_CRT2_SPEC },                                 \
    { "darwin_crt3", DARWIN_CRT3_SPEC },                                      \
    { "darwin_dylib1", DARWIN_DYLIB1_SPEC },                          \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3871,17 +6488,16 @@ index 51e257d..13ba6e6 100644
</span>  
  #define DARWIN_CRT1_SPEC                                              \
    "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o)           \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -571,6 +588,17 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -587,6 +629,16 @@ extern GTY(()) int darwin_ms_struct;
</span>  "%{!static:%:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o)    \
           %{fgnu-tm: -lcrttms.o}}"
  
 +#if DARWIN_AT_RPATH
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* A default rpath, that picks up dependent libraries installed in the same 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* A default rpath, that picks up dependent libraries installed in the same
</span> +   director as one being loaded.  */
 +#define DARWIN_RPATH_SPEC \
 +  "%:version-compare(>= 10.5 mmacosx-version-min= -rpath) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+   %:version-compare(>= 10.5 mmacosx-version-min= @loader_path) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   %P "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   %{%:version-compare(>= 10.5 mmacosx-version-min= @loader_path): %P }"
</span> +#else
 +#define DARWIN_RPATH_SPEC ""
 +#endif
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3889,11 +6505,47 @@ index 51e257d..13ba6e6 100644
</span>  #ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
  /* Emit macosx version (but only major).  */
  #define ASM_MMACOSX_VERSION_MIN_SPEC \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -957,7 +1009,12 @@ extern GTY(()) section * darwin_sections[NUM_DARWIN_SECTIONS];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   { "apple_kext_compatibility", 0, 0, false, true, false, false,             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     darwin_handle_kext_attribute, NULL },                              \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   { "weak_import", 0, 0, true, false, false, false,                          \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    darwin_handle_weak_import_attribute, NULL }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    darwin_handle_weak_import_attribute, NULL },                       \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "availability", 0, -1, true, false, false, false,                        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    darwin_handle_availability_attribute, NULL }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P darwin_attribute_takes_identifier_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Make local constant labels linker-visible, so that if one follows a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    weak_global constant, ld64 will be able to separate the atoms.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1205,6 +1262,10 @@ void add_framework_path (char *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_N_FORMAT_TYPES 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_FORMAT_TYPES darwin_additional_format_types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We want __builtin_unreachable to be expanded as a trap instruction.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_UNREACHABLE_SHOULD_TRAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_UNREACHABLE_SHOULD_TRAP darwin_unreachable_traps_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef USED_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void darwin_driver_init (unsigned int *,struct cl_decoded_option **);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define GCC_DRIVER_HOST_INITIALIZATION \
</span> diff --git gcc/config/darwin.opt gcc/config/darwin.opt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index cc7d14c..b1cb846 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 51fe410cb72..80a753e2d38 100644
</span> --- gcc/config/darwin.opt
 +++ gcc/config/darwin.opt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -237,6 +237,10 @@ nodefaultexport
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -91,6 +91,10 @@ mtarget-linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Target RejectNegative Joined Separate Var(darwin_target_linker) Init(LD64_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -mtarget-linker <version>   Specify that ld64 <version> is the toolchain linker for the current invocation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++munreachable-traps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Target Var(darwin_unreachable_traps) Init(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++When set (the default) this makes __builtin_unreachable render as a trap.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ; Driver options.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ all_load
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -241,6 +245,10 @@ nodefaultexport
</span>  Driver RejectNegative
  Do not add a default symbol exports to modules or dynamic libraries.
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3905,10 +6557,20 @@ index cc7d14c..b1cb846 100644
</span>  Driver RejectNegative
  (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable.
 diff --git gcc/config/i386/darwin.h gcc/config/i386/darwin.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a55f6b2..36a3286 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 12cdc34a19e..e5d6797fe8a 100644
</span> --- gcc/config/i386/darwin.h
 +++ gcc/config/i386/darwin.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -308,3 +308,10 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -121,6 +121,9 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_SUBARCH_SPEC DARWIN_ARCH_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DARWIN_HEAP_T_LIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_HEAP_T_LIB " -lheapt_w "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef SUBTARGET_EXTRA_SPECS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define SUBTARGET_EXTRA_SPECS                                   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DARWIN_EXTRA_SPECS                                            \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -308,3 +311,9 @@ along with GCC; see the file COPYING3.  If not see
</span>  #define CLEAR_INSN_CACHE(beg, end)                               \
    extern void sys_icache_invalidate(void *start, size_t len); \
    sys_icache_invalidate ((beg), (size_t)((end)-(beg)))
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3917,13 +6579,12 @@ index a55f6b2..36a3286 100644
</span> +   trampolines.  */
 +#undef X86_CUSTOM_FUNCTION_TEST
 +#define X86_CUSTOM_FUNCTION_TEST \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  (!flag_off_stack_trampolines && !flag_trampolines) ? 1 : 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (flag_trampolines && flag_trampoline_impl == TRAMPOLINE_IMPL_HEAP) ? 0 : 1
</span> diff --git gcc/config/i386/i386.cc gcc/config/i386/i386.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9a9ff3b..42dd2d4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index af42e4b9739..872e5203aba 100644
</span> --- gcc/config/i386/i386.cc
 +++ gcc/config/i386/i386.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -24735,7 +24735,7 @@ ix86_libgcc_floating_mode_supported_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24792,7 +24792,7 @@ ix86_libgcc_floating_mode_supported_p
</span>  #define TARGET_HARD_REGNO_SCRATCH_OK ix86_hard_regno_scratch_ok
  
  #undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3933,7 +6594,7 @@ index 9a9ff3b..42dd2d4 100644
</span>  #undef TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID
  #define TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID ix86_addr_space_zero_address_valid
 diff --git gcc/config/i386/i386.h gcc/config/i386/i386.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index fce0b35..f909fa7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5cea7157a1c..30a6a1cefe2 100644
</span> --- gcc/config/i386/i386.h
 +++ gcc/config/i386/i386.h
 @@ -749,6 +749,12 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3949,19 +6610,46 @@ index fce0b35..f909fa7 100644
</span>  /* C++ stores the virtual bit in the lowest bit of function pointers.  */
  #define TARGET_PTRMEMFUNC_VBIT_LOCATION ptrmemfunc_vbit_in_pfn
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/rs6000/darwin.h gcc/config/rs6000/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 626b40dab29..aabcbd61e2e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/rs6000/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/rs6000/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -113,6 +113,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -lSystem                                                                \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DARWIN_HEAP_T_LIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_HEAP_T_LIB " "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* We want -fPIC by default, unless we're using -static to compile for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    the kernel or some such.  The "-faltivec" option should have been
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    called "-maltivec" all along.  */
</span> diff --git gcc/configure gcc/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c749ace..dfbe287 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f697874f2d8..508c4e01ca6 100755
</span> --- gcc/configure
 +++ gcc/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -634,6 +634,7 @@ LIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -632,10 +632,10 @@ ac_includes_default="\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_subst_vars='LTLIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBOBJS
</span>  CET_HOST_FLAGS
<span style='display:block; white-space:pre;background:#ffe0e0;'>- NO_PIE_FLAG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NO_PIE_CFLAGS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_pie_tools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_default_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-NO_PIE_FLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-NO_PIE_CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-enable_default_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LD_PICFLAG
</span>  PICFLAG
<span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_default_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span>  enable_host_shared
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -740,6 +741,8 @@ ORIGINAL_PLUGIN_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_plugin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pluginlibs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -735,11 +735,15 @@ ORIGINAL_NM_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_cv_nm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_LD_GOLD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_LD_BFD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_CLASSIC_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_LLD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_PLUGIN_LD_FOR_TARGET
</span>  gcc_cv_ld
  ORIGINAL_AS_FOR_TARGET
  gcc_cv_as
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3970,7 +6658,7 @@ index c749ace..dfbe287 100755
</span>  enable_fast_install
  objdir
  OTOOL64
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1000,6 +1003,8 @@ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1000,6 +1004,8 @@ enable_static
</span>  with_pic
  enable_fast_install
  enable_libtool_lock
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3979,33 +6667,33 @@ index c749ace..dfbe287 100755
</span>  enable_ld
  enable_gold
  with_plugin_ld
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1030,6 +1035,7 @@ with_linker_hash_style
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1025,6 +1031,7 @@ enable_link_serialization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_version_specific_runtime_libs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_plugin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libquadmath_support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_linker_hash_style
</span>  with_diagnostics_color
<span style='display:block; white-space:pre;background:#ffe0e0;'>- with_diagnostics_urls
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_default_pie
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_pie_tools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_cet
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_s390_excess_float_precision
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- '
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1733,6 +1739,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1733,6 +1740,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-ld[=ARG]       build ld [ARG={default,yes,no}]
    --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
    --enable-gnu-indirect-function
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1790,6 +1798,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1787,6 +1797,7 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           in a compiler-specific directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-plugin         enable plugin support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-host-shared    build host code as shared libraries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build host code as PIE
</span>    --disable-libquadmath-support
                            disable libquadmath support for Fortran
    --enable-default-pie    enable Position Independent Executable as default
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-pie-tools      build Position Independent Executables for the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          compilers and other tools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --enable-cet            enable Intel CET in host libraries [default=auto]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --enable-s390-excess-float-precision
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                           on s390 targets, evaluate float with double
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1850,6 +1860,9 @@ Optional Packages:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1850,6 +1861,9 @@ Optional Packages:
</span>    --with-pic              try to use only PIC/non-PIC objects [default=use
                            both]
    --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4015,36 +6703,67 @@ index c749ace..dfbe287 100755
</span>    --with-plugin-ld=[ARG]  specify the plugin linker
    --with-glibc-version=M.N
                            assume GCC used with glibc version M.N or later
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3766,15 +3779,24 @@ if test x${gcc_gxx_libcxx_include_dir} != x; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $as_echo "#define ENABLE_STDLIB_OPTION 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3748,20 +3762,19 @@ gcc_gxx_libcxx_include_dir=
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  $as_echo "#define ENABLE_STDLIB_OPTION 0" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  case $target in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *-darwin1[1-9]* | *-darwin2*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       # Default this on for Darwin versions which default to libcxx.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       $as_echo "#define ENABLE_STDLIB_OPTION 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       $as_echo "#define ENABLE_STDLIB_OPTION 0" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --with-gxx-libcxx-include-dir was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${with_gxx_libcxx_include_dir+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  withval=$with_gxx_libcxx_include_dir; case "${withval}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-yes)      as_fn_error $? "bad value ${withval} given for libc++ include directory" "$LINENO" 5 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-*)        gcc_gxx_libcxx_include_dir=$with_gxx_libcxx_include_dir ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  withval=$with_gxx_libcxx_include_dir; gcc_gxx_libcxx_include_dir=$with_gxx_libcxx_include_dir
</span>  fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>--# ??? This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if test x${gcc_gxx_libcxx_include_dir} = x; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  libcxx_incdir='include/c++/v1'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if test x${enable_version_specific_runtime_libs} = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    gcc_gxx_libcxx_include_dir='${libsubdir}/libc++_include/c++/v1'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gcc_gxx_libcxx_include_dir='${libsubdir}/$libcxx_incdir'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # --with-gxx-libcxx-include-dir controls the enabling of the -stdlib option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if --with-gxx-libcxx-include-dir is 'no' we disable the stdlib option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if --with-gxx-libcxx-include-dir is 'yes' we enable the stdlib option and use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the default path within the installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if --with-gxx-libcxx-include-dir is unset we enable the stdlib option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# based on the platform (to be available on platform versions where it is the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# based on the platform (to be available on platform versions where it is the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # default for the system tools). We also use a default path within the compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# install tree.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Otherwise, we use the path provided and enable the stdlib option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# install tree.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Otherwise, we use the path provided and enable the stdlib option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If both --with-sysroot and --with-gxx-libcxx-include-dir are passed, we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # check to see if the latter starts with the former and, upon success, compute
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gcc_gxx_libcxx_include_dir as relative to the sysroot.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3769,16 +3782,20 @@ gcc_gxx_libcxx_include_dir_add_sysroot=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_enable_stdlib_opt=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x${gcc_gxx_libcxx_include_dir} != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test x${gcc_gxx_libcxx_include_dir} = xno; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    # set defaults for the dir, but the option is disabled anyway.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # set defaults for the dir, but the option is disabled anyway.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gcc_gxx_libcxx_include_dir=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  elif test x${gcc_gxx_libcxx_include_dir} = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # set defaults for the dir, and enable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_gxx_libcxx_include_dir=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_enable_stdlib_opt=1
</span>    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    libcxx_incdir='libc++_include/c++/$(version)/v1'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if test x$host != x$target; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        libcxx_incdir="$target_alias/$libcxx_incdir"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17862,6 +17884,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gcc_enable_stdlib_opt=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case $target in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *-darwin1[1-9]* | *-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       # Default this on for Darwin versions which default to libcxx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       # and embed the path in the compiler install so that we get a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       # Default this on for Darwin versions which default to libcxx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       # and embed the path in the compiler install so that we get a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # self-contained toolchain.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        gcc_enable_stdlib_opt=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16180,7 +16197,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17885,6 +17902,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4061,8 +6780,9 @@ index c749ace..dfbe287 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4070,15 +6790,16 @@ index c749ace..dfbe287 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4092,49 +6813,41 @@ index c749ace..dfbe287 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17879,10 +17942,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17902,9 +17962,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19668,7 +19740,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19691,7 +19755,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 19671 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 19743 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 19694 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 19758 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -19774,7 +19846,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19797,7 +19861,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 19777 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 19849 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 19800 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 19864 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -20650,6 +20722,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20673,6 +20737,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4151,8 +6864,9 @@ index c749ace..dfbe287 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4160,15 +6874,16 @@ index c749ace..dfbe287 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4182,38 +6897,31 @@ index c749ace..dfbe287 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -20667,12 +20780,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20690,12 +20797,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23023,6 +23149,35 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23046,6 +23161,35 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4249,30 +6957,132 @@ index c749ace..dfbe287 100755
</span>  # Identify the assembler which will work hand-in-glove with the newly
  # built GCC, so that we can examine its features.  This is the assembler
  # which will be driven by the driver program.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -32424,6 +32579,22 @@ $as_echo "#define ENABLE_DEFAULT_PIE 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23322,6 +23466,14 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$gold_non_default" >&6; }
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Check whether --enable-pie-tools was given; this is passed automatically
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# from the top level where it has already been validated.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Check whether --enable-pie-tools was given.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "${enable_pie_tools+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  enableval=$enable_pie_tools; enable_pie_tools=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_LLD_FOR_TARGET=${gcc_cv_ld}64.lld
</span> +else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  enable_pie_tools=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_LLD_FOR_TARGET=$gcc_cv_lld
</span> +fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_CLASSIC_LD_FOR_TARGET=$gcc_cv_ld-classic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$ORIGINAL_LD_FOR_TARGET" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ./collect-ld | ./collect-ld$build_exeext) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30851,6 +31003,7 @@ if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Set defaults for possibly untestable items.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gcc_cv_ld64_export_dynamic=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gcc_cv_ld64_platform_version=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_cv_ld64_demangle=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$build" = "$host"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     darwin_try_test=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30874,6 +31027,9 @@ $as_echo_n "checking ld64 specified version... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_major" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$gcc_cv_ld64_major" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if test "$gcc_cv_ld64_major" -ge 97; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      gcc_cv_ld64_demangle=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if test "$gcc_cv_ld64_major" -ge 236; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       gcc_cv_ld64_export_dynamic=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30891,6 +31047,15 @@ $as_echo_n "checking linker version... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_version" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$gcc_cv_ld64_version" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for -demangle support" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking linker for -demangle support... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_cv_ld64_demangle=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if $gcc_cv_ld -demangle < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      gcc_cv_ld64_demangle=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_demangle" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$gcc_cv_ld64_demangle" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for -export_dynamic support" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo_n "checking linker for -export_dynamic support... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gcc_cv_ld64_export_dynamic=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30919,6 +31084,12 @@ _ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cat >>confdefs.h <<_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LD64_HAS_DEMANGLE $gcc_cv_ld64_demangle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test x$enable_pie_tools = xyes ; then
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+$as_echo "#define ENABLE_PIE_TOOLS 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat >>confdefs.h <<_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LD64_HAS_EXPORT_DYNAMIC $gcc_cv_ld64_export_dynamic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32452,13 +32623,17 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-host-shared was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_host_shared+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enableval=$enable_host_shared; PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_shared;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span> +
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-libquadmath-support was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32612,10 +32787,6 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_c_no_fpie" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$gcc_cv_c_no_fpie" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test "$gcc_cv_c_no_fpie" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  NO_PIE_CFLAGS="-fno-PIE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if -no-pie works.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -no-pie option" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32640,11 +32811,28 @@ rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_no_pie" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$gcc_cv_no_pie" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test "$gcc_cv_no_pie" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  NO_PIE_FLAG="-no-pie"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$gcc_cv_c_no_fpie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fno-PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span> +fi
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$gcc_cv_no_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=-no-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Check if -fno-PIE works.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fno-PIE option" >&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $as_echo_n "checking for -fno-PIE option... " >&6; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -32961,6 +33132,10 @@ LTLIBOBJS=$ac_ltlibobjs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable Intel CET on Intel CET enabled host if jit is enabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  # Check whether --enable-cet was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_cet+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33127,6 +33315,10 @@ LTLIBOBJS=$ac_ltlibobjs
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4284,80 +7094,415 @@ index c749ace..dfbe287 100755
</span>  : "${CONFIG_STATUS=./config.status}"
  ac_write_fail=0
 diff --git gcc/configure.ac gcc/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 992a50e..8ec519a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fec897c2c08..d7d07c76719 100644
</span> --- gcc/configure.ac
 +++ gcc/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -249,14 +249,22 @@ if test x${gcc_gxx_libcxx_include_dir} != x; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   AC_DEFINE(ENABLE_STDLIB_OPTION, 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             [Define if the -stdlib= option should be enabled.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -234,18 +234,17 @@ gcc_gxx_libcxx_include_dir=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_WITH(gxx-libcxx-include-dir,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--with-gxx-libcxx-include-dir=DIR],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 [specifies directory to find libc++ header files])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[case "${withval}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-yes)      AC_MSG_ERROR(bad value ${withval} given for libc++ include directory) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-*)        gcc_gxx_libcxx_include_dir=$with_gxx_libcxx_include_dir ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-esac])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[gcc_gxx_libcxx_include_dir=$with_gxx_libcxx_include_dir])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # --with-gxx-libcxx-include-dir controls the enabling of the -stdlib option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if --with-gxx-libcxx-include-dir is 'no' we disable the stdlib option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if --with-gxx-libcxx-include-dir is 'yes' we enable the stdlib option and use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the default path within the installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if --with-gxx-libcxx-include-dir is unset we enable the stdlib option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# based on the platform (to be available on platform versions where it is the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# based on the platform (to be available on platform versions where it is the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # default for the system tools). We also use a default path within the compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# install tree.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Otherwise, we use the path provided and enable the stdlib option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# install tree.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Otherwise, we use the path provided and enable the stdlib option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If both --with-sysroot and --with-gxx-libcxx-include-dir are passed, we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # check to see if the latter starts with the former and, upon success, compute
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gcc_gxx_libcxx_include_dir as relative to the sysroot.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -253,16 +252,20 @@ gcc_gxx_libcxx_include_dir_add_sysroot=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_enable_stdlib_opt=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x${gcc_gxx_libcxx_include_dir} != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test x${gcc_gxx_libcxx_include_dir} = xno; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    # set defaults for the dir, but the option is disabled anyway.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # set defaults for the dir, but the option is disabled anyway.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_gxx_libcxx_include_dir=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  elif test x${gcc_gxx_libcxx_include_dir} = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # set defaults for the dir, and enable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gcc_gxx_libcxx_include_dir=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_enable_stdlib_opt=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gcc_enable_stdlib_opt=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span>  else
<span style='display:block; white-space:pre;background:#ffe0e0;'>--  AC_DEFINE(ENABLE_STDLIB_OPTION, 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  case $target in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *-darwin1[[1-9]]* | *-darwin2*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       # Default this on for Darwin versions which default to libcxx.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       AC_DEFINE(ENABLE_STDLIB_OPTION, 1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       AC_DEFINE(ENABLE_STDLIB_OPTION, 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case $target in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *-darwin1[[1-9]]* | *-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       # Default this on for Darwin versions which default to libcxx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       # and embed the path in the compiler install so that we get a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       # Default this on for Darwin versions which default to libcxx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       # and embed the path in the compiler install so that we get a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # self-contained toolchain.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        gcc_enable_stdlib_opt=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2576,6 +2579,21 @@ AC_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(objdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_fast_install)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AM_CONDITIONAL([ENABLE_DARWIN_AT_RPATH], [test x$enable_darwin_at_rpath = xyes])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_DO_EXTRA_RPATH=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_WITH(darwin-extra-rpath,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  [[--with-darwin-extra-rpath=[ARG]]],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   [Specify a runpath directory, additional to those provided by the compiler])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[if test x"$withval" != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   DARWIN_ADD_RPATH="$withval"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   DARWIN_DO_EXTRA_RPATH=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_DEFINE_UNQUOTED(DARWIN_DO_EXTRA_RPATH, $DARWIN_DO_EXTRA_RPATH,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  [Should add an extra runpath directory])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_DEFINE_UNQUOTED(DARWIN_ADD_RPATH, "$DARWIN_ADD_RPATH",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  [Specify a runpath directory, additional to those provided by the compiler])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Identify the assembler which will work hand-in-glove with the newly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # built GCC, so that we can examine its features.  This is the assembler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # which will be driven by the driver program.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2748,7 +2766,15 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_MSG_RESULT($gold_non_default)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_LLD_FOR_TARGET=${gcc_cv_ld}64.lld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_LLD_FOR_TARGET=$gcc_cv_lld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_CLASSIC_LD_FOR_TARGET=$gcc_cv_ld-classic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(ORIGINAL_LD_FOR_TARGET)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(ORIGINAL_LLD_FOR_TARGET)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(ORIGINAL_CLASSIC_LD_FOR_TARGET)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$ORIGINAL_LD_FOR_TARGET" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ./collect-ld | ./collect-ld$build_exeext) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *) AC_CONFIG_FILES(collect-ld:exec-tool.in, [chmod +x collect-ld]) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4776,7 +4802,7 @@ foo: nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           gcc_cv_as_mllvm_x86_pad_for_align,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           [-mllvm -x86-pad-for-align=false], [.text],,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           [AC_DEFINE(HAVE_AS_MLLVM_X86_PAD_FOR_ALIGN, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      [Define if your Mac OS X assembler supports -mllvm -x86-pad-for-align=false.])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      [Define if your macOS assembler supports -mllvm -x86-pad-for-align=false.])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6383,6 +6409,7 @@ if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Set defaults for possibly untestable items.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gcc_cv_ld64_export_dynamic=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gcc_cv_ld64_platform_version=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_cv_ld64_demangle=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$build" = "$host"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     darwin_try_test=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6404,6 +6431,9 @@ if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AC_MSG_CHECKING(ld64 specified version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AC_MSG_RESULT($gcc_cv_ld64_major)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if test "$gcc_cv_ld64_major" -ge 97; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      gcc_cv_ld64_demangle=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if test "$gcc_cv_ld64_major" -ge 236; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       gcc_cv_ld64_export_dynamic=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6419,6 +6449,13 @@ if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AC_MSG_RESULT($gcc_cv_ld64_version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_MSG_CHECKING(linker for -demangle support)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gcc_cv_ld64_demangle=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if $gcc_cv_ld -demangle < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      gcc_cv_ld64_demangle=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_MSG_RESULT($gcc_cv_ld64_demangle)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AC_MSG_CHECKING(linker for -export_dynamic support)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gcc_cv_ld64_export_dynamic=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if $gcc_cv_ld -export_dynamic < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6439,6 +6476,9 @@ if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       [Define to ld64 version.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  AC_DEFINE_UNQUOTED(LD64_HAS_DEMANGLE, $gcc_cv_ld64_demangle,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  [Define to 1 if ld64 supports '-demangle'.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AC_DEFINE_UNQUOTED(LD64_HAS_EXPORT_DYNAMIC, $gcc_cv_ld64_export_dynamic,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [Define to 1 if ld64 supports '-export_dynamic'.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7586,11 +7626,14 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--enable-host-shared],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          [build host code as shared libraries])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[PICFLAG=-fPIC], [PICFLAG=])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as shared libraries])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_host_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as PIE])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_pie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(libquadmath-support,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--disable-libquadmath-support],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7712,10 +7755,6 @@ AC_CACHE_CHECK([for -fno-PIE option],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      [gcc_cv_c_no_fpie=yes],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      [gcc_cv_c_no_fpie=no])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    CXXFLAGS="$saved_CXXFLAGS"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test "$gcc_cv_c_no_fpie" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  NO_PIE_CFLAGS="-fno-PIE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-AC_SUBST([NO_PIE_CFLAGS])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if -no-pie works.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CACHE_CHECK([for -no-pie option],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7726,10 +7765,27 @@ AC_CACHE_CHECK([for -no-pie option],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      [gcc_cv_no_pie=yes],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      [gcc_cv_no_pie=no])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    LDFLAGS="$saved_LDFLAGS"])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if test "$gcc_cv_no_pie" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  NO_PIE_FLAG="-no-pie"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$gcc_cv_c_no_fpie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fno-PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span>  fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>--# ??? This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-AC_SUBST([NO_PIE_FLAG])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$gcc_cv_no_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=-no-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST([PICFLAG])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST([LD_PICFLAG])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable Intel CET on Intel CET enabled host if jit is enabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GCC_CET_HOST_FLAGS(CET_HOST_FLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/coretypes.h gcc/coretypes.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 08b9ac9094c..9885d45ec91 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/coretypes.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/coretypes.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -199,6 +199,12 @@ enum tls_model {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   TLS_MODEL_LOCAL_EXEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Types of trampoline implementation.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enum trampoline_impl {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  TRAMPOLINE_IMPL_STACK,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  TRAMPOLINE_IMPL_HEAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Types of ABI for an offload compiler.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum offload_abi {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   OFFLOAD_ABI_UNSET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cp/cp-lang.cc gcc/cp/cp-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7c8b94741fa..50a02b19f54 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/cp/cp-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cp/cp-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -118,6 +118,15 @@ objcp_tsubst_copy_and_build (tree /*t*/,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implement c-family hook to add language-specific features
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   for __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_family_register_lang_features ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cp_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxx_dwarf_name (tree t, int verbosity)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cp/cp-objcp-common.cc gcc/cp/cp-objcp-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f40fd588176..3557e15333c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/cp/cp-objcp-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cp/cp-objcp-common.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,9 +23,152 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "coretypes.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "cp-tree.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "cp-objcp-common.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "c-family/c-common.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "dwarf2.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "stringpool.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Class to determine whether a given C++ language feature is available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   Used to implement __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct cp_feature_selector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enum
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    DIALECT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    FLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } kind;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enum class result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NONE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    EXT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    FEAT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  union
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const int *enable_flag;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      enum cxx_dialect feat;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      enum cxx_dialect ext;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } dialect;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr cp_feature_selector (const int *flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    : kind (FLAG), enable_flag (flag) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr cp_feature_selector (enum cxx_dialect feat,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           enum cxx_dialect ext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    : kind (DIALECT), dialect{feat, ext} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr cp_feature_selector (enum cxx_dialect feat)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    : cp_feature_selector (feat, feat) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  inline result has_feature () const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Check whether this language feature is available as a feature,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   extension, or not at all.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cp_feature_selector::result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cp_feature_selector::has_feature () const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (kind)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case DIALECT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (cxx_dialect >= dialect.feat)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return result::FEAT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (cxx_dialect >= dialect.ext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return result::EXT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return result::NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case FLAG:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return *enable_flag ? result::FEAT : result::NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gcc_unreachable ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if test x${gcc_gxx_libcxx_include_dir} = x; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  libcxx_incdir='include/c++/v1'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if test x${enable_version_specific_runtime_libs} = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    gcc_gxx_libcxx_include_dir='${libsubdir}/libc++_include/c++/v1'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    gcc_gxx_libcxx_include_dir='${libsubdir}/$libcxx_incdir'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    libcxx_incdir='libc++_include/c++/$(version)/v1'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     if test x$host != x$target; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        libcxx_incdir="$target_alias/$libcxx_incdir"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2554,6 +2562,21 @@ AC_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_SUBST(objdir)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_SUBST(enable_fast_install)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AM_CONDITIONAL([ENABLE_DARWIN_AT_RPATH], [test x$enable_darwin_at_rpath = xyes])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_DO_EXTRA_RPATH=0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_ARG_WITH(darwin-extra-rpath,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[AS_HELP_STRING(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  [[--with-darwin-extra-rpath=[ARG]]],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   [Specify a runpath directory, additional to those provided by the compiler])],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[if test x"$withval" != x; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   DARWIN_ADD_RPATH="$withval"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   DARWIN_DO_EXTRA_RPATH=1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ fi])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_DEFINE_UNQUOTED(DARWIN_DO_EXTRA_RPATH, $DARWIN_DO_EXTRA_RPATH,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  [Should add an extra runpath directory])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_DEFINE_UNQUOTED(DARWIN_ADD_RPATH, "$DARWIN_ADD_RPATH",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  [Specify a runpath directory, additional to those provided by the compiler])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Information about a C++ language feature which can be queried
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   through __has_{feature,extension}.  IDENT is the name of the feature,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   and SELECTOR encodes how to compute whether the feature is available.  */
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Identify the assembler which will work hand-in-glove with the newly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # built GCC, so that we can examine its features.  This is the assembler
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # which will be driven by the driver program.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7641,6 +7664,19 @@ if test x$enable_default_pie = xyes ; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_SUBST([enable_default_pie])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Check whether --enable-pie-tools was given; this is passed automatically
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# from the top level where it has already been validated.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_ARG_ENABLE(pie-tools,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[AS_HELP_STRING([--enable-pie-tools],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  [build Position Independent Executables for the compilers and other tools])],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[enable_pie_tools=$enableval],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[enable_pie_tools=no])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test x$enable_pie_tools = xyes ; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  AC_DEFINE(ENABLE_PIE_TOOLS, 1,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      [Define if you build Position Independent Executables for the compilers and other tools.])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST([enable_pie_tools])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct cp_feature_info
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *ident;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cp_feature_selector selector;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Table of features for __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static constexpr cp_feature_info cp_feature_table[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_exceptions", &flag_exceptions },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_rtti", &flag_rtti },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_access_control_sfinae", { cxx11, cxx98 } },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_alias_templates", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_alignas", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_alignof", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_attributes", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_constexpr", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_decltype", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_decltype_incomplete_return_types", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_default_function_template_args", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_defaulted_functions", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_delegating_constructors", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_deleted_functions", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_explicit_conversions", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_generalized_initializers", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_implicit_moves", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_inheriting_constructors", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_inline_namespaces", { cxx11, cxx98 } },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_lambdas", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_local_type_template_args", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_noexcept", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_nonstatic_member_init", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_nullptr", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_override_control", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_reference_qualified_functions", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_range_for", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_raw_string_literals", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_rvalue_references", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_static_assert", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_thread_local", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_auto_type", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_strong_enums", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_trailing_return", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_unicode_literals", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_unrestricted_unions", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_user_literals", cxx11 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_variadic_templates", { cxx11, cxx98 } },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_binary_literals", { cxx14, cxx98 } },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_contextual_conversions", { cxx14, cxx98 } },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_decltype_auto", cxx14 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_aggregate_nsdmi", cxx14 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_init_captures", { cxx14, cxx11 } },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_generic_lambdas", cxx14 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_relaxed_constexpr", cxx14 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_return_type_deduction", cxx14 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "cxx_variable_templates", cxx14 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "modules", &flag_modules },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Register C++ language features for __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cp_register_features ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  using result = cp_feature_selector::result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (unsigned i = 0; i < ARRAY_SIZE (cp_feature_table); i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      const cp_feature_info *info = cp_feature_table + i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      const auto res = info->selector.has_feature ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (res == result::NONE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  continue;
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Check if -fno-PIE works.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_CACHE_CHECK([for -fno-PIE option],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   [gcc_cv_c_no_fpie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      c_common_register_feature (info->ident, res == result::FEAT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Special routine to get the alias set for C++.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ alias_set_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cp/cp-objcp-common.h gcc/cp/cp-objcp-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3c04e5c0265..5a61c233303 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/cp/cp-objcp-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cp/cp-objcp-common.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,6 +35,7 @@ extern tree cp_classtype_as_base (const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree cp_get_global_decls ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree cp_pushdecl (tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void cp_register_dumps (gcc::dump_manager *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void cp_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern bool cp_handle_option (size_t, const char *, HOST_WIDE_INT, int,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         location_t, const struct cl_option_handlers *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree cxx_make_type_hook                    (tree_code);
</span> diff --git gcc/cp/decl2.cc gcc/cp/decl2.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c5e5fbf..5fc6f7b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c5e5fbfba4a..6eb0a7b3613 100644
</span> --- gcc/cp/decl2.cc
 +++ gcc/cp/decl2.cc
 @@ -3674,9 +3674,8 @@ get_tls_init_fn (tree var)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4412,8 +7557,8 @@ index c5e5fbf..5fc6f7b 100644
</span> -      /* Output init aliases even with -fno-extern-tls-init.  */
 -      if (TARGET_SUPPORTS_ALIASES && TREE_PUBLIC (var))
 +      /* Output inits even with -fno-extern-tls-init.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        We save the list here and output either an alias or a stub function
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   below.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  We save the list here and output either an alias or a stub function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  below.  */
</span> +      if (TREE_PUBLIC (var))
        {
 -          tree single_init_fn = get_tls_init_fn (var);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4477,26 +7622,294 @@ index c5e5fbf..5fc6f7b 100644
</span>  
          if (!DECL_SAVED_TREE (decl))
            continue;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/cp/g++spec.cc gcc/cp/g++spec.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8174d65..2e1e06e 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/cp/g++spec.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/cp/g++spec.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -222,7 +222,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   case OPT_static_libstdc__:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     library = library >= 0 ? 2 : library;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef HAVE_LD_STATIC_DYNAMIC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    /* Remove -static-libstdc++ from the command only if target supports
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       LD_STATIC_DYNAMIC.  When not supported, it is left in so that a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       back-end target can use outfile substitution.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     args[i] |= SKIPOPT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cp/parser.cc gcc/cp/parser.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9c1bd32cff1..1ccbcfd3aca 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/cp/parser.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cp/parser.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -629,6 +629,91 @@ cp_lexer_alloc (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return lexer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Context-sensitive parse-checking for clang-style attributes.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enum clang_attr_state {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CA_NONE = 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CA_ATTR,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CA_BR1, CA_BR2,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CA_LIST,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CA_LIST_ARGS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CA_IS_CA,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CA_CA_ARGS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CA_LIST_CONT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* State machine tracking context of attribute lexing.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static enum clang_attr_state
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cp_lexer_attribute_state (cp_token& token, enum clang_attr_state attr_state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Implement a context-sensitive parser for clang attributes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     We detect __attribute__((clang_style_attribute (ARGS))) and lex the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     args ARGS with the following differences from GNU attributes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (a) number-like values are lexed as strings [this allows lexing XX.YY.ZZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     version numbers].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (b) we concatenate strings, since clang attributes allow this too.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  switch (attr_state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_NONE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (token.type == CPP_KEYWORD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    && token.keyword == RID_ATTRIBUTE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_ATTR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_ATTR:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (token.type == CPP_OPEN_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_BR1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_BR1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (token.type == CPP_OPEN_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_BR2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_BR2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (token.type == CPP_NAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    tree identifier = (token.type == CPP_KEYWORD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* For keywords, use the canonical spelling, not the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         parsed identifier.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      ? ridpointers[(int) token.keyword]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      : token.u.value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    identifier = canonicalize_attr_name (identifier);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (attribute_clang_form_p (identifier))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      attr_state = CA_IS_CA;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      attr_state = CA_LIST;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_IS_CA:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_LIST:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (token.type == CPP_COMMA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_BR2; /* Back to the list outer.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (token.type == CPP_OPEN_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = attr_state == CA_IS_CA ? CA_CA_ARGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                      : CA_LIST_ARGS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_CA_ARGS: /* We will special-case args in this state.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_LIST_ARGS:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (token.type == CPP_CLOSE_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_LIST_CONT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case CA_LIST_CONT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (token.type == CPP_COMMA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_BR2; /* Back to the list outer.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  attr_state = CA_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return attr_state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Create a new main C++ lexer, the lexer that gets tokens from the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    preprocessor.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -645,6 +730,8 @@ cp_lexer_new_main (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   c_common_no_more_pch ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cp_lexer *lexer = cp_lexer_alloc ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enum clang_attr_state attr_state = CA_NONE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Put the first token in the buffer.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cp_token *tok = lexer->buffer->quick_push (token);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -659,8 +746,15 @@ cp_lexer_new_main (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Process the previous token.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   module_token_lang (tok->type, tok->keyword, tok->u.value,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      tok->location, filter);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      attr_state = cp_lexer_attribute_state (*tok, attr_state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       tok = vec_safe_push (lexer->buffer, cp_token ());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      cp_lexer_get_preprocessor_token (C_LEX_STRING_NO_JOIN, tok);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      unsigned int flags = C_LEX_STRING_NO_JOIN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* If we are processing clang-style attribute args, lex numbers as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         potential version strings; NN .. NN.MM .. NN.MM.OO */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (attr_state == CA_CA_ARGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  flags |= C_LEX_NUMBER_AS_STRING;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      cp_lexer_get_preprocessor_token (flags, tok);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   lexer->next_token = lexer->buffer->address ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -859,7 +953,7 @@ cp_lexer_get_preprocessor_token (unsigned flags, cp_token *token)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   static int is_extern_c = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   /* Get a new token from the preprocessor.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   /* Get a new token from the preprocessor. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   token->type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     = c_lex_with_flags (&token->u.value, &token->location, &token->flags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20831,11 +20925,13 @@ cp_parser_enum_specifier (cp_parser* parser)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Check for the `:' that denotes a specified underlying type in C++0x.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      Note that a ':' could also indicate a bitfield width, however.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  location_t colon_loc = UNKNOWN_LOCATION;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (cp_lexer_next_token_is (parser->lexer, CPP_COLON))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       cp_decl_specifier_seq type_specifiers;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* Consume the `:'.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      colon_loc = cp_lexer_peek_token (parser->lexer)->location;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       cp_lexer_consume_token (parser->lexer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       auto tdf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20884,10 +20980,13 @@ cp_parser_enum_specifier (cp_parser* parser)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     && cp_lexer_next_token_is_not (parser->lexer, CPP_SEMICOLON))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (has_underlying_type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      cp_parser_commit_to_tentative_parse (parser);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    cp_parser_error (parser, "expected %<;%> or %<{%>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (has_underlying_type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      return error_mark_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      pedwarn (colon_loc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               OPT_Welaborated_enum_base,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               "declaration of enumeration with "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               "fixed underlying type and no enumerator list is "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++               "only permitted as a standalone declaration");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      cp_parser_error (parser, "expected %<;%> or %<{%>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28696,6 +28795,91 @@ cp_parser_gnu_attributes_opt (cp_parser* parser)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return attributes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Parse the arguments list for a clang attribute.   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static tree
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cp_parser_clang_attribute (cp_parser *parser, tree/*attr_id*/)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Each entry can be :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     identifier
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     identifier=N.MM.Z
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     identifier="string"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     followed by ',' or ) for the last entry*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  matching_parens parens;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!parens.require_open (parser))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool save_translate_strings_p = parser->translate_strings_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  parser->translate_strings_p = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tree attr_args = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cp_token *token;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tree name = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tree value = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      token = cp_lexer_peek_token (parser->lexer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (token->type == CPP_NAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  name = token->u.value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (token->type == CPP_KEYWORD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  name = ridpointers[(int) token->keyword];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (token->flags & NAMED_OP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  name = get_identifier (cpp_type2name (token->type, token->flags));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* FIXME: context-sensitive for that attrib.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    error_at (token->location, "expected an attribute keyword");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cp_parser_skip_to_closing_parenthesis (parser,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           /*recovering=*/true,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           /*or_comma=*/false,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           /*consume_paren=*/false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    attr_args = error_mark_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      cp_lexer_consume_token (parser->lexer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (cp_lexer_next_token_is (parser->lexer, CPP_EQ))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cp_lexer_consume_token (parser->lexer); /* eat the '=' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        && cp_lexer_next_token_is_not (parser->lexer, CPP_COMMA))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        token = cp_lexer_peek_token (parser->lexer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (token->type == CPP_STRING)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          value = cp_parser_string_literal (parser, /*translate=*/false,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                      /*wide_ok=*/false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            value = token->u.value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            cp_lexer_consume_token (parser->lexer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* else value is missing.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      else if (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         && cp_lexer_next_token_is_not (parser->lexer, CPP_COMMA))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    error_at (token->location, "expected %<,%>, %<=%> or %<)%>");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    cp_parser_skip_to_closing_parenthesis (parser,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           /*recovering=*/true,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           /*or_comma=*/false,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           /*consume_paren=*/false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    attr_args = error_mark_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (cp_lexer_next_token_is (parser->lexer, CPP_COMMA))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      cp_lexer_consume_token (parser->lexer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    tree t = tree_cons (value, name, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    attr_args = chainon (attr_args, t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } while (cp_lexer_next_token_is_not (parser->lexer, CPP_CLOSE_PAREN));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  parser->translate_strings_p = save_translate_strings_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!parens.require_close (parser))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return error_mark_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return attr_args;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Parse a GNU attribute-list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    attribute-list:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28755,9 +28939,12 @@ cp_parser_gnu_attribute_list (cp_parser* parser, bool exactly_one /* = false */)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* Peek at the next token.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     token = cp_lexer_peek_token (parser->lexer);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    /* If it's an `(', then parse the attribute arguments.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (token->type == CPP_OPEN_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (token->type == CPP_OPEN_PAREN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        && attribute_clang_form_p (identifier))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      arguments = cp_parser_clang_attribute (parser, identifier);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else if (token->type == CPP_OPEN_PAREN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        /* If it's an `(', then parse the attribute arguments.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         vec<tree, va_gc> *vec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         int attr_flag = (attribute_takes_identifier_p (identifier)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          ? id_attr : normal_attr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28772,12 +28959,12 @@ cp_parser_gnu_attribute_list (cp_parser* parser, bool exactly_one /* = false */)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             arguments = build_tree_list_vec (vec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             release_tree_vector (vec);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        /* Save the arguments away.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        TREE_VALUE (attribute) = arguments;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        case OPT_stdlib_:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (arguments != error_mark_node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        /* Save the arguments away.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        TREE_VALUE (attribute) = arguments;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         /* Add this attribute to the list.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         TREE_CHAIN (attribute) = attribute_list;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         attribute_list = attribute;
</span> diff --git gcc/cumulative-args.h gcc/cumulative-args.h
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..b60928e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..b60928e37f9
</span> --- /dev/null
 +++ gcc/cumulative-args.h
 @@ -0,0 +1,20 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4520,27 +7933,1158 @@ index 0000000..b60928e
</span> +#endif /* !CHECKING_P */
 +
 +#endif /* GCC_CUMULATIVE_ARGS_H */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/Make-lang.in gcc/d/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f3e34c54015..0801eecfb47 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,7 +60,7 @@ WARN_DFLAGS = -Wall -Wdeprecated $(NOCOMMON_FLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALL_DFLAGS = $(DFLAGS-$@) $(GDCFLAGS) -fversion=IN_GCC $(CHECKING_DFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(PICFLAG) $(ALIASING_FLAGS) $(COVERAGE_FLAGS) $(WARN_DFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-DCOMPILE.base = $(GDC) $(NO_PIE_CFLAGS) -c $(ALL_DFLAGS) -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DCOMPILE.base = $(GDC) -c $(ALL_DFLAGS) -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DCOMPILE = $(DCOMPILE.base) -MT $@ -MMD -MP -MF $(@D)/$(DEPDIR)/$(*F).TPo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DPOSTCOMPILE = @mv $(@D)/$(DEPDIR)/$(*F).TPo $(@D)/$(DEPDIR)/$(*F).Po
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DLINKER = $(GDC) $(NO_PIE_FLAG) -lstdc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/aggregate.h gcc/d/dmd/aggregate.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bdeb38e8b45..92a3dcdc0c6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/aggregate.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/aggregate.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -115,8 +115,8 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *getRTInfo;      // pointer to GC info generated by object.RTInfo(this)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Visibility visibility;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool noDefaultCtor;         // no default construction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool disableNew;            // disallow allocations using `new`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool noDefaultCtor;         // no default construction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool disableNew;            // disallow allocations using `new`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Sizeok sizeok;              // set when structsize contains valid data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual Scope *newScope(Scope *sc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -265,13 +265,13 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                         // (does not include baseClass)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BaseClasses *vtblInterfaces;        // array of base interfaces that have
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                        // their own vtbl[]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  // their own vtbl[]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TypeInfoClassDeclaration *vclassinfo;       // the ClassInfo object for this ClassDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool com;                           // true if this is a COM class (meaning it derives from IUnknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool stack;                         // true if this is a scope class
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool com;                           // true if this is a COM class (meaning it derives from IUnknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool stack;                         // true if this is a scope class
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int cppDtorVtblIndex;               // slot reserved for the virtual destructor [extern(C++)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool inuse;                         // to prevent recursive attempts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool inuse;                         // to prevent recursive attempts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ThreeState isabstract;              // if abstract class
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Baseok baseok;                      // set the progress of base classes resolving
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/attrib.h gcc/d/dmd/attrib.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 812729b3f27..0bed3efc814 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/attrib.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/attrib.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,7 +133,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class AnonDeclaration : public AttribDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isunion;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isunion;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int sem;                    // 1 if successful semantic()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned anonoffset;        // offset of anonymous struct
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned anonstructsize;    // size of anonymous struct
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -177,8 +177,8 @@ class StaticIfDeclaration : public ConditionalDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ScopeDsymbol *scopesym;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool addisdone;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool onStack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool addisdone;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool onStack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StaticIfDeclaration *syntaxCopy(Dsymbol *s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Dsymbols *include(Scope *sc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -194,8 +194,8 @@ class StaticForeachDeclaration : public AttribDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StaticForeach *sfe;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ScopeDsymbol *scopesym;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool onStack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool cached;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool onStack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool cached;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Dsymbols *cache;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StaticForeachDeclaration *syntaxCopy(Dsymbol *s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -228,7 +228,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expressions *exps;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ScopeDsymbol *scopesym;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool compiled;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool compiled;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CompileDeclaration *syntaxCopy(Dsymbol *s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void addMember(Scope *sc, ScopeDsymbol *sds);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/common/outbuffer.h gcc/d/dmd/common/outbuffer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fed25c0d030..d7a340da11a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/common/outbuffer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/common/outbuffer.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,11 +21,11 @@ struct OutBuffer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DArray<unsigned char> data;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     d_size_t offset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool notlinehead;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool notlinehead;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void *fileMapping;  // pointer to a file mapping object not used on the C++ side
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool doindent;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool spaces;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool doindent;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool spaces;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int level;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OutBuffer()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/cond.h gcc/d/dmd/cond.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d69c13e8101..c45457ef16d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/cond.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/cond.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ForeachStatement *aggrfe;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ForeachRangeStatement *rangefe;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool needExpansion;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool needExpansion;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StaticForeach *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/declaration.h gcc/d/dmd/declaration.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6fe4a221c3b..6679daa8f77 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/declaration.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/declaration.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -165,7 +165,7 @@ class TupleDeclaration : public Declaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Objects *objects;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isexp;                 // true: expression tuple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isexp;                 // true: expression tuple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TypeTuple *tupletype;       // !=NULL if this is a type tuple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -598,7 +598,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // set if someone took the address of this function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int tookAddressOf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool requiresClosure;               // this function needs a closure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool requiresClosure;               // this function needs a closure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // local variables in this function which are referenced by nested functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclarations closureVars;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -699,7 +699,7 @@ class FuncAliasDeclaration : public FuncDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FuncDeclaration *funcalias;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FuncAliasDeclaration *isFuncAliasDeclaration() { return this; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const char *kind() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -715,7 +715,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Type *treq;                         // target of return type inference
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // backend
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool deferToObj;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool deferToObj;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FuncLiteralDeclaration *syntaxCopy(Dsymbol *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isNested() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -735,7 +735,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class CtorDeclaration : public FuncDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isCpCtor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isCpCtor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CtorDeclaration *syntaxCopy(Dsymbol *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const char *kind() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const char *toChars() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/dsymbol.h gcc/d/dmd/dsymbol.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 35500af4548..31fc9c8a243 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/dsymbol.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/dsymbol.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -164,7 +164,7 @@ struct FieldState
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned fieldAlign;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned bitOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool inFlight;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool inFlight;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class Dsymbol : public ASTNode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -178,7 +178,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Loc loc;                    // where defined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Scope *_scope;               // !=NULL means context to use for semantic()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const utf8_t *prettystring;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool errors;                // this symbol failed to pass semantic()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool errors;                // this symbol failed to pass semantic()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PASS semanticRun;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned short localNum;        // perturb mangled name to avoid collisions with those in FuncDeclaration.localsymtab
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DeprecatedDeclaration *depdecl; // customized deprecation message
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/expression.h gcc/d/dmd/expression.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 330dcdb77ec..c4fcb1b1683 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/expression.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/expression.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -326,7 +326,7 @@ class DsymbolExp : public Expression
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Dsymbol *s;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DsymbolExp *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isLvalue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -470,8 +470,8 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int stageflags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool useStaticInit;         // if this is true, use the StructDeclaration's init symbol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isOriginal;            // used when moving instances to indicate `this is this.origin`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool useStaticInit;         // if this is true, use the StructDeclaration's init symbol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isOriginal;            // used when moving instances to indicate `this is this.origin`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OwnedBy ownedByCtfe;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static StructLiteralExp *create(const Loc &loc, StructDeclaration *sd, void *elements, Type *stype = NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -530,8 +530,8 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *argprefix;      // expression to be evaluated just before arguments[]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CtorDeclaration *member;    // constructor function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool onstack;               // allocate on stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool thrownew;              // this NewExp is the expression of a ThrowStatement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool onstack;               // allocate on stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool thrownew;              // this NewExp is the expression of a ThrowStatement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static NewExp *create(const Loc &loc, Expression *thisexp, Type *newtype, Expressions *arguments);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NewExp *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -557,7 +557,7 @@ class SymbolExp : public Expression
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Declaration *var;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Dsymbol *originalScope;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void accept(Visitor *v) { v->visit(this); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -579,7 +579,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class VarExp : public SymbolExp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool delegateWasExtracted;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool delegateWasExtracted;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static VarExp *create(const Loc &loc, Declaration *var, bool hasOverloads = true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool equals(const RootObject *o) const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isLvalue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -755,9 +755,9 @@ class DotIdExp : public UnaExp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Identifier *ident;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool noderef;       // true if the result of the expression will never be dereferenced
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool wantsym;       // do not replace Symbol with its initializer during semantic()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool arrow;         // ImportC: if -> instead of .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool noderef;       // true if the result of the expression will never be dereferenced
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool wantsym;       // do not replace Symbol with its initializer during semantic()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool arrow;         // ImportC: if -> instead of .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static DotIdExp *create(const Loc &loc, Expression *e, Identifier *ident);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void accept(Visitor *v) { v->visit(this); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -777,7 +777,7 @@ class DotVarExp : public UnaExp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Declaration *var;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isLvalue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *toLvalue(Scope *sc, Expression *e);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -801,7 +801,7 @@ class DelegateExp : public UnaExp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FuncDeclaration *func;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hasOverloads;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclaration *vthis2;  // container for multi-context
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -821,9 +821,9 @@ class CallExp : public UnaExp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expressions *arguments;     // function arguments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FuncDeclaration *f;         // symbol to call
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool directcall;            // true if a virtual call is devirtualized
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool inDebugStatement;      // true if this was in a debug statement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool ignoreAttributes;      // don't enforce attributes (e.g. call @gc function in @nogc code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool directcall;            // true if a virtual call is devirtualized
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool inDebugStatement;      // true if this was in a debug statement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool ignoreAttributes;      // don't enforce attributes (e.g. call @gc function in @nogc code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclaration *vthis2;     // container for multi-context
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static CallExp *create(const Loc &loc, Expression *e, Expressions *exps);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -882,7 +882,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class DeleteExp : public UnaExp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isRAII;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isRAII;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void accept(Visitor *v) { v->visit(this); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -927,9 +927,9 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *upr;            // NULL if implicit 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *lwr;            // NULL if implicit [length - 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclaration *lengthVar;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool upperIsInBounds;       // true if upr <= e1.length
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool lowerIsLessThanUpper;  // true if lwr <= upr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool arrayop;               // an array operation, rather than a slice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool upperIsInBounds;       // true if upr <= e1.length
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool lowerIsLessThanUpper;  // true if lwr <= upr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool arrayop;               // an array operation, rather than a slice
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SliceExp *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isLvalue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1001,8 +1001,8 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class CommaExp : public BinExp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isGenerated;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool allowCommaExp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isGenerated;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool allowCommaExp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isLvalue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *toLvalue(Scope *sc, Expression *e);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *modifiableLvalue(Scope *sc, Expression *e);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1015,8 +1015,8 @@ class IndexExp : public BinExp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclaration *lengthVar;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool modifiable;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool indexIsInBounds;       // true if 0 <= e2 && e2 <= e1.length - 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool modifiable;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool indexIsInBounds;       // true if 0 <= e2 && e2 <= e1.length - 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     IndexExp *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isLvalue();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/globals.h gcc/d/dmd/globals.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2a33692380e..6f230142770 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/globals.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/globals.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,78 +92,78 @@ enum class FeatureState : signed char
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Put command line switches in here
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct Param
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool obj;           // write object file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool link;          // perform link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool dll;           // generate shared dynamic library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool lib;           // write library file instead of object file(s)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool multiobj;      // break one object file into multiple ones
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool oneobj;        // write one object file instead of multiple ones
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool trace;         // insert profiling hooks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool tracegc;       // instrument calls to 'new'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool verbose;       // verbose compile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vcg_ast;       // write-out codegen-ast
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool showColumns;   // print character (column) numbers in diagnostics
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vtls;          // identify thread local variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vtemplates;    // collect and list statistics on template instantiations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vtemplatesListInstances; // collect and list statistics on template instantiations origins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vgc;           // identify gc usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vfield;        // identify non-mutable field variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vcomplex;      // identify complex/imaginary type usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vin;           // identify 'in' parameters
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool obj;           // write object file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool link;          // perform link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool dll;           // generate shared dynamic library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool lib;           // write library file instead of object file(s)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool multiobj;      // break one object file into multiple ones
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool oneobj;        // write one object file instead of multiple ones
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool trace;         // insert profiling hooks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool tracegc;       // instrument calls to 'new'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool verbose;       // verbose compile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vcg_ast;       // write-out codegen-ast
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool showColumns;   // print character (column) numbers in diagnostics
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vtls;          // identify thread local variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vtemplates;    // collect and list statistics on template instantiations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vtemplatesListInstances; // collect and list statistics on template instantiations origins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vgc;           // identify gc usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vfield;        // identify non-mutable field variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vcomplex;      // identify complex/imaginary type usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vin;           // identify 'in' parameters
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned char symdebug;  // insert debug symbolic information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool symdebugref;   // insert debug information for all referenced types, too
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool optimize;      // run optimizer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool symdebugref;   // insert debug information for all referenced types, too
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool optimize;      // run optimizer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Diagnostic useDeprecated;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool stackstomp;    // add stack stomping code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool useUnitTests;  // generate unittest code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool useInline;     // inline expand functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool stackstomp;    // add stack stomping code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool useUnitTests;  // generate unittest code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool useInline;     // inline expand functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FeatureState useDIP25;      // implement https://wiki.dlang.org/DIP25
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FeatureState useDIP1000; // implement https://dlang.org/spec/memory-safe-d.html#scope-return-params
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool useDIP1021;    // implement https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1021.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool release;       // build release version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool preservePaths; // true means don't strip path from source file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool useDIP1021;    // implement https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1021.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool release;       // build release version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool preservePaths; // true means don't strip path from source file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Diagnostic warnings;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned char pic;  // generate position-independent-code for shared libs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool color;         // use ANSI colors in console output
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool cov;           // generate code coverage data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool color;         // use ANSI colors in console output
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool cov;           // generate code coverage data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned char covPercent;   // 0..100 code coverage percentage required
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool ctfe_cov;      // generate coverage data for ctfe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool nofloat;       // code should not pull in floating point support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool ignoreUnsupportedPragmas;      // rather than error on them
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool useModuleInfo; // generate runtime module information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool useTypeInfo;   // generate runtime type information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool useExceptions; // support exception handling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool noSharedAccess; // read/write access to shared memory objects
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool previewIn;     // `in` means `scope const`, perhaps `ref`, accepts rvalues
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool shortenedMethods; // allow => in normal function declarations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool betterC;       // be a "better C" compiler; no dependency on D runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool addMain;       // add a default main() function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool allInst;       // generate code for all template instantiations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool fix16997;      // fix integral promotions for unary + - ~ operators
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool ctfe_cov;      // generate coverage data for ctfe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool nofloat;       // code should not pull in floating point support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool ignoreUnsupportedPragmas;      // rather than error on them
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool useModuleInfo; // generate runtime module information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool useTypeInfo;   // generate runtime type information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool useExceptions; // support exception handling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool noSharedAccess; // read/write access to shared memory objects
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool previewIn;     // `in` means `scope const`, perhaps `ref`, accepts rvalues
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool shortenedMethods; // allow => in normal function declarations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool betterC;       // be a "better C" compiler; no dependency on D runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool addMain;       // add a default main() function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool allInst;       // generate code for all template instantiations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool fix16997;      // fix integral promotions for unary + - ~ operators
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         // https://issues.dlang.org/show_bug.cgi?id=16997
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool fixAliasThis;  // if the current scope has an alias this, check it before searching upper scopes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool inclusiveInContracts;   // 'in' contracts of overridden methods must be a superset of parent contract
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool ehnogc;        // use @nogc exception handling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool fixAliasThis;  // if the current scope has an alias this, check it before searching upper scopes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool inclusiveInContracts;   // 'in' contracts of overridden methods must be a superset of parent contract
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool ehnogc;        // use @nogc exception handling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FeatureState dtorFields;  // destruct fields of partially constructed objects
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               // https://issues.dlang.org/show_bug.cgi?id=14246
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool fieldwise;         // do struct equality testing field-wise rather than by memcmp()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool fieldwise;         // do struct equality testing field-wise rather than by memcmp()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FeatureState rvalueRefParam;    // allow rvalues to be arguments to ref parameters
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CppStdRevision cplusplus;  // version of C++ name mangling to support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool markdown;          // enable Markdown replacements in Ddoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool vmarkdown;         // list instances of Markdown replacements in Ddoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool showGaggedErrors;  // print gagged errors anyway
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool printErrorContext;  // print errors with the error context (the error line in the source file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool manual;            // open browser on compiler manual
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool usage;             // print usage and exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool mcpuUsage;         // print help on -mcpu switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool transitionUsage;   // print help on -transition switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool checkUsage;        // print help on -check switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool checkActionUsage;  // print help on -checkaction switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool revertUsage;       // print help on -revert switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool previewUsage;      // print help on -preview switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool externStdUsage;    // print help on -extern-std switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hcUsage;           // print help on -HC switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool logo;              // print logo;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool markdown;          // enable Markdown replacements in Ddoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool vmarkdown;         // list instances of Markdown replacements in Ddoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool showGaggedErrors;  // print gagged errors anyway
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool printErrorContext;  // print errors with the error context (the error line in the source file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool manual;            // open browser on compiler manual
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool usage;             // print usage and exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool mcpuUsage;         // print help on -mcpu switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool transitionUsage;   // print help on -transition switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool checkUsage;        // print help on -check switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool checkActionUsage;  // print help on -checkaction switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool revertUsage;       // print help on -revert switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool previewUsage;      // print help on -preview switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool externStdUsage;    // print help on -extern-std switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hcUsage;           // print help on -HC switch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool logo;              // print logo;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CHECKENABLE useInvariants;     // generate class invariant checks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CHECKENABLE useIn;             // generate precondition checks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -185,21 +185,21 @@ struct Param
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString objname;   // .obj file output name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString libname;   // .lib file output name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool doDocComments;  // process embedded documentation comments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool doDocComments;  // process embedded documentation comments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString docdir;      // write documentation file to docdir directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString docname;     // write documentation file to docname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Array<const char *> ddocfiles;  // macro include files for Ddoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool doHdrGeneration;  // process embedded documentation comments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool doHdrGeneration;  // process embedded documentation comments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString hdrdir;        // write 'header' file to docdir directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString hdrname;       // write 'header' file to docname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hdrStripPlainFunctions; // strip the bodies of plain (non-template) functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hdrStripPlainFunctions; // strip the bodies of plain (non-template) functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CxxHeaderMode doCxxHdrGeneration;  // write 'Cxx header' file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString cxxhdrdir;        // write 'header' file to docdir directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString cxxhdrname;       // write 'header' file to docname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool doJsonGeneration;    // write JSON file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool doJsonGeneration;    // write JSON file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString jsonfilename;     // write JSON file to jsonfilename
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned jsonFieldFlags;  // JSON field flags to include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -220,13 +220,13 @@ struct Param
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString moduleDepsFile;     // filename for deps output
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     OutBuffer *moduleDeps;      // contents to be written to deps file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool emitMakeDeps;                // whether to emit makedeps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool emitMakeDeps;                // whether to emit makedeps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString makeDepsFile;             // filename for makedeps output
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Array<const char *> makeDeps;     // dependencies for makedeps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MessageStyle messageStyle;  // style of file/line annotations on messages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool run;           // run resulting executable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool run;           // run resulting executable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Strings runargs;    // arguments for executable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Linker stuff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -244,7 +244,7 @@ struct Param
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct structalign_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned short value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool pack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool pack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isDefault() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void setDefault();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -291,7 +291,7 @@ struct Global
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Array<class Identifier*>* versionids; // command line versions and predefined versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Array<class Identifier*>* debugids;   // command line debug versions and predefined versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hasMainFunction;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hasMainFunction;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned varSequenceNumber;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FileManager* fileManager;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/identifier.h gcc/d/dmd/identifier.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4c748beb5d8..795b0d17157 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/identifier.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/identifier.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17,7 +17,7 @@ class Identifier : public RootObject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isAnonymous_;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isAnonymous_;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString string;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/init.h gcc/d/dmd/init.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 73dc4bba2e4..718c01f8b51 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/init.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/init.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Initializers value; // of Initializer *'s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned dim;       // length of array being initialized
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Type *type;         // type that array will be used to initialize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool sem;           // true if semantic() is run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool sem;           // true if semantic() is run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bool isAssociativeArray() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *toAssocArrayLiteral();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -86,7 +86,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class ExpInitializer : public Initializer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool expandTuples;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool expandTuples;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *exp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void accept(Visitor *v) { v->visit(this); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -109,7 +109,7 @@ class CInitializer : public Initializer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DesigInits initializerList;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Type *type;         // type that array will be used to initialize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool sem;           // true if semantic() is run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool sem;           // true if semantic() is run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void accept(Visitor *v) { v->visit(this); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/module.h gcc/d/dmd/module.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 048b3a0452c..539bbbbaae3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/module.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/module.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,8 +75,8 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned errors;    // if any errors in file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned numlines;  // number of lines in source file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     FileType filetype;  // source file type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hasAlwaysInlines; // contains references to functions that must be inlined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isPackageFile; // if it is a package.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hasAlwaysInlines; // contains references to functions that must be inlined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isPackageFile; // if it is a package.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Package *pkg;       // if isPackageFile is true, the Package that contains this package.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Strings contentImportedFiles;  // array of files whose content was imported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int needmoduleinfo;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -165,7 +165,7 @@ struct ModuleDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Loc loc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Identifier *id;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DArray<Identifier*> packages;  // array of Identifier's representing packages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isdeprecated;  // if it is a deprecated module
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isdeprecated;  // if it is a deprecated module
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *msg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const char *toChars() const;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/mtype.h gcc/d/dmd/mtype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6ba47dfa34e..781571e8857 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/mtype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/mtype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -584,7 +584,7 @@ struct ParameterList
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Parameters* parameters;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StorageClass stc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarArg varargs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool hasIdentifierList; // true if C identifier-list style
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool hasIdentifierList; // true if C identifier-list style
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     size_t length();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Parameter *operator[](size_t i) { return Parameter::getNth(parameters, i); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -774,7 +774,7 @@ class TypeStruct : public Type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StructDeclaration *sym;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AliasThisRec att;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool inuse;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool inuse;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static TypeStruct *create(StructDeclaration *sym);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const char *kind();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/objc.h gcc/d/dmd/objc.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a03015489a4..c27aecbe44a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/objc.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/objc.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,8 +37,8 @@ struct ObjcSelector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct ObjcClassDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isMeta;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isExtern;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isMeta;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isExtern;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Identifier* identifier;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ClassDeclaration* classDeclaration;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -52,7 +52,7 @@ struct ObjcFuncDeclaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ObjcSelector* selector;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclaration* selectorParameter;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isOptional;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isOptional;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class Objc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/root/dcompat.h gcc/d/dmd/root/dcompat.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5823e7c4886..4e73d956034 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/root/dcompat.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/root/dcompat.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,7 +36,7 @@ struct DString : public DArray<const char>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /// Corresponding C++ type that maps to D size_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if __APPLE__ && __i386__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __APPLE__ && (__i386__ || __ppc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // size_t is 'unsigned long', which makes it mangle differently than D's 'uint'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef unsigned d_size_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif MARS && DMD_VERSION >= 2079 && DMD_VERSION <= 2081 && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,3 +49,11 @@ typedef unsigned d_size_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef size_t d_size_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/// Corresponding C++ type that maps to D bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __APPLE__ && __ppc__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// bool is defined as an 'int', which does not match same size as D
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef char d_bool;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef bool d_bool;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/root/optional.h gcc/d/dmd/root/optional.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e4a41a06100..c28f0685ee4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/root/optional.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/root/optional.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,6 +11,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * Coverage:    https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/optional.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "dcompat.h"    // for d_bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /// Optional type that is either `empty` or contains a value of type `T`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct Optional final
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,7 +22,7 @@ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     T value;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /** whether `value` is set **/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool present;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool present;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /** Creates an `Optional` with the given value **/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/scope.h gcc/d/dmd/scope.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a163e7577a2..8d1807684e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/scope.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/scope.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -85,8 +85,8 @@ struct Scope
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ForeachStatement *fes;      // if nested function for ForeachStatement, this is it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Scope *callsc;              // used for __FUNCTION__, __PRETTY_FUNCTION__ and __MODULE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Dsymbol *inunion;           // !=null if processing members of a union
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool nofree;                // true if shouldn't free it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool inLoop;                // true if inside a loop (where constructor calls aren't allowed)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool nofree;                // true if shouldn't free it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool inLoop;                // true if inside a loop (where constructor calls aren't allowed)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int intypeof;               // in typeof(exp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclaration *lastVar;    // Previous symbol used to prevent goto-skips-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/statement.h gcc/d/dmd/statement.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 66eddd8ab55..670fac1406b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/statement.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/statement.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -430,7 +430,7 @@ class SwitchStatement : public Statement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *condition;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Statement *_body;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isFinal;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isFinal;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DefaultStatement *sdefault;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Statement *tryBody;            // set to TryCatchStatement or TryFinallyStatement if in _body portion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -597,11 +597,11 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclaration *var;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // set if semantic processing errors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool errors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool errors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // was generated by the compiler,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // wasn't present in source code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool internalCatch;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool internalCatch;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Catch *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -613,7 +613,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Statement *finalbody;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Statement *tryBody;   // set to enclosing TryCatchStatement or TryFinallyStatement if in _body portion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool bodyFallsThru;   // true if _body falls through to finally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool bodyFallsThru;   // true if _body falls through to finally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static TryFinallyStatement *create(const Loc &loc, Statement *body, Statement *finalbody);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TryFinallyStatement *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -640,7 +640,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Expression *exp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // was generated by the compiler,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // wasn't present in source code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool internalThrow;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool internalThrow;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ThrowStatement *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -682,7 +682,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VarDeclaration *lastVar;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Statement *gotoTarget;      // interpret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void* extra;                // used by Statement_toIR()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool breaks;                // someone did a 'break ident'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool breaks;                // someone did a 'break ident'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     LabelStatement *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -694,8 +694,8 @@ class LabelDsymbol : public Dsymbol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     LabelStatement *statement;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool deleted;           // set if rewritten to return in foreach delegate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool iasm;              // set if used by inline assembler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool deleted;           // set if rewritten to return in foreach delegate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool iasm;              // set if used by inline assembler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static LabelDsymbol *create(Identifier *ident);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     LabelDsymbol *isLabel();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -719,8 +719,8 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     code *asmcode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned asmalign;          // alignment of this statement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned regs;              // mask of registers modified (must match regm_t in back end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool refparam;              // true if function parameter is referenced
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool naked;                 // true if function is to be naked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool refparam;              // true if function parameter is referenced
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool naked;                 // true if function is to be naked
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     InlineAsmStatement *syntaxCopy();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void accept(Visitor *v) { v->visit(this); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/target.h gcc/d/dmd/target.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 096c16fd610..a7b2ff5c03e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/target.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/target.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,14 +89,14 @@ struct TargetCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         Clang,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         DigitalMars,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         Gcc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        Microsoft,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        Sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  Microsoft,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  Sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool reverseOverloads;    // with dmc and cl, overloaded functions are grouped and in reverse order
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool exceptions;          // set if catching C++ exceptions is supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool twoDtorInVtable;     // target C++ ABI puts deleting and non-deleting destructor into vtable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool splitVBasetable;     // set if C++ ABI uses separate tables for virtual functions and virtual bases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool wrapDtorInExternD;   // set if C++ dtors require a D wrapper to be callable from runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool reverseOverloads;    // with dmc and cl, overloaded functions are grouped and in reverse order
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool exceptions;          // set if catching C++ exceptions is supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool twoDtorInVtable;     // target C++ ABI puts deleting and non-deleting destructor into vtable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool splitVBasetable;     // set if C++ ABI uses separate tables for virtual functions and virtual bases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool wrapDtorInExternD;   // set if C++ dtors require a D wrapper to be callable from runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Runtime runtime;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const char *toMangle(Dsymbol *s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,7 +110,7 @@ struct TargetCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct TargetObjC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool supported;     // set if compiler can interface with Objective-C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool supported;     // set if compiler can interface with Objective-C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct Target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -156,15 +156,15 @@ struct Target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString architectureName;    // name of the platform architecture (e.g. X86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CPU cpu;                // CPU instruction set to target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool is64bit;           // generate 64 bit code for x86_64; true by default for 64 bit dmd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isLP64;            // pointers are 64 bits
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool is64bit;           // generate 64 bit code for x86_64; true by default for 64 bit dmd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isLP64;            // pointers are 64 bits
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Environmental
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString obj_ext;    /// extension for object files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString lib_ext;    /// extension for static library files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DString dll_ext;    /// extension for dynamic library files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool run_noext;     /// allow -run sources without extensions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool omfobj;        /// for Win32: write OMF object files instead of COFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool run_noext;     /// allow -run sources without extensions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool omfobj;        /// for Win32: write OMF object files instead of COFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     template <typename T>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     struct FPTypeProperties
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/template.h gcc/d/dmd/template.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 86863769141..9c6cc40ea84 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/template.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/template.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -63,12 +63,12 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Dsymbol *onemember;         // if !=NULL then one member of this template
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool literal;               // this template declaration is a literal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool ismixin;               // template declaration is only to be used as a mixin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isstatic;              // this is static template declaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isTrivialAliasSeq;     // matches `template AliasSeq(T...) { alias AliasSeq = T; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool isTrivialAlias;        // matches pattern `template Alias(T) { alias Alias = qualifiers(T); }`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool deprecated_;           // this template declaration is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool literal;               // this template declaration is a literal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool ismixin;               // template declaration is only to be used as a mixin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isstatic;              // this is static template declaration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isTrivialAliasSeq;     // matches `template AliasSeq(T...) { alias AliasSeq = T; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool isTrivialAlias;        // matches pattern `template Alias(T) { alias Alias = qualifiers(T); }`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool deprecated_;           // this template declaration is deprecated
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Visibility visibility;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     int inuse;                  // for recursive expansion detection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -119,7 +119,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      * A dependent template parameter should return MATCHexact in matchArg()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      * to respect the match level of the corresponding precedent parameter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool dependent;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool dependent;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual TemplateTypeParameter  *isTemplateTypeParameter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     virtual TemplateValueParameter *isTemplateValueParameter();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/d/dmd/visitor.h gcc/d/dmd/visitor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5d6b94ccd02..da4680ca2fb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/d/dmd/visitor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/d/dmd/visitor.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -657,6 +657,6 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class StoppableVisitor : public Visitor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    bool stop;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    d_bool stop;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     StoppableVisitor() : stop(false) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/doc/contrib.texi gcc/doc/contrib.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e14cf5e4751..342cc8dd079 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/contrib.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/contrib.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1511,7 +1511,7 @@ Gael Thomas for @code{VMClassLoader} boot packages support suggestions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Andreas Tobler for Darwin and Solaris testing and fixing, @code{Qt4}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-support for Darwin/OS X, @code{Graphics2D} support, @code{gtk+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++support for Darwin / macOS, @code{Graphics2D} support, @code{gtk+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ updates.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/doc/cpp.texi gcc/doc/cpp.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 90b2767e39a..cf36cde4e15 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/cpp.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/cpp.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3198,6 +3198,8 @@ directive}: @samp{#if}, @samp{#ifdef} or @samp{#ifndef}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * @code{__has_cpp_attribute}::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * @code{__has_c_attribute}::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * @code{__has_builtin}::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* @code{__has_feature}::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* @code{__has_extension}::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * @code{__has_include}::
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @end menu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3560,6 +3562,45 @@ the operator is as follows:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @end smallexample
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@node @code{__has_feature}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@subsection @code{__has_feature}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@cindex @code{__has_feature}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The special operator @code{__has_feature (@var{operand})} may be used in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++constant integer contexts and in preprocessor @samp{#if} and @samp{#elif}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++expressions to test whether the identifier given in @var{operand} is recognized
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++as a feature supported by GCC given the current options and, in the case of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++standard language features, whether the feature is available in the chosen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++version of the language standard.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Note that @code{__has_feature} and @code{__has_extension} are not recommended
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for use in new code, and are only provided for compatibility with Clang.  For
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++details of which identifiers are accepted by these function-like macros, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@w{@uref{https://clang.llvm.org/docs/LanguageExtensions.html#has-feature-and-has-extension,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the Clang documentation}}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@node @code{__has_extension}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@subsection @code{__has_extension}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@cindex @code{__has_extension}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The special operator @code{__has_extension (@var{operand})} may be used in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++constant integer contexts and in preprocessor @samp{#if} and @samp{#elif}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++expressions to test whether the identifier given in @var{operand} is recognized
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++as an extension supported by GCC given the current options.  In any given
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++context, the features accepted by @code{__has_extension} are a strict superset
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++of those accepted by @code{__has_feature}.  Unlike @code{__has_feature},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{__has_extension} tests whether a given feature is available regardless of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++strict language standards conformance.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++If the @option{-pedantic-errors} flag is given, @code{__has_extension} is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++equivalent to @code{__has_feature}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Note that @code{__has_feature} and @code{__has_extension} are not recommended
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for use in new code, and are only provided for compatibility with Clang.  For
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++details of which identifiers are accepted by these function-like macros, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@w{@uref{https://clang.llvm.org/docs/LanguageExtensions.html#has-feature-and-has-extension,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the Clang documentation}}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @node @code{__has_include}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @subsection @code{__has_include}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @cindex @code{__has_include}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/doc/extend.texi gcc/doc/extend.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0eb9bdcfac5..1a94cf3b3a2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/extend.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/extend.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23796,7 +23796,7 @@ attribute, do change the value of preprocessor macros like
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ The following pragmas are available for all architectures running the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Darwin operating system.  These are useful for compatibility with other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Mac OS compilers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++macOS compilers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @table @code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item mark @var{tokens}@dots{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24975,7 +24975,7 @@ compiled separately.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @end table
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ G++ implements the Borland model on targets where the linker supports it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-including ELF targets (such as GNU/Linux), Mac OS X and Microsoft Windows.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++including ELF targets (such as GNU/Linux), macOS and Microsoft Windows.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Otherwise G++ implements neither automatic model.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ You have the following options for dealing with template instantiations:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/doc/install.texi gcc/doc/install.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d488b768987..5f7d1878bca 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/install.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/install.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1031,14 +1031,26 @@ code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item --enable-host-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Specify that the @emph{host} code should be built into position-independent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-machine code (with -fPIC), allowing it to be used within shared libraries,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-but yielding a slightly slower compiler.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++machine code (with @option{-fPIC}), allowing it to be used within shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libraries, but yielding a slightly slower compiler.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This option is required when building the libgccjit.so library.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Contrast with @option{--enable-shared}, which affects @emph{target}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item --enable-host-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Specify that the @emph{host} executables should be built into
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++position-independent executables (with @option{-fPIE} and @option{-pie}),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++yielding a slightly slower compiler (but faster than
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@option{--enable-host-shared}).  Position-independent executables are loaded
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++at random addresses each time they are executed, therefore provide additional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++protection against Return Oriented Programming (ROP) attacks.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@option{--enable-host-pie}) may be used with @option{--enable-host-shared}),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++in which case @option{-fPIC} is used when compiling, and @option{-pie} when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++linking.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item @anchor{with-gnu-as}--with-gnu-as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Specify that the compiler should assume that the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assembler it finds is the GNU assembler.  However, this does not modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1721,6 +1733,12 @@ particularly useful if you intend to use several versions of GCC in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ parallel.  The default is @samp{yes} for @samp{libada}, and @samp{no} for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the remaining libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item --with-darwin-extra-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This is provided to allow distributions to add a single additional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++runpath on Darwin / macOS systems. This allows for cases where the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++installed GCC library directories are then symlinked to a common
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++directory outside of the GCC installation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item @anchor{WithAixSoname}--with-aix-soname=@samp{aix}, @samp{svr4} or @samp{both}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Traditional AIX shared library versioning (versioned @code{Shared Object}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ files as members of unversioned @code{Archive Library} files named
</span> diff --git gcc/doc/invoke.texi gcc/doc/invoke.texi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index cb83dd8..122f46e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c83f667260e..d42de5518b7 100644
</span> --- gcc/doc/invoke.texi
 +++ gcc/doc/invoke.texi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -670,6 +670,7 @@ Objective-C and Objective-C++ Dialects}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @gccoptlist{-fcall-saved-@var{reg}  -fcall-used-@var{reg} @gol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -ffixed-@var{reg}  -fexceptions @gol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -fnon-call-exceptions  -fdelete-dead-exceptions  -funwind-tables @gol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+-foff-stack-trampolines @gol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -fasynchronous-unwind-tables @gol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -fno-gnu-unique @gol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -finhibit-size-directive  -fcommon  -fno-ident @gol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -680,6 +681,7 @@ Objective-C and Objective-C++ Dialects}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -252,7 +252,8 @@ in the following sections.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wdelete-non-virtual-dtor  -Wno-deprecated-array-compare @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wdeprecated-copy -Wdeprecated-copy-dtor @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wno-deprecated-enum-enum-conversion -Wno-deprecated-enum-float-conversion @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--Weffc++  -Wno-exceptions -Wextra-semi  -Wno-inaccessible-base @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Weffc++ -Wno-elaborated-enum-base -Wno-exceptions -Wextra-semi @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wno-inaccessible-base @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wno-inherited-variadic-ctor  -Wno-init-list-lifetime @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Winvalid-imported-macros @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wno-invalid-offsetof  -Wno-literal-suffix @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -680,7 +681,7 @@ Objective-C and Objective-C++ Dialects}.
</span>  -fverbose-asm  -fpack-struct[=@var{n}]  @gol
  -fleading-underscore  -ftls-model=@var{model} @gol
  -fstack-reuse=@var{reuse_level} @gol
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+-fstack-use-cumulative-args @gol
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -ftrampolines  -ftrapv  -fwrapv @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--ftrampolines  -ftrapv  -fwrapv @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-ftrampolines -ftrampoline-impl=@r{[}stack@r{|}heap@r{]} -ftrapv  -fwrapv @gol
</span>  -fvisibility=@r{[}default@r{|}internal@r{|}hidden@r{|}protected@r{]} @gol
  -fstrict-volatile-bitfields  -fsync-libcalls}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17078,6 +17080,17 @@ the behavior of older compilers in which temporaries' stack space is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -904,7 +905,7 @@ Objective-C and Objective-C++ Dialects}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -twolevel_namespace  -umbrella  -undefined @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -unexported_symbols_list  -weak_reference_mismatches @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -whatsloaded  -F  -gused  -gfull  -mmacosx-version-min=@var{version} @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--mkernel  -mone-byte-bool}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-mkernel  -mone-byte-bool -munreachable-traps}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @emph{DEC Alpha Options}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @gccoptlist{-mno-fp-regs  -msoft-float @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3637,6 +3638,15 @@ to result in dangling pointers.  Since the underlying array for an
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ it is easy to inadvertently keep a pointer to the array past the end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ of the array's lifetime.  For example:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item -Wno-elaborated-enum-base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex Welaborated-enum-base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex Wno-elaborated-enum-base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++For C++11 and above, warn if an (invalid) additional enum-base is used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++in an elaborated-type-specifier.  That is, if an enum with given
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++underlying type and no enumerator list is used in a declaration other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++than just a standalone declaration of the enum.  Enabled by default.  This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++warning is upgraded to an error with -pedantic-errors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @itemize @bullet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If a function returns a temporary @code{initializer_list}, or a local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4522,7 +4532,7 @@ Use @var{class-name} as the name of the class to instantiate for each
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ literal string specified with the syntax @code{@@"@dots{}"}.  The default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class name is @code{NXConstantString} if the GNU runtime is being used, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @code{NSConstantString} if the NeXT runtime is being used (see below).  On
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Darwin (macOS, MacOS X) platforms, the @option{-fconstant-cfstrings} option, if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Darwin / macOS platforms, the @option{-fconstant-cfstrings} option, if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ also present, overrides the @option{-fconstant-string-class} setting and cause
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @code{@@"@dots{}"} literals to be laid out as constant CoreFoundation strings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Note that @option{-fconstant-cfstrings} is an alias for the target-specific
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4536,7 +4546,7 @@ runtime.  This is the default for most types of systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item -fnext-runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @opindex fnext-runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Generate output compatible with the NeXT runtime.  This is the default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-for NeXT-based systems, including Darwin and Mac OS X@.  The macro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for NeXT-based systems, including Darwin / macOS.  The macro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @code{__NEXT_RUNTIME__} is predefined if (and only if) this option is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5722,8 +5732,45 @@ Give an error whenever the @dfn{base standard} (see @option{-Wpedantic})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ requires a diagnostic, in some cases where there is undefined behavior
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ at compile-time and in some other cases that do not prevent compilation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ of programs that are valid according to the standard. This is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-equivalent to @option{-Werror=pedantic}, since there are errors enabled
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-by this option and not enabled by the latter and vice versa.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++equivalent to @option{-Werror=pedantic}: the latter option is unlikely to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++useful, as it only makes errors of the diagnostics that are controlled by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@option{-Wpedantic}, whereas this option also affects required diagnostics that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++are always enabled or controlled by options other than @option{-Wpedantic}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++If you want the required diagnostics that are warnings by default to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++be errors instead, but don't also want to enable the @option{-Wpedantic}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++diagnostics, you can specify @option{-pedantic-errors -Wno-pedantic}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(or @option{-pedantic-errors -Wno-error=pedantic} to enable them but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++only as warnings).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Some required diagnostics are errors by default, but can be reduced to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++warnings using @option{-fpermissive} or their specific warning option,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++e.g. @option{-Wno-error=narrowing}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Some diagnostics for non-ISO practices are controlled by specific
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++warning options other than @option{-Wpedantic}, but are also made
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++errors by @option{-pedantic-errors}.  For instance:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@gccoptlist{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wattributes @r{(for standard attributes)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wchanges-meaning @r{(C++)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wcomma-subscript @r{(C++23 or later)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wdeclaration-after-statement @r{(C90 or earlier)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Welaborated-enum-base @r{(C++11 or later)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wimplicit-int @r{(C99 or later)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wimplicit-function-declaration @r{(C99 or later)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wincompatible-pointer-types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wint-conversion
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wlong-long @r{(C90 or earlier)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wmain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wnarrowing @r{(C++11 or later)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wpointer-arith
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wpointer-sign
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wincompatible-pointer-types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wregister @r{(C++17 or later)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wvla @r{(C90 or earlier)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-Wwrite-strings @r{(C++11 or later)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item -Wall
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @opindex Wall
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10292,7 +10339,7 @@ possible.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Produce debugging information in DWARF format (if that is supported).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ The value of @var{version} may be either 2, 3, 4 or 5; the default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version for most targets is 5 (with the exception of VxWorks, TPF and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Darwin/Mac OS X, which default to version 2, and AIX, which defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Darwin / macOS, which default to version 2, and AIX, which defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to version 4).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Note that with DWARF Version 2, some ports require and always
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17080,6 +17127,17 @@ the behavior of older compilers in which temporaries' stack space is
</span>  not reused, the aggressive stack reuse can lead to runtime errors. This
  option is used to control the temporary stack reuse optimization.
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4558,31 +9102,94 @@ index cb83dd8..122f46e 100644
</span>  @item -ftrapv
  @opindex ftrapv
  This option generates traps for signed overflow on addition, subtraction,
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17136,6 +17149,19 @@ instructions.  It does not allow exceptions to be thrown from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- arbitrary signal handlers such as @code{SIGALRM}.  This enables
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @option{-fexceptions}.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@item -foff-stack-trampolines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@opindex foff-stack-trampolines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Certain platforms (such as the Apple M1) do not permit an executable
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+stack. Generate calls to @code{__builtin_nested_func_ptr_created} and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@code{__builtin_nested_func_ptr_deleted} in order to allocate and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+deallocate trampoline space on the executable heap. Please note that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+these functions are implemented in libgcc, and will not be compiled in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+unless you provide @option{--enable-off-stack-trampolines} when
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+building gcc.  @emph{PLEASE NOTE}: The trampolines are @emph{not}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+guaranteed to be correctly deallocated if you @code{setjmp},
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+instantiate nested functions, and then @code{longjmp} back to a state
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+prior to having allocated those nested functions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @item -fdelete-dead-exceptions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @opindex fdelete-dead-exceptions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Consider that instructions that may throw exceptions but don't otherwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17565,6 +17623,21 @@ For languages other than Ada, the @code{-ftrampolines} and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ trampolines are always generated on platforms that need them
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for nested functions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex ftrampoline-impl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item -ftrampoline-impl=@r{[}stack@r{|}heap@r{]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++By default, trampolines are generated on stack.  However, certain platforms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(such as the Apple M1) do not permit an executable stack.  Compiling with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@option{-ftrampoline-impl=heap} generate calls to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{__gcc_nested_func_ptr_created} and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{__gcc_nested_func_ptr_deleted} in order to allocate and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++deallocate trampoline space on the executable heap.  These functions are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++implemented in libgcc, and will only be provided on specific targets:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++x86_64 Darwin, x86_64 and aarch64 Linux.  @emph{PLEASE NOTE}: Heap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++trampolines are @emph{not} guaranteed to be correctly deallocated if you
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{setjmp}, instantiate nested functions, and then @code{longjmp} back
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to a state prior to having allocated those nested functions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex fvisibility
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item -fvisibility=@r{[}default@r{|}internal@r{|}hidden@r{|}protected@r{]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @opindex fvisibility
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Set the default ELF image symbol visibility to the specified option---all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22850,6 +22923,12 @@ without that switch.  Using this switch may require recompiling all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ other modules in a program, including system libraries.  Use this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch to conform to a non-default data model.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item -munreachable-traps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@itemx -munreachable-traps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex munreachable-traps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Causes @code{__builtin_unreachable} to be rendered as a trap.  This is the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++default for all Darwin architectures.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item -mfix-and-continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @itemx -ffix-and-continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @itemx -findirect-data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22896,6 +22975,14 @@ an executable when linking, using the Darwin @file{libtool} command.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This causes GCC's output file to have the @samp{ALL} subtype, instead of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ one controlled by the @option{-mcpu} or @option{-march} option.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex nodefaultrpaths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item -nodefaultrpaths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Do not add default run paths for the compiler library directories to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++executables, modules or dynamic libraries. On macOS 10.5 and later,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the embedded runpath is added by default unless the user adds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@option{-nodefaultrpaths} to the link line. Run paths are needed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(and therefore enforced) to build on macOS version 10.11 or later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item -allowable_client  @var{client_name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @itemx -client_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @itemx -compatibility_version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28806,7 +28893,7 @@ the same as @option{-mbig}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item -mdynamic-no-pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @opindex mdynamic-no-pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-On Darwin and Mac OS X systems, compile code so that it is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++On Darwin / macOS systems, compile code so that it is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ relocatable, but that its external references are relocatable.  The
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ resulting code is suitable for applications, but not shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/doc/plugins.texi gcc/doc/plugins.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6d1a5fa7607..b978fb415c6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/plugins.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/plugins.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,7 +44,7 @@ Plugins are loaded with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Where @var{name} is the plugin name and @var{ext} is the platform-specific
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dynamic library extension. It should be @code{dll} on Windows/MinGW,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@code{dylib} on Darwin/Mac OS X, and @code{so} on all other platforms.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{dylib} on Darwin/macOS, and @code{so} on all other platforms.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ The plugin arguments are parsed by GCC and passed to respective
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ plugins as key-value pairs. Multiple plugins can be invoked by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ specifying multiple @option{-fplugin} arguments.
</span> diff --git gcc/doc/tm.texi gcc/doc/tm.texi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c5006af..3663606 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c5006afc00d..c44c4ff1978 100644
</span> --- gcc/doc/tm.texi
 +++ gcc/doc/tm.texi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4322,6 +4322,16 @@ with the specified mode and type.  The default hook returns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1025,6 +1025,10 @@ also define the hook to @code{default_promote_function_mode_always_promote}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if you would like to apply the same rules given by @code{PROMOTE_MODE}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @end deftypefn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@deftypefn {Target Hook} machine_mode TARGET_PROMOTE_FUNCTION_MODE_CA (cumulative_args_t, @var{function_arg_info}, @var{const_tree}, int *@var{}, @var{int})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Like @code{promote_function_mode}, but takes a cumulative_args pointer   and a current arg to supply the input.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@end deftypefn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @defmac PARM_BOUNDARY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Normal alignment required for function parameters on the stack, in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bits.  All stack parameters receive at least this much alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4322,6 +4326,16 @@ with the specified mode and type.  The default hook returns
</span>  @code{PARM_BOUNDARY} for all arguments.
  @end deftypefn
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4599,7 +9206,7 @@ index c5006af..3663606 100644
</span>  @deftypefn {Target Hook} {unsigned int} TARGET_FUNCTION_ARG_ROUND_BOUNDARY (machine_mode @var{mode}, const_tree @var{type})
  Normally, the size of an argument is rounded up to @code{PARM_BOUNDARY},
  which is the default value for this hook.  You can define this hook to
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4329,6 +4339,16 @@ return a different value if an argument size must be rounded to a larger
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4329,6 +4343,16 @@ return a different value if an argument size must be rounded to a larger
</span>  value.
  @end deftypefn
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4616,11 +9223,41 @@ index c5006af..3663606 100644
</span>  @defmac FUNCTION_ARG_REGNO_P (@var{regno})
  A C expression that is nonzero if @var{regno} is the number of a hard
  register in which function arguments are sometimes passed.  This does
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5728,7 +5752,7 @@ This hook determines whether a function from a class of functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Set this macro to 1 to use the "NeXT" Objective-C message sending conventions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ by default.  This calling convention involves passing the object, the selector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and the method arguments all at once to the method-lookup library function.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-This is the usual setting when targeting Darwin/Mac OS X systems, which have
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This is the usual setting when targeting Darwin / macOS systems, which have
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the NeXT runtime installed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If the macro is set to 0, the "GNU" Objective-C message sending convention
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12527,6 +12551,11 @@ This target hook can be used to generate a target-specific code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If selftests are enabled, run any selftests for this target.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @end deftypefn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@deftypefn {Target Hook} bool TARGET_UNREACHABLE_SHOULD_TRAP (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This hook should return @code{true} if the target wants   @code{__builtin_unreachable} to expand to a trap or @code{abort ()}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  The default value is false.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@end deftypefn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @deftypefn {Target Hook} bool TARGET_MEMTAG_CAN_TAG_ADDRESSES ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ True if the backend architecture naturally supports ignoring some region
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ of pointers.  This feature means that @option{-fsanitize=hwaddress} can
</span> diff --git gcc/doc/tm.texi.in gcc/doc/tm.texi.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f869ddd..2c9f0f0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f869ddd5e5b..7fb14849efc 100644
</span> --- gcc/doc/tm.texi.in
 +++ gcc/doc/tm.texi.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3330,8 +3330,12 @@ required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -935,6 +935,8 @@ applied.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @hook TARGET_PROMOTE_FUNCTION_MODE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@hook TARGET_PROMOTE_FUNCTION_MODE_CA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @defmac PARM_BOUNDARY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Normal alignment required for function parameters on the stack, in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bits.  All stack parameters receive at least this much alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3330,8 +3332,12 @@ required.
</span>  
  @hook TARGET_FUNCTION_ARG_BOUNDARY
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4633,10 +9270,182 @@ index f869ddd..2c9f0f0 100644
</span>  @defmac FUNCTION_ARG_REGNO_P (@var{regno})
  A C expression that is nonzero if @var{regno} is the number of a hard
  register in which function arguments are sometimes passed.  This does
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3997,7 +4003,7 @@ macro, a reasonable default is used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Set this macro to 1 to use the "NeXT" Objective-C message sending conventions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ by default.  This calling convention involves passing the object, the selector
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and the method arguments all at once to the method-lookup library function.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-This is the usual setting when targeting Darwin/Mac OS X systems, which have
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This is the usual setting when targeting Darwin / macOS systems, which have
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the NeXT runtime installed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If the macro is set to 0, the "GNU" Objective-C message sending convention
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8164,6 +8170,8 @@ maintainer is familiar with.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @hook TARGET_RUN_TARGET_SELFTESTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@hook TARGET_UNREACHABLE_SHOULD_TRAP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @hook TARGET_MEMTAG_CAN_TAG_ADDRESSES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @hook TARGET_MEMTAG_TAG_SIZE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/exec-tool.in gcc/exec-tool.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cf7222745fb..2b98aa14551 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/exec-tool.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/exec-tool.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,6 +23,8 @@ ORIGINAL_AS_FOR_TARGET="@ORIGINAL_AS_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_LD_FOR_TARGET="@ORIGINAL_LD_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_LD_BFD_FOR_TARGET="@ORIGINAL_LD_BFD_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_LD_GOLD_FOR_TARGET="@ORIGINAL_LD_GOLD_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_LLD_FOR_TARGET="@ORIGINAL_LLD_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ORIGINAL_CLASSIC_LD_FOR_TARGET="@ORIGINAL_CLASSIC_LD_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_PLUGIN_LD_FOR_TARGET="@ORIGINAL_PLUGIN_LD_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_NM_FOR_TARGET="@ORIGINAL_NM_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_DSYMUTIL_FOR_TARGET="@ORIGINAL_DSYMUTIL_FOR_TARGET@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,24 +41,41 @@ case "$invoked" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dir=gas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   collect-ld)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    # Check -fuse-ld=bfd and -fuse-ld=gold
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    case " $* " in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      *\ -fuse-ld=bfd\ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  original=$ORIGINAL_LD_BFD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      *\ -fuse-ld=gold\ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  original=$ORIGINAL_LD_GOLD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # when using a linker plugin, gcc will always pass '-plugin' as the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # first or second option to the linker.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if test x"$1" = "x-plugin" || test x"$2" = "x-plugin"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    original=$ORIGINAL_PLUGIN_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    original=$ORIGINAL_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # when using a linker plugin, gcc will always pass '-plugin' as the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # first or second option to the linker.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if test x"$1" = "x-plugin" || test x"$2" = "x-plugin"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      original=$ORIGINAL_PLUGIN_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      original=$ORIGINAL_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Check -fuse-ld=bfd, -fuse-ld=gold and -fuse-ld=classic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Remove -fuse-ld=classic from the command line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for arg do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # temporarily, remove the arg.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        shift
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        case $arg in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          -fuse-ld=bfd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            original=$ORIGINAL_LD_BFD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          -fuse-ld=gold)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            original=$ORIGINAL_LD_GOLD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          -fuse-ld=lld)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            original=$ORIGINAL_LLD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # We want to remove this from the command line; by the slightly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # obtuse mechanism of not putting it back.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          -fuse-ld=classic)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            original=$ORIGINAL_CLASSIC_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # As for lld.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          *) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # if we want to keep the arg, put it back.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set -- "$@" "$arg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     prog=ld-new$exeext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if test "$original" = ../gold/ld-new$exeext; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       dir=gold
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/explow.cc gcc/explow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d8aa75ee9ba..2695b6afc9d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/explow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/explow.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,6 +37,7 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "langhooks.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "except.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "dojump.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "calls.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "explow.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "expr.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "stringpool.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -817,6 +818,16 @@ promote_function_mode (const_tree type, machine_mode mode, int *punsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++machine_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++promote_function_mode (cumulative_args_t args_so_far, function_arg_info arg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                 const_tree funtype, int *punsignedp , int for_return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return targetm.calls.promote_function_mode_ca (args_so_far, arg, funtype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           punsignedp, for_return);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//  return promote_function_mode (arg.type, arg.mode, punsignedp, funtype, for_return);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return the mode to use to store a scalar of TYPE and MODE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PUNSIGNEDP points to the signedness of the type and may be adjusted
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    to show what signedness to use on extension operations.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/explow.h gcc/explow.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2b9f7e43215..159da9ac642 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/explow.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/explow.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,6 +20,8 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef GCC_EXPLOW_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define GCC_EXPLOW_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "calls.h" /* for cummulative args stuff.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return a memory reference like MEMREF, but which is known to have a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    valid address.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern rtx validize_mem (rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,8 +49,13 @@ extern rtx force_not_mem (rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return mode and signedness to use when an argument or result in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    given mode is promoted.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern machine_mode promote_function_mode (const_tree, machine_mode, int *,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                          const_tree, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++machine_mode promote_function_mode (const_tree, machine_mode, int *,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                              const_tree, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Return mode and signedness to use when an argument or result in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   given mode is promoted.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++machine_mode promote_function_mode (cumulative_args_t, function_arg_info,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                              const_tree, int *, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return mode and signedness to use when an object in the given mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    is promoted.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/fortran/gfortran.texi gcc/fortran/gfortran.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d34e0b5e8f9..b895d99be69 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/fortran/gfortran.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/fortran/gfortran.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -978,7 +978,7 @@ low level file descriptor corresponding to an open Fortran unit. Then,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using e.g. the @code{ISO_C_BINDING} feature, one can call the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ underlying system call to flush dirty data to stable storage, such as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @code{fsync} on POSIX, @code{_commit} on MingW, or @code{fcntl(fd,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-F_FULLSYNC, 0)} on Mac OS X. The following example shows how to call
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++F_FULLSYNC, 0)} on macOS. The following example shows how to call
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fsync:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @smallexample
</span> diff --git gcc/function.cc gcc/function.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d84a324..7304b17 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d84a3240ee1..8ea53c3418e 100644
</span> --- gcc/function.cc
 +++ gcc/function.cc
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,8 +58,8 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "varasm.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "except.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "dojump.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "explow.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "calls.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "explow.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "expr.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "optabs-tree.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "output.h"
</span> @@ -2445,7 +2445,10 @@ assign_parm_find_data_types (struct assign_parm_data_all *all, tree parm,
    else if (DECL_CHAIN (parm))
      data->arg.named = 1;  /* Not the last non-variadic parm. */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4649,7 +9458,23 @@ index d84a324..7304b17 100644
</span>    else
      data->arg.named = 0;  /* Treat as variadic.  */
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2502,6 +2505,7 @@ assign_parms_setup_varargs (struct assign_parm_data_all *all,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2487,9 +2490,12 @@ assign_parm_find_data_types (struct assign_parm_data_all *all, tree parm,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Find mode as it is passed by the ABI.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unsignedp = TYPE_UNSIGNED (data->arg.type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  data->arg.mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    = promote_function_mode (data->arg.type, data->arg.mode, &unsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       TREE_TYPE (current_function_decl), 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//  data->arg.mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//    = promote_function_mode (data->arg.type, data->arg.mode, &unsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//                             TREE_TYPE (current_function_decl), 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  data->arg.mode = promote_function_mode (all->args_so_far, data->arg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    TREE_TYPE (current_function_decl),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                    &unsignedp, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* A subroutine of assign_parms.  Invoke setup_incoming_varargs.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2502,6 +2508,7 @@ assign_parms_setup_varargs (struct assign_parm_data_all *all,
</span>  
    function_arg_info last_named_arg = data->arg;
    last_named_arg.named = true;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4657,7 +9482,7 @@ index d84a324..7304b17 100644
</span>    targetm.calls.setup_incoming_varargs (all->args_so_far, last_named_arg,
                                        &varargs_pretend_bytes, no_rtl);
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2610,7 +2614,9 @@ assign_parm_find_entry_rtl (struct assign_parm_data_all *all,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2610,7 +2617,9 @@ assign_parm_find_entry_rtl (struct assign_parm_data_all *all,
</span>  
    locate_and_pad_parm (data->arg.mode, data->arg.type, in_regs,
                       all->reg_parm_stack_space,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4668,7 +9493,7 @@ index d84a324..7304b17 100644
</span>                  &all->stack_args_size, &data->locate);
  
    /* Update parm_stack_boundary if this parameter is passed in the
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3924,7 +3930,8 @@ gimplify_parameters (gimple_seq *cleanup)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3924,7 +3933,8 @@ gimplify_parameters (gimple_seq *cleanup)
</span>        if (data.arg.pass_by_reference)
        {
          tree type = TREE_TYPE (data.arg.type);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4678,7 +9503,7 @@ index d84a324..7304b17 100644
</span>     if (reference_callee_copied (&all.args_so_far_v, orig_arg))
            {
              tree local, t;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4027,6 +4034,7 @@ gimplify_parameters (gimple_seq *cleanup)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4027,6 +4037,7 @@ gimplify_parameters (gimple_seq *cleanup)
</span>  void
  locate_and_pad_parm (machine_mode passed_mode, tree type, int in_regs,
                     int reg_parm_stack_space, int partial,
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4686,7 +9511,7 @@ index d84a324..7304b17 100644
</span>                tree fndecl ATTRIBUTE_UNUSED,
                     struct args_size *initial_offset_ptr,
                     struct locate_and_pad_arg_data *locate)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4064,9 +4072,23 @@ locate_and_pad_parm (machine_mode passed_mode, tree type, int in_regs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4064,9 +4075,23 @@ locate_and_pad_parm (machine_mode passed_mode, tree type, int in_regs,
</span>         ? arg_size_in_bytes (type)
              : size_int (GET_MODE_SIZE (passed_mode)));
    where_pad = targetm.calls.function_arg_padding (passed_mode, type);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4714,7 +9539,7 @@ index d84a324..7304b17 100644
</span>  
    /* Alignment can't exceed MAX_SUPPORTED_STACK_ALIGNMENT.  */
 diff --git gcc/function.h gcc/function.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a53fb24..4dc16c6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a53fb24d217..4dc16c64717 100644
</span> --- gcc/function.h
 +++ gcc/function.h
 @@ -20,6 +20,7 @@ along with GCC; see the file COPYING3.  If not see
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4734,7 +9559,7 @@ index a53fb24..4dc16c6 100644
</span>                            struct locate_and_pad_arg_data *);
  extern void generate_setjmp_warnings (void);
 diff --git gcc/gcc.cc gcc/gcc.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index fbcc9d0..bd2b90c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fbcc9d03314..bd2b90ce16f 100644
</span> --- gcc/gcc.cc
 +++ gcc/gcc.cc
 @@ -574,6 +574,7 @@ or with constant text in a single argument.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4813,7 +9638,7 @@ index fbcc9d0..bd2b90c 100644
</span>         for_each_path (&include_prefixes, false, info.append_len,
                             spec_path, &info);
 diff --git gcc/ginclude/stddef.h gcc/ginclude/stddef.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 79e296d..a9caa04 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 79e296d4a66..a9caa0467ba 100644
</span> --- gcc/ginclude/stddef.h
 +++ gcc/ginclude/stddef.h
 @@ -427,9 +427,8 @@ typedef struct {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4829,95 +9654,218 @@ index 79e296d..a9caa04 100644
</span>  #endif
  } max_align_t;
 diff --git gcc/jit/Make-lang.in gcc/jit/Make-lang.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6e10abf..5a39342 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 33ed7e357a2..e78a496de89 100644
</span> --- gcc/jit/Make-lang.in
 +++ gcc/jit/Make-lang.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -43,6 +43,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_VERSION_NUM = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_MINOR_NUM = 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_RELEASE_NUM = 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+COMMA := ,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ifneq (,$(findstring mingw,$(target)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_FILENAME = libgccjit-$(LIBGCCJIT_VERSION_NUM).dll
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -59,22 +60,18 @@ LIBGCCJIT_AGE = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,7 +69,7 @@ LIBGCCJIT_COMPAT = 0
</span>  LIBGCCJIT_BASENAME = libgccjit
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_SONAME = \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  ${libdir}/$(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $(DARWIN_RPATH)/$(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_FILENAME = $(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_LINKER_NAME = $(LIBGCCJIT_BASENAME).dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_SONAME = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ${libdir}/$(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(DARWIN_RPATH)/$(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_FILENAME = $(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_LINKER_NAME = $(LIBGCCJIT_BASENAME).dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/jit/jit-playback.cc gcc/jit/jit-playback.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 79714132b91..a475379671e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/jit/jit-playback.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/jit/jit-playback.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3000,7 +3000,7 @@ invoke_driver (const char *ctxt_progname,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ADD_ARG ("-fno-use-linker-plugin");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined (DARWIN_X86) || defined (DARWIN_PPC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* OS X's linker defaults to treating undefined symbols as errors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* macOS's linker defaults to treating undefined symbols as errors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      If the context has any imported functions or globals they will be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      undefined until the .so is dynamically-linked into the process.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      Ensure that the driver passes in "-undefined dynamic_lookup" to the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/jit/libgccjit.h gcc/jit/libgccjit.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b3c389e93f6..925c5c23c0c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/jit/libgccjit.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/jit/libgccjit.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,6 +21,9 @@ along with GCC; see the file COPYING3.  If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBGCCJIT_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# include <sys/types.h>  /* For ssize_t.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern "C" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/objc/objc-act.cc gcc/objc/objc-act.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4820c5dbac3..ba98ff0b85d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/objc/objc-act.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/objc/objc-act.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3319,7 +3319,7 @@ objc_build_string_object (tree string)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   length = TREE_STRING_LENGTH (string) - 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* The target may have different ideas on how to construct an ObjC string
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     literal.  On Darwin (Mac OS X), for example, we may wish to obtain a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     literal.  On Darwin / macOS, for example, we may wish to obtain a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      constant CFString reference instead.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      At present, this is only supported for the NeXT runtime.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (flag_next_runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10364,5 +10364,51 @@ objc_common_tree_size (enum tree_code code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Information for Objective-C-specific features known to __has_feature.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct objc_feature_info
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  typedef bool (*predicate_t) ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char *ident;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  predicate_t predicate;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr objc_feature_info (const char *name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    : ident (name), predicate (nullptr) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  constexpr objc_feature_info (const char *name, predicate_t p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    : ident (name), predicate (p) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool has_feature () const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return predicate ? predicate () : true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static bool objc_nonfragile_abi_p ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return flag_next_runtime && flag_objc_abi >= 2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static constexpr objc_feature_info objc_features[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "objc_default_synthesize_properties" },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "objc_instancetype" },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { "objc_nonfragile_abi", objc_nonfragile_abi_p }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Register Objective-C-specific features for __has_feature.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++objc_common_register_features ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (unsigned i = 0; i < ARRAY_SIZE (objc_features); i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      const objc_feature_info *info = objc_features + i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (!info->has_feature ())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      c_common_register_feature (info->ident, true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "gt-objc-objc-act.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/objc/objc-act.h gcc/objc/objc-act.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7d0c6d5077f..62f0f440cf4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/objc/objc-act.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/objc/objc-act.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,6 +28,9 @@ const char *objc_printable_name (tree, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int objc_gimplify_expr (tree *, gimple_seq *, gimple_seq *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void objc_common_init_ts (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Register features common to Objective-C and Objective-C++.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void objc_common_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* NB: The remaining public functions are prototyped in c-common.h, for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    benefit of stub-objc.cc and objc-act.cc.  */
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>--# Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# LD_SONAME_OPTION depending if configure found them, using $(if)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# We have to define a COMMA here, otherwise the commas in the "true"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# result are treated as separators by the $(if).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--COMMA := ,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--LIBGCCJIT_VERSION_SCRIPT_OPTION = \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  $(if $(LD_VERSION_SCRIPT_OPTION),\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# TODO: translate the libgccjit.map into a form usable by Darwin's linker and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# then check for linker support for -exported_symbols_list=.  Omitting this
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# means that all symbols in the libgccjit library will be visible.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIBGCCJIT_VERSION_SCRIPT_OPTION =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--LIBGCCJIT_SONAME_OPTION = \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  $(if $(LD_SONAME_OPTION), \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--       -Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# This is a work-around fix for cross-compilation where the target linker
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# is ld and the host is ld64.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIBGCCJIT_SONAME_OPTION = -Wl,-install_name,$(LIBGCCJIT_SONAME)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_FILENAME)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -98,7 +95,6 @@ LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_SONAME)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # LD_SONAME_OPTION depending if configure found them, using $(if)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # We have to define a COMMA here, otherwise the commas in the "true"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # result are treated as separators by the $(if).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--COMMA := ,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LIBGCCJIT_VERSION_SCRIPT_OPTION = \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(if $(LD_VERSION_SCRIPT_OPTION),\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/objc/objc-next-runtime-abi-02.cc gcc/objc/objc-next-runtime-abi-02.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index e50ca6e..9ea63b1 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/objc/objc-next-runtime-abi-02.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/objc/objc-next-runtime-abi-02.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1033,6 +1033,7 @@ next_runtime_abi_02_protocol_decl (tree p)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     decl = start_var_decl (objc_v2_protocol_template, buf);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   OBJCMETA (decl, objc_meta, meta_protocol);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  DECL_PRESERVE_P (decl) = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return decl;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/objc/objc-lang.cc gcc/objc/objc-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ef664f555b0..3fd7b0f9265 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/objc/objc-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/objc/objc-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,6 +50,16 @@ enum c_language_kind c_language = clk_objc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Each front end provides its own lang hook initializer.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2115,8 +2116,8 @@ build_v2_classrefs_table (void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     expr = convert (objc_class_type, build_fold_addr_expr (expr));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       /* The runtime wants this, even if it appears unused, so we must force the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--   output.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      DECL_PRESERVE_P (decl) = 1; */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   output.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      DECL_PRESERVE_P (decl) = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       finish_var_decl (decl, expr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implement c-family hook to add language-specific features
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   for __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_family_register_lang_features ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  objc_common_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  c_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Lang hook routines common to C and ObjC appear in c-objc-common.cc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    there should be very few (if any) routines below.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/objcp/objcp-lang.cc gcc/objcp/objcp-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2e8809b865d..6582460e1a9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/objcp/objcp-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/objcp/objcp-lang.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -82,6 +82,16 @@ objcp_tsubst_copy_and_build (tree t, tree args, tsubst_flags_t complain,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef RECURSE
</span>  }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2318,6 +2319,7 @@ build_v2_protocol_list_address_table (void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       expr = convert (objc_protocol_type, build_fold_addr_expr (ref->refdecl));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       OBJCMETA (decl, objc_meta, meta_label_protocollist);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       finish_var_decl (decl, expr);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      DECL_PRESERVE_P (decl) = 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     /* TODO: delete the vec.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implement c-family hook to add language-specific features
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   for __has_{feature,extension}.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_family_register_lang_features ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  objc_common_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cp_register_features ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ objcxx_init_ts (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/opts.cc gcc/opts.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a97630d1c9a..40cf287cc69 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/opts.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/opts.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3147,6 +3147,7 @@ common_handle_option (struct gcc_options *opts,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case OPT_fuse_ld_bfd:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case OPT_fuse_ld_classic:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case OPT_fuse_ld_gold:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case OPT_fuse_ld_lld:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case OPT_fuse_ld_mold:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/plugin.cc gcc/plugin.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cbe4b7eff60..d30634bde9c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/plugin.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/plugin.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -189,10 +189,10 @@ add_new_plugin (const char* plugin_name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__MINGW32__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       static const char plugin_ext[] = ".dll";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      /* Mac OS has two types of libraries: dynamic libraries (.dylib) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* macOS has two types of libraries: dynamic libraries (.dylib) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          plugins (.bundle). Both can be used with dlopen()/dlsym() but the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          former cannot be linked at build time (i.e., with the -lfoo linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         option). A GCC plugin is therefore probably a Mac OS plugin but their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         option). A GCC plugin is therefore probably a macOS plugin but their
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          use seems to be quite rare and the .bundle extension is more of a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          recommendation rather than the rule. This raises the questions of how
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          well they are supported by tools (e.g., libtool). So to avoid
</span> diff --git gcc/target.def gcc/target.def
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d85adf3..5eb1fdc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d85adf36a39..0f5667500a4 100644
</span> --- gcc/target.def
 +++ gcc/target.def
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4968,6 +4968,18 @@ with the specified mode and type.  The default hook returns\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  default_function_arg_boundary)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4551,6 +4551,13 @@ if you would like to apply the same rules given by @code{PROMOTE_MODE}.",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                const_tree funtype, int for_return),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  default_promote_function_mode)
</span>  
<span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFHOOK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(promote_function_mode_ca,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "Like @code{promote_function_mode}, but takes a cumulative_args pointer \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  and a current arg to supply the input.",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ machine_mode, (cumulative_args_t, function_arg_info, const_tree, int *, int),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ default_promote_function_mode_ca)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span>  DEFHOOK
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ (promote_prototypes,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  "This target hook returns @code{true} if an argument declared in a\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4967,6 +4974,18 @@ with the specified mode and type.  The default hook returns\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  unsigned int, (machine_mode mode, const_tree type),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  default_function_arg_boundary)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFHOOK
</span> +(function_arg_boundary_ca,
 + "This is the @code{cumulative_args_t}-based version of\n\
 +@code{TARGET_FUNCTION_ARG_BOUNDARY}. Define this hook if you need more\n\
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4929,11 +9877,10 @@ index d85adf3..5eb1fdc 100644
</span> + unsigned int, (machine_mode mode, const_tree type, cumulative_args_t ca),
 + default_function_arg_boundary_ca)
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+DEFHOOK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFHOOK
</span>  (function_arg_round_boundary,
   "Normally, the size of an argument is rounded up to @code{PARM_BOUNDARY},\n\
<span style='display:block; white-space:pre;background:#ffe0e0;'>- which is the default value for this hook.  You can define this hook to\n\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4976,6 +4988,18 @@ value.",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4976,6 +4995,18 @@ value.",
</span>   unsigned int, (machine_mode mode, const_tree type),
   default_function_arg_round_boundary)
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4952,11 +9899,28 @@ index d85adf3..5eb1fdc 100644
</span>  /* Return the diagnostic message string if function without a prototype
     is not allowed for this 'val' argument; NULL otherwise. */
  DEFHOOK
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7111,6 +7142,16 @@ DEFHOOKPOD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @option{-fsanitize=shadow-call-stack}.  The default value is false.",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  bool, false)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* This value represents whether __builtin_unreachable should be expanded
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   as a trap instruction (or an abort() if the trap is not available).  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFHOOK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(unreachable_should_trap,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "This hook should return @code{true} if the target wants \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  @code{__builtin_unreachable} to expand to a trap or @code{abort ()}.\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  The default value is false.",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool, (void),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ hook_bool_void_false)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Close the 'struct gcc_target' definition.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HOOK_VECTOR_END (C90_EMPTY_HACK)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git gcc/target.h gcc/target.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d6fa693..40c3da8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d6fa6931499..7f8f488e154 100644
</span> --- gcc/target.h
 +++ gcc/target.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -51,22 +51,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,22 +51,8 @@
</span>  #include "insn-codes.h"
  #include "tm.h"
  #include "hard-reg-set.h"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4976,18 +9940,36 @@ index d6fa693..40c3da8 100644
</span> -union cumulative_args_t { void *p; };
 -
 -#endif /* !CHECKING_P */
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "tree-core.h"
</span> +#include "cumulative-args.h"
  
  /* Types of memory operation understood by the "by_pieces" infrastructure.
     Used by the TARGET_USE_BY_PIECES_INFRASTRUCTURE_P target hook and
 diff --git gcc/targhooks.cc gcc/targhooks.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 399d6f8..9d554ad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 399d6f874dc..6651ad872aa 100644
</span> --- gcc/targhooks.cc
 +++ gcc/targhooks.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -851,12 +851,28 @@ default_function_arg_boundary (machine_mode mode ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -158,6 +158,15 @@ default_promote_function_mode_always_promote (const_tree type,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return promote_mode (type, mode, punsignedp);
</span>  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++machine_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++default_promote_function_mode_ca (cumulative_args_t, function_arg_info arg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            const_tree funtype, int *punsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            int for_return)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return promote_function_mode (arg.type, arg.mode, punsignedp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          funtype, for_return);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ machine_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_cc_modes_compatible (machine_mode m1, machine_mode m2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -850,6 +859,14 @@ default_function_arg_boundary (machine_mode mode ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return PARM_BOUNDARY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unsigned int
</span> +default_function_arg_boundary_ca (machine_mode mode ATTRIBUTE_UNUSED,
 +                                const_tree type ATTRIBUTE_UNUSED,
 +                                cumulative_args_t ca ATTRIBUTE_UNUSED)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4995,10 +9977,10 @@ index 399d6f8..9d554ad 100644
</span> +  return default_function_arg_boundary (mode, type);
 +}
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int
</span>  default_function_arg_round_boundary (machine_mode mode ATTRIBUTE_UNUSED,
                                     const_tree type ATTRIBUTE_UNUSED)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -857,6 +874,14 @@ default_function_arg_round_boundary (machine_mode mode ATTRIBUTE_UNUSED,
</span>    return PARM_BOUNDARY;
  }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5014,10 +9996,20 @@ index 399d6f8..9d554ad 100644
</span>  hook_void_bitmap (bitmap regs ATTRIBUTE_UNUSED)
  {
 diff --git gcc/targhooks.h gcc/targhooks.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ecce55e..ba110ad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ecce55ebe79..5aa565bb3b7 100644
</span> --- gcc/targhooks.h
 +++ gcc/targhooks.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -154,6 +154,12 @@ extern unsigned int default_function_arg_boundary (machine_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,6 +34,9 @@ extern machine_mode default_promote_function_mode (const_tree, machine_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern machine_mode default_promote_function_mode_always_promote
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   (const_tree, machine_mode, int *, const_tree, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern machine_mode default_promote_function_mode_ca
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (cumulative_args_t, function_arg_info, const_tree, int *, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern machine_mode default_cc_modes_compatible (machine_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                 machine_mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -154,6 +157,12 @@ extern unsigned int default_function_arg_boundary (machine_mode,
</span>                                              const_tree);
  extern unsigned int default_function_arg_round_boundary (machine_mode,
                                                         const_tree);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5030,8 +10022,113 @@ index ecce55e..ba110ad 100644
</span>  extern bool hook_bool_const_rtx_commutative_p (const_rtx, int);
  extern rtx default_function_value (const_tree, const_tree, bool);
  extern HARD_REG_SET default_zero_call_used_regs (HARD_REG_SET);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/c-c++-common/has-feature-common.c gcc/testsuite/c-c++-common/has-feature-common.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..1604d7790fc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/c-c++-common/has-feature-common.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,73 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Test __has_{feature,extension} for generic features.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FEAT(x) (__has_feature (x) && __has_extension (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define EXT(x) (__has_extension (x) && !__has_feature (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (unknown_feature) || __has_extension (unknown_feature)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error unknown feature is known!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !EXT (gnu_asm_goto_with_outputs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !EXT (__gnu_asm_goto_with_outputs__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !EXT (gnu_asm_goto_with_outputs_full)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !EXT (__gnu_asm_goto_with_outputs_full__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (enumerator_attributes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (__enumerator_attributes__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (attribute_deprecated_with_message)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (__attribute_deprecated_with_message__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (attribute_unavailable_with_message)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (__attribute_unavailable_with_message__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (tls)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT(__tls__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (__SANITIZE_ADDRESS__) != __has_feature (address_sanitizer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (__SANITIZE_ADDRESS__) != __has_extension (address_sanitizer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (__SANITIZE_THREAD__) != __has_feature (thread_sanitizer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (__SANITIZE_THREAD__) != __has_extension (thread_sanitizer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/c-c++-common/has-feature-pedantic.c gcc/testsuite/c-c++-common/has-feature-pedantic.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..4ac16a4ed8a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/c-c++-common/has-feature-pedantic.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-pedantic-errors" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* When -pedantic-errors is passed, __has_extension should behave like
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   __has_feature.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (gnu_asm_goto_with_outputs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error extension recognized as feature
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_extension (gnu_asm_goto_with_outputs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error pure extensions should not be recognized with -pedantic-errors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_feature (tls) || !__has_extension (tls)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error features should still be recognized with -pedantic-errors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Make this TU non-empty to appease -pedantic-errors.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int foo;
</span> diff --git gcc/testsuite/g++.dg/abi/aarch64_guard1.C gcc/testsuite/g++.dg/abi/aarch64_guard1.C
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e2669a8..52be32d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e2669a89fbf..52be32decc6 100644
</span> --- gcc/testsuite/g++.dg/abi/aarch64_guard1.C
 +++ gcc/testsuite/g++.dg/abi/aarch64_guard1.C
 @@ -12,5 +12,6 @@ int *foo ()
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5043,7 +10140,7 @@ index e2669a8..52be32d 100644
</span> +// { dg-final { scan-assembler __DATA,__bss,__ZGVZ3foovE1x,8,3 { target *-*-darwin* } } }
  // { dg-final { scan-tree-dump "& 1" "original" } }
 diff --git gcc/testsuite/g++.dg/abi/arm_va_list.C gcc/testsuite/g++.dg/abi/arm_va_list.C
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4f6f3a4..ff9fd8b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4f6f3a46da4..ff9fd8bcf0d 100644
</span> --- gcc/testsuite/g++.dg/abi/arm_va_list.C
 +++ gcc/testsuite/g++.dg/abi/arm_va_list.C
 @@ -8,8 +8,10 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5059,9 +10156,83 @@ index 4f6f3a4..ff9fd8b 100644
</span> +// { dg-final { scan-assembler "\n_Z1gSt9__va_listS_:" { target { ! *-*-darwin* } } } }
 +// { dg-final { scan-assembler "\n__Z1gPcS_:" { target *-*-darwin* } } }
  void g(va_list, va_list) {}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/asan/asan.exp gcc/testsuite/g++.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 944da4e47e9..f4d14330686 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,7 +22,8 @@ load_lib asan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-asan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libasan uses libstdc++ but we assume that's added by the g++ impl.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++asan_init 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_address] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/cpp0x/elab-enum-base.C gcc/testsuite/g++.dg/cpp0x/elab-enum-base.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..57141f013bd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/cpp0x/elab-enum-base.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-do compile { target c++11 } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-options "" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// Empty dg-options to override -pedantic-errors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef long CFIndex;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef enum CFComparisonResult : CFIndex CFComparisonResult;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-warning "declaration of enumeration with fixed underlying type" "" { target *-*-* } .-1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/cpp0x/enum40.C gcc/testsuite/g++.dg/cpp0x/enum40.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cfdf2a4a18a..d3ffeb62d70 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/cpp0x/enum40.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/cpp0x/enum40.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,23 +4,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foo ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enum : int a alignas;           // { dg-error "expected" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enum : int a alignas;           // { dg-error "declaration of enum" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // { dg-error {expected '\(' before ';'} "" { target *-*-* } .-1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bar ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enum : int a;                   // { dg-error "expected" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enum : int a;                   // { dg-error "declaration of enum" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ baz ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enum class a : int b alignas;   // { dg-error "expected" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enum class a : int b alignas;   // { dg-error "declaration of enum" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // { dg-error {expected '\(' before ';'} "" { target *-*-* } .-1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ qux ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enum class a : int b;           // { dg-error "expected" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enum class a : int b;           // { dg-error "declaration of enum" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/cpp0x/forw_enum6.C gcc/testsuite/g++.dg/cpp0x/forw_enum6.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 01bf563bcdd..8ad3f733292 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/cpp0x/forw_enum6.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/cpp0x/forw_enum6.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,7 +23,7 @@ enum class E7 : int; //ok
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum class E3 e3; // { dg-error "scoped enum must not use" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum struct E3 e4; // { dg-error "scoped enum must not use" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-enum E5 : int e5; // { dg-error "expected|invalid type" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enum E5 : int e5; // { dg-error "declaration of enumeration with fixed underlying type|invalid type" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum E6 : int { a, b, c }; // { dg-message "previous definition" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum E6 : int { a, b, c }; // { dg-error "multiple definition" }
</span> diff --git gcc/testsuite/g++.dg/cpp0x/pr106435-b.cc gcc/testsuite/g++.dg/cpp0x/pr106435-b.cc
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..4f58169
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..4f581694177
</span> --- /dev/null
 +++ gcc/testsuite/g++.dg/cpp0x/pr106435-b.cc
 @@ -0,0 +1,17 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5084,7 +10255,7 @@ index 0000000..4f58169
</span> +thread_local Foo Bar::baz;
 diff --git gcc/testsuite/g++.dg/cpp0x/pr106435.C gcc/testsuite/g++.dg/cpp0x/pr106435.C
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..d600976
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..d600976f9f9
</span> --- /dev/null
 +++ gcc/testsuite/g++.dg/cpp0x/pr106435.C
 @@ -0,0 +1,20 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5110,7 +10281,7 @@ index 0000000..d600976
</span> +}
 diff --git gcc/testsuite/g++.dg/cpp0x/pr106435.h gcc/testsuite/g++.dg/cpp0x/pr106435.h
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..240de1e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..240de1ee9a9
</span> --- /dev/null
 +++ gcc/testsuite/g++.dg/cpp0x/pr106435.h
 @@ -0,0 +1,14 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5129,7 +10300,7 @@ index 0000000..240de1e
</span> +  thread_local static Foo bat;
 +};
 diff --git gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5426a18..a017ce8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5426a1814b8..a017ce8ce5f 100644
</span> --- gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
 +++ gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
 @@ -2,12 +2,12 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5148,20 +10319,384 @@ index 5426a18..a017ce8 100644
</span> +/* { dg-final { scan-assembler {\t.globa?l[ \t]_?_ZN1SIu6__bf16u6__bf16E1iE} } } */
  template <typename T, typename U> struct S { static int i; };
  template <> int S<__bf16, __bf16>::i = 3;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/ext/has-feature.C gcc/testsuite/g++.dg/ext/has-feature.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..52191b78fd6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/ext/has-feature.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,206 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-do compile }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-options "" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FEAT(x) (__has_feature(x) && __has_extension(x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CXX11 (__cplusplus >= 201103L)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CXX14 (__cplusplus >= 201402L)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT(cxx_exceptions) || !FEAT(cxx_rtti)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_access_control_sfinae) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_extension (cxx_access_control_sfinae)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_alias_templates) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_alignas) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_alignof) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_attributes) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_constexpr) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_decltype) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_decltype_incomplete_return_types) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_default_function_template_args) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT(cxx_defaulted_functions) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_delegating_constructors) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_deleted_functions) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_explicit_conversions) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_generalized_initializers) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_implicit_moves) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_inheriting_constructors) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_extension (cxx_inline_namespaces)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_inline_namespaces) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_lambdas) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_local_type_template_args) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_noexcept) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_nonstatic_member_init) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_nullptr) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_override_control) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_reference_qualified_functions) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_range_for) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_raw_string_literals) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_rvalue_references) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_static_assert) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_thread_local) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_auto_type) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_strong_enums) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_trailing_return) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_unicode_literals) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_unrestricted_unions) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_user_literals) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_extension (cxx_variadic_templates)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_variadic_templates) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_extension (cxx_binary_literals)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_binary_literals) != CXX14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_decltype_auto) != CXX14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_aggregate_nsdmi) != CXX14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_extension (cxx_init_captures) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_init_captures) != CXX14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_generic_lambdas) != CXX14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_relaxed_constexpr) != CXX14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FEAT (cxx_return_type_deduction) != CXX14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_variable_templates) != CXX14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/ext/has-feature2.C gcc/testsuite/g++.dg/ext/has-feature2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..5f62916badf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/ext/has-feature2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-do compile }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-options "" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// PR c++/113658: we shouldn't declare support for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// cxx_constexpr_string_builtins as GCC is missing some of the builtins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// that clang implements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_constexpr_string_builtins)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_extension (cxx_constexpr_string_builtins)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/hwasan/hwasan.exp gcc/testsuite/g++.dg/hwasan/hwasan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 17fc9e93bc2..68db900b8b2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/hwasan/hwasan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/hwasan/hwasan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,7 +22,8 @@ load_lib hwasan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-hwasan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libhwasan uses libstdc++ but we assume that's added by the g++ impl.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++hwasan_init 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_hwaddress] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/pch/pch.exp gcc/testsuite/g++.dg/pch/pch.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 766969a471a..4a6bbaa7d76 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/pch/pch.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/pch/pch.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,7 +31,7 @@ set old_dg_do_what_default "${dg-do-what-default}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.C]] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # We don't try to use the loop-optimizing options, since they are highly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # unlikely to make any difference to PCH.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    dg-pch $subdir $test [list "-g" "-O2 -g" "-O2"] ".H"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dg-pch $subdir $test [list "-g -Winvalid-pch" "-O2 -g -Winvalid-pch" "-O2 -Winvalid-pch"] ".H"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dg-do-what-default "$old_dg_do_what_default"
</span> diff --git gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ee4b385..eabb3b5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee4b385b17f..eabb3b517a4 100644
</span> --- gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
 +++ gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
 @@ -26,5 +26,5 @@ void foo(void) {
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t4\n" { target { *-*-darwin* && {  lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t10\n" { target { *-*-darwin* && {  lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler {.(quad|xword)\t___CFConstantStringClassReference\n\t.(long|word)\t1992\n\t.space 4\n\t.(quad|xword)\t.*\n\t.(quad|xword)\t4\n} { target { *-*-darwin* && {  lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler {.(quad|xword)\t___CFConstantStringClassReference\n\t.(long|word)\t1992\n\t.space 4\n\t.(quad|xword)\t.*\n\t.(quad|xword)\t10\n} { target { *-*-darwin* && {  lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+4\n" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "\\.long\[ \\t\]+___CFConstantStringClassReference\n\[ \\t\]*\\.long\[ \\t\]+1992\n\[ \\t\]*\\.long\[ \\t\]+\[lL\]C.*\n\[ \\t\]*\\.long\[ \\t\]+10\n" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t4\n" { target { *-*-darwin* && {  lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t10\n" { target { *-*-darwin* && {  lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {.(quad|xword)\t___CFConstantStringClassReference\n\t.(long|word)\t1992\n\t.space 4\n\t.(quad|xword)\t.*\n\t.(quad|xword)\t4\n} { target { *-*-darwin* && {  lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {.(quad|xword)\t___CFConstantStringClassReference\n\t.(long|word)\t1992\n\t.space 4\n\t.(quad|xword)\t.*\n\t.(quad|xword)\t10\n} { target { *-*-darwin* && {  lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/ubsan/ubsan.exp gcc/testsuite/g++.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e9e2e03f402..27a5c828c8d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,7 +22,8 @@ load_lib ubsan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ubsan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libubsan uses libstdc++ but we assume that's added by the g++ impl.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ubsan_init 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_undefined] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c45be832d5b..0c40bf87809 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //#define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 61d12ec22eb..f4a373d1326 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 04b183af697..d68bef508ef 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //#define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cdb5b4df774..c55f1b2e292 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps -Wno-narrowing" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.target/aarch64/float128-darwin-1.C gcc/testsuite/g++.target/aarch64/float128-darwin-1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..0dbed063a71
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/float128-darwin-1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,41 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do run { target { aarch64*-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-std=c++11 -std=gnu++98" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <limits>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <string>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <typeinfo>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void foo ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  float x1 = 1.0q;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double x2 = 1.0q;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  long double x3 = 1.0q;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  _Float128 w1 = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __float128 w2 = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  float y1 = w1; // { dg-warning "with greater conversion rank" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double y2 = w1; // { dg-warning "with greater conversion rank" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  long double y3 = w1; // { dg-warning "with greater conversion rank" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  float z1 = w2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double z2 = w2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  long double z3 = w2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Check the correct mangling of floating-point types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (typeid(float).name() != std::string("f"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (typeid(double).name() != std::string("d"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (typeid(long double).name() != std::string("e"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (typeid(__float128).name() != std::string("g"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (typeid(_Float128).name() != std::string("DF128_"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (typeid(1.0q).name() != std::string("g"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span> diff --git gcc/testsuite/g++.target/aarch64/no_unique_address_1.C gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5fc68ea5d..5faf915 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5fc68ea5d6d..5faf915fa54 100644
</span> --- gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
 +++ gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
 @@ -1,5 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5172,7 +10707,7 @@ index 5fc68ea5d..5faf915 100644
</span>  struct X { };
  struct Y { int : 0; };
 diff --git gcc/testsuite/g++.target/aarch64/no_unique_address_2.C gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f071713..322ec12 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f0717133ccd..322ec127c79 100644
</span> --- gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
 +++ gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
 @@ -1,5 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5183,15 +10718,15 @@ index f071713..322ec12 100644
</span>  struct X { };
  struct Y { int : 0; };
 diff --git gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 03a6537..d4c2052 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 03a6537a53e..8f12cc63055 100644
</span> --- gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
 +++ gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
 @@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } then {
    return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5199,15 +10734,15 @@ index 03a6537..d4c2052 100644
</span>  load_lib g++-dg.exp
  
 diff --git gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3814041..559e1f3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 38140413a97..c5c1f05de99 100644
</span> --- gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
 +++ gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
 @@ -24,6 +24,11 @@ if { ![istarget aarch64*-*-*] } {
      return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5215,15 +10750,15 @@ index 3814041..559e1f3 100644
</span>  load_lib g++-dg.exp
  
 diff --git gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d1887eb..c9fee94 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d1887eb8087..f954172e40c 100644
</span> --- gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
 +++ gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
 @@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } {
      return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5231,23 +10766,63 @@ index d1887eb..c9fee94 100644
</span>  load_lib g++-dg.exp
  
 diff --git gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 78e8eca..e22ef5f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 78e8ecae729..4e09e7132c4 100644
</span> --- gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
 +++ gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
 @@ -24,6 +24,11 @@ if { ![istarget aarch64*-*-*] } {
      return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
  # Load support procs.
  load_lib g++-dg.exp
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/Wtrampolines.c gcc/testsuite/gcc.dg/Wtrampolines.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8ff09ebc9fe..fc7dfe10ed3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/Wtrampolines.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/Wtrampolines.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,6 +5,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target trampolines } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -Wtrampolines" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* macOS 11 and above use heap-based trampolines, which do not emit a warning.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "" { *-*-darwin2* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* This used to fail on various versions of Solaris 2 because the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    trampoline couldn't be made executable.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/asan/asan.exp gcc/testsuite/gcc.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 981bacdffb7..3e771fceeb4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,7 +24,8 @@ load_lib asan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-asan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libasan uses libstdc++ so make sure we provide paths for it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++asan_init 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_address] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/asan/has-feature-asan.c gcc/testsuite/gcc.dg/asan/has-feature-asan.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..810b69b8fc8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/asan/has-feature-asan.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-fsanitize=address" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FEAT(x) (__has_feature (x) && __has_extension (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (address_sanitizer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span> diff --git gcc/testsuite/gcc.dg/builtin-apply2.c gcc/testsuite/gcc.dg/builtin-apply2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0f350f4..d1e70b3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0f350f4ac16..d1e70b3a3e5 100644
</span> --- gcc/testsuite/gcc.dg/builtin-apply2.c
 +++ gcc/testsuite/gcc.dg/builtin-apply2.c
 @@ -1,7 +1,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5260,7 +10835,7 @@ index 0f350f4..d1e70b3 100644
</span>  
  /* PR target/12503 */
 diff --git gcc/testsuite/gcc.dg/cwsc1.c gcc/testsuite/gcc.dg/cwsc1.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e793e26..7d8b472 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e793e26116a..7d8b472bdf6 100644
</span> --- gcc/testsuite/gcc.dg/cwsc1.c
 +++ gcc/testsuite/gcc.dg/cwsc1.c
 @@ -6,7 +6,11 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5276,22 +10851,134 @@ index e793e26..7d8b472 100644
</span>  #elif defined(__alpha__)
  # define CHAIN  "$1"
  #elif defined(__arm__)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.dg/darwin-segaddr.c gcc/testsuite/gcc.dg/darwin-segaddr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 526db77..fcc324b 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.dg/darwin-segaddr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.dg/darwin-segaddr.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,7 +1,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Check that -segaddr gets through and works.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do run { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-options "-O0 -segaddr __TEST 0x200000 -fno-pie" { target { *-*-darwin* && { ! lp64 } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-options "-O0 -segaddr __TEST 0x110000000 -fno-pie" { target { *-*-darwin* && lp64 } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-options "-O0 -segaddr __TEST 0x110000000 -fno-pie" { target { *-*-darwin[1456789]* && lp64 } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-options "-O0 -segaddr __TEST 0x110000000 " { target { *-*-darwin2* && lp64 } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- extern void abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/has-feature.c gcc/testsuite/gcc.dg/has-feature.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..91df23c28fd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/has-feature.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Test __has_{feature,extension} for C language features.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_extension (c_alignas) || !__has_extension (c_alignof)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_extension (c_atomic) || !__has_extension (c_generic_selections)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_extension (c_static_assert) || !__has_extension (c_thread_local)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if  __STDC_VERSION__ >= 201112L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Have C11 features.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_feature (c_alignas) || !__has_feature (c_alignof)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_feature (c_atomic) || !__has_feature (c_generic_selections)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_feature (c_static_assert) || !__has_feature (c_thread_local)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Don't have C11 features.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (c_alignas) || __has_feature (c_alignof)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (c_atomic) || __has_feature (c_generic_selections)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (c_static_assert) || __has_feature (c_thread_local)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/heap-trampoline-1.c gcc/testsuite/gcc.dg/heap-trampoline-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..1aebe00d731
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/heap-trampoline-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do run { target heap_trampoline } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-ftrampoline-impl=heap" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((noipa)) int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bar (int (*fn) (int))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return fn (42) + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int a = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int foo (int x) { if (x != 42) __builtin_abort (); return ++a; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (bar (foo) != 2 || a != 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (bar (foo) != 3 || a != 2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  a = 42;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (bar (foo) != 44 || a != 43)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/hwasan/hwasan.exp gcc/testsuite/gcc.dg/hwasan/hwasan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7aae2fa0eb2..ec0dbfa20de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/hwasan/hwasan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/hwasan/hwasan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,7 +24,8 @@ load_lib hwasan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-hwasan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libhwasan uses libstdc++ so make sure we provide paths for it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++hwasan_init 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_hwaddress] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/lto/20091013-1_2.c gcc/testsuite/gcc.dg/lto/20091013-1_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1af49aa97b6..89caea868e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/lto/20091013-1_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/lto/20091013-1_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,3 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-Wno-stringop-overread" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct HDC__ { int unused; } *HDC;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct HFONT__ { int unused; } *HFONT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/pch/pch.exp gcc/testsuite/gcc.dg/pch/pch.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 78cc422d76f..7df75a1aa3d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/pch/pch.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/pch/pch.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,7 +38,7 @@ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # unlikely to make any difference to PCH.  However, we do want to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # add -O0 -g, since users who want PCH usually want debugging and quick
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # compiles.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    dg-pch $subdir $test [concat [list {-O0 -g}] $torture_without_loops] ".h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dg-pch $subdir $test [concat [list {-O0 -g  -Winvalid-pch}] $torture_without_loops] ".h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set test "largefile.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,7 +53,7 @@ puts $f "#include \"largefile.h\""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close $f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set f [open $testh w]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close $f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dg-pch $subdir $test [concat [list {-O0 -g}] $torture_without_loops] ".h"    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dg-pch $subdir $test [concat [list {-O0 -g  -Winvalid-pch}] $torture_without_loops] ".h"    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete $test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete $testh
</span>  
 diff --git gcc/testsuite/gcc.dg/pr26427.c gcc/testsuite/gcc.dg/pr26427.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index add13ca..2c09f28 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index add13ca209e..2c09f28195d 100644
</span> --- gcc/testsuite/gcc.dg/pr26427.c
 +++ gcc/testsuite/gcc.dg/pr26427.c
 @@ -1,4 +1,4 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5301,7 +10988,7 @@ index add13ca..2c09f28 100644
</span>  /* { dg-options { -fsection-anchors -O } } */
  /* PR target/26427 */
 diff --git gcc/testsuite/gcc.dg/pubtypes-2.c gcc/testsuite/gcc.dg/pubtypes-2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 116e348..b3d1231 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 116e3489bc0..b3d1231ad44 100644
</span> --- gcc/testsuite/gcc.dg/pubtypes-2.c
 +++ gcc/testsuite/gcc.dg/pubtypes-2.c
 @@ -2,7 +2,8 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5315,7 +11002,7 @@ index 116e348..b3d1231 100644
</span>  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  
 diff --git gcc/testsuite/gcc.dg/pubtypes-3.c gcc/testsuite/gcc.dg/pubtypes-3.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3fb3468..950a9ba 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3fb3468fb00..950a9ba72fc 100644
</span> --- gcc/testsuite/gcc.dg/pubtypes-3.c
 +++ gcc/testsuite/gcc.dg/pubtypes-3.c
 @@ -2,7 +2,8 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5329,7 +11016,7 @@ index 3fb3468..950a9ba 100644
</span>  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler-not "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
 diff --git gcc/testsuite/gcc.dg/pubtypes-4.c gcc/testsuite/gcc.dg/pubtypes-4.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 83fba8d..7250771 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 83fba8dfabc..7250771587b 100644
</span> --- gcc/testsuite/gcc.dg/pubtypes-4.c
 +++ gcc/testsuite/gcc.dg/pubtypes-4.c
 @@ -2,7 +2,8 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5343,7 +11030,7 @@ index 83fba8d..7250771 100644
</span>  /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
  /* { dg-final { scan-assembler "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
 diff --git gcc/testsuite/gcc.dg/rtl/aarch64/big-endian-cse-1.c gcc/testsuite/gcc.dg/rtl/aarch64/big-endian-cse-1.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1559a48..aa2da0c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1559a489f25..aa2da0cbca5 100644
</span> --- gcc/testsuite/gcc.dg/rtl/aarch64/big-endian-cse-1.c
 +++ gcc/testsuite/gcc.dg/rtl/aarch64/big-endian-cse-1.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5352,21 +11039,65 @@ index 1559a48..aa2da0c 100644
</span>  /* { dg-require-effective-target lp64 } */
  /* { dg-options "-O3 -mbig-endian" } */
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/stack-check-10.c gcc/testsuite/gcc.dg/stack-check-10.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2f5a090cb7a..2be2a8a2b6a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/stack-check-10.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/stack-check-10.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection -fdump-rtl-pro_and_epilogue -fno-optimize-sibling-calls --param stack-clash-protection-probe-interval=12 --param stack-clash-protection-guard-size=12" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-fomit-frame-pointer" { target aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target supports_stack_clash_protection } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int f (int *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/stack-check-5.c gcc/testsuite/gcc.dg/stack-check-5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0243147939c..a86455528ea 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/stack-check-5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/stack-check-5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection -fdump-rtl-pro_and_epilogue -fno-optimize-sibling-calls --param stack-clash-protection-probe-interval=12 --param stack-clash-protection-guard-size=12" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-fomit-frame-pointer" { target aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target supports_stack_clash_protection } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "" { *-*-* } { "-fstack-protector*" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/stack-check-6.c gcc/testsuite/gcc.dg/stack-check-6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fe75612b737..0b276470ad9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/stack-check-6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/stack-check-6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection -fdump-rtl-pro_and_epilogue -fno-optimize-sibling-calls --param stack-clash-protection-probe-interval=12 --param stack-clash-protection-guard-size=12" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-fomit-frame-pointer" { target aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target supports_stack_clash_protection } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "" { *-*-* } { "-fstack-protector*" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/stack-check-9.c gcc/testsuite/gcc.dg/stack-check-9.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b84075b9b43..96e6ee7c0bc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/stack-check-9.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/stack-check-9.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection -fdump-rtl-pro_and_epilogue -fno-optimize-sibling-calls --param stack-clash-protection-probe-interval=12 --param stack-clash-protection-guard-size=12" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-fomit-frame-pointer" { target aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target supports_stack_clash_protection } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ double f1 (void);
</span> diff --git gcc/testsuite/gcc.dg/tls/pr78796.c gcc/testsuite/gcc.dg/tls/pr78796.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 038e536..31e03dd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 96f87d47ba4..3868697cb41 100644
</span> --- gcc/testsuite/gcc.dg/tls/pr78796.c
 +++ gcc/testsuite/gcc.dg/tls/pr78796.c
 @@ -1,7 +1,7 @@
  /* PR target/78796 */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
<span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-additional-options "-mcmodel=large" { target aarch64-*-* } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-additional-options "-mcmodel=large" { target { { aarch64-*-* } && { ! aarch64-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-additional-options "-mcmodel=large -fno-pie -no-pie" { target aarch64-*-* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mcmodel=large -fno-pie -no-pie" { target { { aarch64-*-* } && { ! aarch64-*-darwin* } } } } */
</span>  /* { dg-require-effective-target tls_runtime } */
  /* { dg-add-options tls } */
  
 diff --git gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ee4b385..eabb3b5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee4b385b17f..eabb3b517a4 100644
</span> --- gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
 +++ gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
 @@ -26,5 +26,5 @@ void foo(void) {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5378,7 +11109,7 @@ index ee4b385..eabb3b5 100644
</span> +/* { dg-final { scan-assembler {.(quad|xword)\t___CFConstantStringClassReference\n\t.(long|word)\t1992\n\t.space 4\n\t.(quad|xword)\t.*\n\t.(quad|xword)\t4\n} { target { *-*-darwin* && {  lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t___CFConstantStringClassReference\n\t.(long|word)\t1992\n\t.space 4\n\t.(quad|xword)\t.*\n\t.(quad|xword)\t10\n} { target { *-*-darwin* && {  lp64 } } } } } */
 diff --git gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 552ca14..16643ce 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 552ca1433f4..16643ceb198 100644
</span> --- gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c
 +++ gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c
 @@ -9,7 +9,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5391,7 +11122,7 @@ index 552ca14..16643ce 100644
</span>  /* { dg-require-effective-target untyped_assembly } */
     
 diff --git gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0224997..3684cff 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0224997f18a..3684cffdc64 100644
</span> --- gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
 +++ gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
 @@ -25,9 +25,9 @@ f1 (int i, ...)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5578,7 +11309,7 @@ index 0224997..3684cff 100644
</span> +/* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
  /* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
 diff --git gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1a637d6..77cdf38 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1a637d6efe4..77cdf384df4 100644
</span> --- gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c
 +++ gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c
 @@ -27,9 +27,9 @@ f1 (int i, ...)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5628,7 +11359,7 @@ index 1a637d6..77cdf38 100644
</span> +/* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
  /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
 diff --git gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c8ad4fe..b0484f2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c8ad4fe320d..b0484f2f053 100644
</span> --- gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c
 +++ gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c
 @@ -25,7 +25,8 @@ f1 (int i, ...)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5698,8 +11429,34 @@ index c8ad4fe..b0484f2 100644
</span> -/* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 0 GPR units and 64 FPR units" "stdarg" { target aarch64*-*-* } } } */
 +/* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 0 GPR units and 64 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
 +/* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 32 GPR units" "stdarg" { target aarch64-apple-darwin* } } } */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/ubsan/has-feature-ubsan.c gcc/testsuite/gcc.dg/ubsan/has-feature-ubsan.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..e5da1cc5628
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/ubsan/has-feature-ubsan.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-fsanitize=undefined" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FEAT(x) (__has_feature (x) && __has_extension (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !FEAT (undefined_behavior_sanitizer)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/ubsan/ubsan.exp gcc/testsuite/gcc.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 27c6f243538..6ddbe9c65fb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,7 +24,8 @@ load_lib ubsan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ubsan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libubsan uses libstdc++ so make sure we provide paths for it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ubsan_init 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_undefined] {
</span> diff --git gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3e652c4..3490792 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eb7c531615c..f99d270dbfc 100644
</span> --- gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
 +++ gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
 @@ -25,6 +25,11 @@ if { ![istarget aarch64*-*-*] } then {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5713,163 +11470,39 @@ index 3e652c4..3490792 100644
</span> +
  torture-init
  set-torture-options $C_TORTURE_OPTIONS
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set additional_flags "-W -Wall -Wno-abi"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index c42c7ac..76917a6 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set additional_flags "-W -Wall -Wno-abi -fno-pie -no-pie"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/aarch64.exp gcc/testsuite/gcc.target/aarch64/aarch64.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0a2732a3075..fcae9e23c66 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/aarch64.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/aarch64.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,9 +37,10 @@ if ![info exists DEFAULT_CFLAGS] then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  "" $DEFAULT_CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64-with-arch-dg-options "" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      "" $DEFAULT_CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # All done.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-finish
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/ands_3.c gcc/testsuite/gcc.target/aarch64/ands_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 42cb7f0f0bc..31ba769392e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/ands_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/ands_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span>  /* { dg-options "-O2" } */
<span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2193753..d29b222 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index f5adf40..4e3a3d9 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 47af7c4..a2f415f 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index a914680..c6b2ef3 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2,7 +2,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps -march=armv8.2-a+bf16+nosimd" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4b730e3..fd2abad 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-1.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-1.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ad51507..e57053d 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-1.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-1.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ae0a953..9f5669a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-mbig-endian --save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmlalbt-compile.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmlalbt-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9810e4b..315cabd 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmlalbt-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmlalbt-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0aaa69f..ddc391b 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index ac4f821..978eac2 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-require-effective-target arm_v8_2a_i8mm_neon_hw } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_i8mm_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_i8mm }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 61c7c51..f84ed68 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-require-effective-target arm_v8_2a_i8mm_ok } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-add-options arm_v8_2a_i8mm }  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-additional-options "-mbig-endian -save-temps" } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "darwinpcs extends in the caller" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ f9 (unsigned char x, int y)
</span> diff --git gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ffa4d22..38b9ef0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ffa4d229922..38b9ef01eb7 100644
</span> --- gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c
 +++ gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c
 @@ -19,5 +19,7 @@ dummy ()
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5883,7 +11516,7 @@ index ffa4d22..38b9ef0 100644
</span> +/* { dg-final { scan-assembler-times ".zerofill __DATA,__bss,_y,4,28" 1 { target { *-*-darwin* } } } } */
 +/* { dg-final { scan-assembler-times ".zerofill __DATA,__bss,_x,4,28" 1 { target { *-*-darwin* } } } } */
 diff --git gcc/testsuite/gcc.target/aarch64/auto-init-2.c gcc/testsuite/gcc.target/aarch64/auto-init-2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 375befd..3a0387a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 375befd325b..3a0387a5952 100644
</span> --- gcc/testsuite/gcc.target/aarch64/auto-init-2.c
 +++ gcc/testsuite/gcc.target/aarch64/auto-init-2.c
 @@ -12,11 +12,11 @@ enum E {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5901,7 +11534,7 @@ index 375befd..3a0387a 100644
</span>    int temp3;
    enum E temp4;
 diff --git gcc/testsuite/gcc.target/aarch64/auto-init-3.c gcc/testsuite/gcc.target/aarch64/auto-init-3.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7008f76..85a4e4d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7008f76b294..85a4e4daeb6 100644
</span> --- gcc/testsuite/gcc.target/aarch64/auto-init-3.c
 +++ gcc/testsuite/gcc.target/aarch64/auto-init-3.c
 @@ -2,13 +2,19 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5928,7 +11561,7 @@ index 7008f76..85a4e4d 100644
</span>    result = temp1 + temp2 + temp3;
    return result;
 diff --git gcc/testsuite/gcc.target/aarch64/auto-init-4.c gcc/testsuite/gcc.target/aarch64/auto-init-4.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1019704..0c6840b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 10197045b4c..0c6840ba224 100644
</span> --- gcc/testsuite/gcc.target/aarch64/auto-init-4.c
 +++ gcc/testsuite/gcc.target/aarch64/auto-init-4.c
 @@ -2,13 +2,19 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5955,7 +11588,7 @@ index 1019704..0c6840b 100644
</span>    result = temp1 + temp2 + temp3;
    return result;
 diff --git gcc/testsuite/gcc.target/aarch64/auto-init-5.c gcc/testsuite/gcc.target/aarch64/auto-init-5.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ac69ac3..0dda3c2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ac69ac3df82..0dda3c201d3 100644
</span> --- gcc/testsuite/gcc.target/aarch64/auto-init-5.c
 +++ gcc/testsuite/gcc.target/aarch64/auto-init-5.c
 @@ -2,14 +2,19 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5982,7 +11615,7 @@ index ac69ac3..0dda3c2 100644
</span>    result = temp1 + temp2 + temp3;
    return result;
 diff --git gcc/testsuite/gcc.target/aarch64/auto-init-6.c gcc/testsuite/gcc.target/aarch64/auto-init-6.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0456c66..2332311 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0456c66f496..23323115a11 100644
</span> --- gcc/testsuite/gcc.target/aarch64/auto-init-6.c
 +++ gcc/testsuite/gcc.target/aarch64/auto-init-6.c
 @@ -2,14 +2,19 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6008,8 +11641,77 @@ index 0456c66..2332311 100644
</span>  
    result = temp1 + temp2 + temp3;
    return result;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3e38cac149d..38da3c2878f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //#define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 39c5f9228ee..3e7e149f10e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 70671ceda09..201b972eb50 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //#define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 757a2f1543c..72e631ad1f7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cb2a945a819..43b378d2467 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Darwin ABI is different, test separately" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ALIGN 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define EXTRA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/bti-4.c gcc/testsuite/gcc.target/aarch64/bti-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 28495a5c199..109ab60fcb7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/bti-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/bti-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,5 +56,7 @@ retbr_trampolines2 (void *a, int b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Trampoline should have BTI C. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "\.LTRAMP0:\n\thint\t34" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Trampoline should have BTI C.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   but Darwin trampolines are constructed on demand by a builtin and do not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   appear in the generated code for this TU.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "\.LTRAMP0:\n\thint\t34" { target { ! *-*-darwin* } } } } */
</span> diff --git gcc/testsuite/gcc.target/aarch64/c-output-template-2.c gcc/testsuite/gcc.target/aarch64/c-output-template-2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ced96d0..86e4f5f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ced96d04542..86e4f5fa82c 100644
</span> --- gcc/testsuite/gcc.target/aarch64/c-output-template-2.c
 +++ gcc/testsuite/gcc.target/aarch64/c-output-template-2.c
 @@ -6,4 +6,4 @@ test (void)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6019,7 +11721,7 @@ index ced96d0..86e4f5f 100644
</span> -/* { dg-final { scan-assembler "@ test" } } */
 +/* { dg-final { scan-assembler "@ _?test" } } */
 diff --git gcc/testsuite/gcc.target/aarch64/c-output-template-3.c gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8bde4cb..4531a38 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8bde4cbeb0c..4531a381518 100644
</span> --- gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
 +++ gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
 @@ -7,4 +7,4 @@ test (void)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6029,7 +11731,7 @@ index 8bde4cb..4531a38 100644
</span> -/* { dg-final { scan-assembler "@ test\\+4" } } */
 +/* { dg-final { scan-assembler "@ _?test\\+4" } } */
 diff --git gcc/testsuite/gcc.target/aarch64/c-output-template-4.c gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c5a9391..800d52b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c5a93915af1..800d52bfab8 100644
</span> --- gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
 +++ gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
 @@ -7,4 +7,4 @@ test (void)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6039,7 +11741,7 @@ index c5a9391..800d52b 100644
</span> -/* { dg-final { scan-assembler "@ test\\+4" } } */
 +/* { dg-final { scan-assembler "@ _?test\\+4" } } */
 diff --git gcc/testsuite/gcc.target/aarch64/cpymem-size.c gcc/testsuite/gcc.target/aarch64/cpymem-size.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4a6f249..b8ef474 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4a6f2495d22..b8ef4745c6d 100644
</span> --- gcc/testsuite/gcc.target/aarch64/cpymem-size.c
 +++ gcc/testsuite/gcc.target/aarch64/cpymem-size.c
 @@ -6,7 +6,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6062,7 +11764,7 @@ index 4a6f249..b8ef474 100644
</span>  cpy_128 (char *out, char *in)
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/aarch64-darwin.exp gcc/testsuite/gcc.target/aarch64/darwin/aarch64-darwin.exp
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..b0b7f49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..b0b7f49aede
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/aarch64-darwin.exp
 @@ -0,0 +1,46 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6114,7 +11816,7 @@ index 0000000..b0b7f49
</span> +dg-finish
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/complex-in-regs.c gcc/testsuite/gcc.target/aarch64/darwin/complex-in-regs.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..974f02c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..974f02ca2ec
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/complex-in-regs.c
 @@ -0,0 +1,103 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6223,7 +11925,7 @@ index 0000000..974f02c
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d1.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d1.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..e2dd574
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..e2dd574fac7
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d1.c
 @@ -0,0 +1,54 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6283,7 +11985,7 @@ index 0000000..e2dd574
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-00.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-00.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..bd76856
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..bd76856308b
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-00.c
 @@ -0,0 +1,126 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6415,7 +12117,7 @@ index 0000000..bd76856
</span> +
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-01.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-01.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..d21fd55
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..d21fd551b4a
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-01.c
 @@ -0,0 +1,115 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6536,7 +12238,7 @@ index 0000000..d21fd55
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-02.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-02.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..55e5acd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..55e5acdaf41
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-02.c
 @@ -0,0 +1,75 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6617,10 +12319,10 @@ index 0000000..55e5acd
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-03.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-03.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..b0d2593d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..fe36cbdcad8
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-03.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,67 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,69 @@
</span> +/* { dg-do compile } */
 +
 +/* { dg-additional-options "-O -fno-schedule-insns -fno-schedule-insns2 " } */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6661,12 +12363,14 @@ index 0000000..b0d2593d
</span> +/* So the stores to sp+12 and 20 pack the floats onto the stack.
 +**call_sf_packing:
 +**    ...
<span style='display:block; white-space:pre;background:#e0ffe0;'>++**     add     x29, sp, 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ...
</span> +**       fmov    s1, 1.0e\+0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     str     s1, \[sp, 48\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        str     s1, \[x29, 16\]
</span> +**       fmov    s2, 2.0e\+0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     str     s2, \[sp, 52\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        str     s2, \[x29, 20\]
</span> +**       mov     w[0-9]+, 1077936128
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     ldr     x[0-9]+, \[sp, 48\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ldr     x[0-9]+, \[x29, 16\]
</span> +**       str     x[0-9]+, \[sp, 12\]
 +**    str     w[0-9]+, \[sp, 20\]
 +**    str     x[0-9]+, \[sp\]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6690,7 +12394,7 @@ index 0000000..b0d2593d
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-04.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-04.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..33c60c6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..33c60c69b78
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-04.c
 @@ -0,0 +1,66 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6762,7 +12466,7 @@ index 0000000..33c60c6
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d3.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d3.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..21c6b69
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..87fe063aa5b
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d3.c
 @@ -0,0 +1,40 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6770,7 +12474,7 @@ index 0000000..21c6b69
</span> +/* { dg-additional-options "-O " } */
 +/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* This will fail, because of issue #74
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* This used to fail, because of issue #74
</span> +**foo: 
 +**    cmp     w0, w1
 +**    cset    w0, eq
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6808,7 +12512,7 @@ index 0000000..21c6b69
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d4.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d4.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..2aab482
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..2aab48260f4
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d4.c
 @@ -0,0 +1,62 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6876,7 +12580,7 @@ index 0000000..2aab482
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/float128-00.c gcc/testsuite/gcc.target/aarch64/darwin/float128-00.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..29aec80
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..29aec80fbaa
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/float128-00.c
 @@ -0,0 +1,38 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6918,9 +12622,170 @@ index 0000000..29aec80
</span> +{
 +  return foo (1.0, 2.0);
 +}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/darwin/float128-01.c gcc/testsuite/gcc.target/aarch64/darwin/float128-01.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..93f6d24cebc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/darwin/float128-01.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,48 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do run } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we need this for _Float128.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-std=gnu99 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-Wfloat-conversion" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++float f1 (__float128 z1, _Float128 z2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  float x, y;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  x = z1; /* { dg-warning "conversion from '_Float128' to 'float'" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  y = z2; /* { dg-warning "conversion from '_Float128' to 'float'" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return x + y;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__float128 f2 () {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  float f = 0.q;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Float128 f3 () {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  float f = 0.q;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return f;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __float128 x1 = __builtin_huge_valq ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __float128 x2 = __builtin_infq ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  _Float128 y1 = __builtin_huge_valq ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  _Float128 y2 = __builtin_infq ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isinf (x1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isinf (x2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isinf (y1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isinf (y2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (x1 != x2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (y1 != y2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/darwin/float128-02.c gcc/testsuite/gcc.target/aarch64/darwin/float128-02.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..5a8522f9622
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/darwin/float128-02.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,101 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do run } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we need this for _Float128.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-std=gnu99 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void test (__float128 z1, __float128 z2, __float128 z3, __float128 z4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __float128 w;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isinf (z1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isnan (z1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isfinite (z1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isnormal (z1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_signbit (z1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isinf (z2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isnan (z2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isfinite (z2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isnormal (z2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_signbit (z2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isinf (z3))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isnan (z3))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isfinite (z3))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isnormal (z3))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_signbit (z3))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isinf (z4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_isnan (z4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isfinite (z4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_isnormal (z4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_signbit (z4))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_copysignq (z1, -z4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_signbit (w))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_copysignq (z2, -z4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_signbit (w))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_copysignq (z3, -z4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_signbit (w))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_copysignq (z4, -z4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!__builtin_signbit (w))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_copysignq (z1, -z4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_fabsq (w);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_signbit (w))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_copysignq (z2, -z4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_fabsq (w);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_signbit (w))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_copysignq (z3, -z4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_fabsq (w);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_signbit (w))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_copysignq (z4, -z4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w = __builtin_fabsq (w);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (__builtin_signbit (w))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    __builtin_abort();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __float128 x1 = __builtin_infq ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __float128 x2 = __builtin_nanq ("");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __float128 x3 = __builtin_nansq ("");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __float128 x4 = 41.1094721q;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  test (x1, x2, x3, x4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span> diff --git gcc/testsuite/gcc.target/aarch64/darwin/homogeneous-aggr.c gcc/testsuite/gcc.target/aarch64/darwin/homogeneous-aggr.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..bee9755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..bee97557a4d
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/homogeneous-aggr.c
 @@ -0,0 +1,25 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6951,7 +12816,7 @@ index 0000000..bee9755
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/k+r-00.c gcc/testsuite/gcc.target/aarch64/darwin/k+r-00.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..443fb96
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..443fb968811
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/k+r-00.c
 @@ -0,0 +1,28 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6985,7 +12850,7 @@ index 0000000..443fb96
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/tu-accesses-0.c gcc/testsuite/gcc.target/aarch64/darwin/tu-accesses-0.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..ba5cc49
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..ba5cc493bc9
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/tu-accesses-0.c
 @@ -0,0 +1,82 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7073,7 +12938,7 @@ index 0000000..ba5cc49
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/variadic-00.c gcc/testsuite/gcc.target/aarch64/darwin/variadic-00.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..6420fca
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..6420fca11d5
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/variadic-00.c
 @@ -0,0 +1,91 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7170,10 +13035,10 @@ index 0000000..6420fca
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/variadic-01.c gcc/testsuite/gcc.target/aarch64/darwin/variadic-01.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..c055aea
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..e57cf20d7dc
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/variadic-01.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,102 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,107 @@
</span> +/* { dg-do compile } */
 +
 +/* we need this for _Float128.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7188,8 +13053,11 @@ index 0000000..c055aea
</span> +   sp+16.
 +**foo:
 +**    ...
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     ldr     q1, \[sp, 32\]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+**        ldr     q0, \[sp, 48\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        mov     x29, sp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ldr     q1, \[x29, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ldr     q0, \[x29, 48\]
</span> +**       ...
 +**    bl      ___addtf3
 +**    ...
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7212,9 +13080,8 @@ index 0000000..c055aea
</span> +/*
 +**call_foo:
 +**    ...
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     str     q[0-9]+, \[sp, 16\]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+**        ...
</span> +**       mov     w0, 2
<span style='display:block; white-space:pre;background:#e0ffe0;'>++**     str     q[0-9]+, \[sp, 16\]
</span> +**       str     q[0-9]+, \[sp\]
 +**    bl      _foo
 +**    ...
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7231,10 +13098,12 @@ index 0000000..c055aea
</span> +   sp+32 (with the int at sp+16).
 +**bar:
 +**    ...
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     ldr     w[0-9]+, \[x[0-9]+, 16\]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+**        ldr     q0, \[x[0-9]+\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        add     (x[0-9]+), x29, 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ldr     w[0-9]+, \[\1, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ldr     q0, \[\1\]
</span> +**       ...
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     ldr     q1, \[x[0-9]+, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        ldr     q1, \[\1, 32\]
</span> +**       bl      ___addtf3
 +**    ...
 +*/
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7259,11 +13128,12 @@ index 0000000..c055aea
</span> +/*
 +**call_bar:
 +**    ...
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     str     q[0-9]+, \[sp, 32\]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+**        ...
</span> +**       mov     w[0-9]+, 42
<span style='display:block; white-space:pre;background:#e0ffe0;'>++**     ...
</span> +**       str     w[0-9]+, \[sp, 16\]
<span style='display:block; white-space:pre;background:#e0ffe0;'>++**     ...
</span> +**       mov     w0, 2
<span style='display:block; white-space:pre;background:#e0ffe0;'>++**     str     q[0-9]+, \[sp, 32\]
</span> +**       str     q[0-9]+, \[sp\]
 +**    bl      _bar
 +**    ...
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7278,7 +13148,7 @@ index 0000000..c055aea
</span> +}
 diff --git gcc/testsuite/gcc.target/aarch64/darwin/variadic-02.c gcc/testsuite/gcc.target/aarch64/darwin/variadic-02.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..9d796bfc0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..67d15448082
</span> --- /dev/null
 +++ gcc/testsuite/gcc.target/aarch64/darwin/variadic-02.c
 @@ -0,0 +1,104 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7321,8 +13191,8 @@ index 0000000..9d796bfc0
</span> +/*
 +**call_foo:
 +**    ...
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+**     stp     x[0-9]+, x[0-9]+, \[sp\]
</span> +**       mov     w0, 2
<span style='display:block; white-space:pre;background:#e0ffe0;'>++**     stp     x[0-9]+, x[0-9]+, \[sp\]
</span> +**       stp     x[0-9]+, x[0-9]+, \[sp, 16\]
 +**    bl      _foo
 +**    ...
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7387,7 +13257,7 @@ index 0000000..9d796bfc0
</span> +  return baro (2, (__int128)1, 42, (__int128)2);
 +}
 diff --git gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ba6a230..cc30dd5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ba6a230457b..cc30dd546f4 100644
</span> --- gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
 +++ gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
 @@ -41,8 +41,10 @@ double d4(void)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7404,7 +13274,7 @@ index ba6a230..cc30dd5 100644
</span>  /* { dg-final { scan-assembler-times "fmov\td\[0-9\]+, 1\\\.5e\\\+0"        1 } } */
  
 diff --git gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ae5b379..8a691ad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae5b3797021..8a691add222 100644
</span> --- gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
 +++ gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
 @@ -1,5 +1,6 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7414,8 +13284,142 @@ index ae5b379..8a691ad 100644
</span>  /* { dg-options "-O0 -gdwarf-2" } */
  /* { dg-final { scan-assembler ".cfi_restore 30" } } */
  /* { dg-final { scan-assembler ".cfi_restore 29" } } */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/extend.c gcc/testsuite/gcc.target/aarch64/extend.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f399e55ce8b..9556d4c2f18 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/extend.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/extend.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -95,14 +95,16 @@ subdi_uxth (unsigned long long a, unsigned short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned long long
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subdi_uxth0 (unsigned long long a, unsigned short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "sub\tx\[0-9\]+,.*uxth\n" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tx\[0-9\]+,.*uxth\n" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tx\[0-9\]+,.*uxtw" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a - i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long long
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subdi_sxth (long long a, short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "sub\tx\[0-9\]+,.*sxth #?1" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tx\[0-9\]+,.*sxth #?1" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tx\[0-9\]+,.*sxtw #?1" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a - ((long long)i << 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -116,55 +118,63 @@ subdi_sxth0 (long long a, short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subsi_uxth (unsigned int a, unsigned short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*uxth #?1" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*uxth #?1" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*lsl #?1" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a - ((unsigned int)i << 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subsi_uxth0 (unsigned int a, unsigned short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*uxth\n" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*uxth\n" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a - i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subsi_sxth (int a, short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*sxth #?1" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*sxth #?1" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*lsl #?1" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a - ((int)i << 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subsi_sxth0 (int a, short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*sxth\n" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tw\[0-9\]+,.*sxth\n" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "sub\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a - (int)i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ addsi_uxth (unsigned int a, unsigned short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*uxth #?1" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*uxth #?1" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*lsl #?1" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a + ((unsigned int)i << 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ addsi_uxth0 (unsigned int a, unsigned short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*uxth\n" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*uxth\n" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "add\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a + i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ addsi_sxth (int a, short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*sxth #?1" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*sxth #?1" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*lsl #?1" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a + ((int)i << 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ addsi_sxth0 (int a, short i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*sxth\n" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "add\tw\[0-9\]+,.*sxth\n" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* { dg-final { scan-assembler "add\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a + (int)i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/fmovld-zero-mem.c gcc/testsuite/gcc.target/aarch64/fmovld-zero-mem.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e649404ae07..d17a889b389 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/fmovld-zero-mem.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/fmovld-zero-mem.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define F128TYPE __float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define F128TYPE long double
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-foo (long double *output)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++foo (F128TYPE *output)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *output = 0.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/fmovld-zero-reg.c gcc/testsuite/gcc.target/aarch64/fmovld-zero-reg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ca602cb381f..f9aa405a608 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/fmovld-zero-reg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/fmovld-zero-reg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void bar (long double);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define F128TYPE __float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define F128TYPE long double
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void bar (F128TYPE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foo (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span> diff --git gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 478875f..9a2b2e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 478875ff874..9a2b2e44893 100644
</span> --- gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
 +++ gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
 @@ -15,4 +15,4 @@ TEST (fllf, float , long long, l)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7425,7 +13429,7 @@ index 478875f..9a2b2e4 100644
</span> -/* { dg-final { scan-assembler-not "bl"    } } */
 +/* { dg-final { scan-assembler-not "bl\t" } } */
 diff --git gcc/testsuite/gcc.target/aarch64/ldp_stp_13.c gcc/testsuite/gcc.target/aarch64/ldp_stp_13.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9cc3942..52c90a9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9cc3942f153..52c90a92114 100644
</span> --- gcc/testsuite/gcc.target/aarch64/ldp_stp_13.c
 +++ gcc/testsuite/gcc.target/aarch64/ldp_stp_13.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7434,8 +13438,48 @@ index 9cc3942..52c90a9 100644
</span>  /* { dg-options "-O2 -mabi=ilp32" } */
  
  long long
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/ldp_stp_14.c gcc/testsuite/gcc.target/aarch64/ldp_stp_14.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c7b5f7d6b39..3cee5ba21cc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/ldp_stp_14.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/ldp_stp_14.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fno-tree-loop-distribute-patterns" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mtune=generic -fomit-frame-pointer" { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ldp_stp_14.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 131cd0a63c8..f265b7a5170 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/ldp_stp_15.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fno-tree-loop-distribute-patterns" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mtune=generic -fomit-frame-pointer" { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ldp_stp_14.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8ab117c4dcd..54ae2f1b410 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/ldp_stp_16.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fno-tree-loop-distribute-patterns" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mtune=generic -fomit-frame-pointer" { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ldp_stp_14.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eaa855c3859..8b602033691 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fno-tree-loop-distribute-patterns" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mtune=generic -fomit-frame-pointer" { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" "" { target lp64 } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ldp_stp_14.h"
</span> diff --git gcc/testsuite/gcc.target/aarch64/memset-corner-cases-2.c gcc/testsuite/gcc.target/aarch64/memset-corner-cases-2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9ee96f3..dec73f9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9ee96f33255..dec73f98506 100644
</span> --- gcc/testsuite/gcc.target/aarch64/memset-corner-cases-2.c
 +++ gcc/testsuite/gcc.target/aarch64/memset-corner-cases-2.c
 @@ -7,7 +7,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7457,7 +13501,7 @@ index 9ee96f3..dec73f9 100644
</span>  void __attribute__((__noinline__))
  set128byte (int64_t *src, int c)
 diff --git gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c43f019..733a11e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c43f0199adc..733a11e585a 100644
</span> --- gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c
 +++ gcc/testsuite/gcc.target/aarch64/memset-corner-cases.c
 @@ -77,7 +77,7 @@ set256byte (int64_t *src, char c)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7469,21 +13513,372 @@ index c43f019..733a11e 100644
</span>  */
  void __attribute__((__noinline__))
  set257byte (int64_t *src)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/mops_4.c gcc/testsuite/gcc.target/aarch64/mops_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dd796115cb4..49b5c39667c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/mops_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/mops_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -124,9 +124,9 @@ set1 (char *x, char y, long z, char **res)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set2 (char *x, char *yptr, long z, char *res)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set2 (unsigned char *x, unsigned char *yptr, long z, unsigned char *res)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  char y = *yptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned char y = *yptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   __builtin_memset (x, y, z);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *res = y;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> diff --git gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d5e9200..7f504ad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d5e9200562c..7f504ad687f 100644
</span> --- gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
 +++ gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
 @@ -14,6 +14,6 @@ TEST (dlld, double, long long, l)
  TEST (fllf, float , long long, l)
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-final { scan-assembler-times "frintx\t\[d,s\]\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler-times "bl\tlrint"  4 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler-times "bl\tllrint" 2 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler-times "bl\t_*lrint"  4 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler-times "bl\t_*llrint" 2 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-final { scan-assembler-not "fcvtzs" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-times "frintx\t\[d,s\]\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times "bl\tlrint"  4 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times "bl\tllrint" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "bl\t_*lrint"  4 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "bl\t_*llrint" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "fcvtzs" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_1.c gcc/testsuite/gcc.target/aarch64/options_set_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 40d9a05c905..ed2aa86e469 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crc} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Darwin's assembler does not need this fix, and we need to omit it.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crc} 1 { xfail *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check to see if crc is output by default.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_11.c gcc/testsuite/gcc.target/aarch64/options_set_11.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d083bfdbd5c..2c7473a25f7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_11.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_11.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* FP is default on, no need to pass on to assembler.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_12.c gcc/testsuite/gcc.target/aarch64/options_set_12.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 58a09fda2c1..e18053589fb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_12.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_12.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16 not default, should be emitted.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_13.c gcc/testsuite/gcc.target/aarch64/options_set_13.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2a517ecb58f..23b32428ba9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_13.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_13.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* FP is part of FP16, don't emit it.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_14.c gcc/testsuite/gcc.target/aarch64/options_set_14.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c192bf6cb63..530d05b0b27 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_14.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_14.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16fml} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16fml\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+fp16fml} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fmp16fml is smallest option to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_15.c gcc/testsuite/gcc.target/aarch64/options_set_15.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 32ec3ea4643..94e076200ca 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_15.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_15.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16fml*} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16fml*\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+fp16fml*} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp included in fp16fml, only emit latter.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_16.c gcc/testsuite/gcc.target/aarch64/options_set_16.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b45c01a915b..72a31f6da76 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_16.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_16.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16fml} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+fp16fml\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+fp16fml} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16fml is smallest options to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_17.c gcc/testsuite/gcc.target/aarch64/options_set_17.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c490e1f47a0..3d414e203ab 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_17.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_17.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+dotprod} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+crc\+dotprod\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.2-a\+dotprod} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* dotprod needs to be emitted pre armv8.4.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_18.c gcc/testsuite/gcc.target/aarch64/options_set_18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 61587dbbd63..ba558aa352d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\+dotprod} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* dotprod is default in armv8.4-a, don't emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_19.c gcc/testsuite/gcc.target/aarch64/options_set_19.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 72b58126182..335294977fd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_19.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_19.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\+fp} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp default, don't emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_2.c gcc/testsuite/gcc.target/aarch64/options_set_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3476febce70..a876082e372 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto\+crc} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto\+crc} 1 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto} 1 { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check to see if crc and crypto are maintained if crypto specified.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_20.c gcc/testsuite/gcc.target/aarch64/options_set_20.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b383e0aced2..52688e269fc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_20.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_20.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16 smallest set to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_21.c gcc/testsuite/gcc.target/aarch64/options_set_21.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 19fcd6fda6e..1e2fbf0742e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_21.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_21.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16 smallest set to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_22.c gcc/testsuite/gcc.target/aarch64/options_set_22.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 77ae4089f39..61ce788eb58 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_22.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_22.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\+fp16fml} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16 smallest set to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_23.c gcc/testsuite/gcc.target/aarch64/options_set_23.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dee637c5d2c..e6cb3bb4e63 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_23.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_23.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\+fp16fml} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16 smallest set to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_24.c gcc/testsuite/gcc.target/aarch64/options_set_24.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 54b0e3d4a83..395444837a9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_24.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_24.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\+fp16fml} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16 smallest set to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_25.c gcc/testsuite/gcc.target/aarch64/options_set_25.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a3b2d63c06e..9a2b1df720c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_25.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_25.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\+fp16fml} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16 smallest set to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_26.c gcc/testsuite/gcc.target/aarch64/options_set_26.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b383e0aced2..52688e269fc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_26.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_26.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+crc\+fp16\n} { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\.arch armv8\.4-a\+fp16} { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  /* fp16 smallest set to emit.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_3.c gcc/testsuite/gcc.target/aarch64/options_set_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4558339f16c..65a936943fa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto\+crc} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto\+crc} 1 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto} 1 { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check if smallest set is maintained when outputting. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_4.c gcc/testsuite/gcc.target/aarch64/options_set_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 15514bfe93e..facfbb97602 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,7 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto\+crc} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto\+crc} 1 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto} 1 { target *-*-darwin* }  } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check if individual bits that make up a grouping is specified that only the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    grouping is kept. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+\ No newline at end of file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_5.c gcc/testsuite/gcc.target/aarch64/options_set_5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b4c0901195e..81452696d67 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,7 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crc\+aes} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crc\+aes\n} 1 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+aes} 1 { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check if turning off feature bits works correctly and grouping is no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    longer valid.   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_6.c gcc/testsuite/gcc.target/aarch64/options_set_6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 90a055928a2..78289ae8720 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,7 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto\+crc} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto\+crc} 1 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.2\-a\+crypto} 1 { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Group as a whole was requested to be turned on, crypto itself is a bit and so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    just turning off one feature can't turn it off.   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_7.c gcc/testsuite/gcc.target/aarch64/options_set_7.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 71a2c8a1905..6cf65a2e0aa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_7.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_7.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,8 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.arch armv8\.4\-a} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.4\-a\+crc\n} 1 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.4\-a} 1 { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\+dotprod} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Checking if enabling default features drops the superfluous bits.   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/options_set_8.c gcc/testsuite/gcc.target/aarch64/options_set_8.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 83be1bd7a5c..eb9d5c61fe6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/options_set_8.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/options_set_8.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,7 +6,9 @@ int main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.arch armv8\.4\-a} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.4\-a\+crc\+nodotprod\n} 1 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.arch armv8\.4\-a} 1 { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\+dotprod} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Checking if trying to turn off default features propagates the commandline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    option.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e85465f25fb..9eff866e0c8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pcs_attribute-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Not applicable to darwinpcs" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target aarch64_variant_pcs } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Test that .variant_pcs is emitted for vector PCS symbol references.  */
</span> diff --git gcc/testsuite/gcc.target/aarch64/pr100518.c gcc/testsuite/gcc.target/aarch64/pr100518.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5ca599f..4e7d6bc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5ca599f5d2e..4e7d6bc7d90 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr100518.c
 +++ gcc/testsuite/gcc.target/aarch64/pr100518.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7492,8 +13887,61 @@ index 5ca599f..4e7d6bc 100644
</span>  /* { dg-options "-mabi=ilp32 -mstrict-align -O2" } */
  
  int unsigned_range_min, unsigned_range_max, a11___trans_tmp_1;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr103147-10.c gcc/testsuite/gcc.target/aarch64/pr103147-10.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 57942bfd10a..e5b22ebb341 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr103147-10.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr103147-10.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,7 +11,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        strb    .*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-**        bl      memcpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        bl      _?memcpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,7 +29,7 @@ ld2 (int32x4x2_t *a, int32_t *b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        strb    .*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-**        bl      memcpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        bl      _?memcpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,7 +47,7 @@ ld3 (int32x4x3_t *a, int32_t *b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** (
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        strb    .*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-**        bl      memcpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        bl      _?memcpy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr109072_1.c gcc/testsuite/gcc.target/aarch64/pr109072_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6c1d2b0bdcc..0c40cbd4dd9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr109072_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr109072_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -239,7 +239,7 @@ void consume (float32x4_t, float32x4_t, float32x4_t, float32x4_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        dup     v1\.4s, v1\.s\[0\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        dup     v0\.4s, v0\.s\[0\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-**        b       consume
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        b       _?consume
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ produce_1 (float32_t a, float32_t b, float32_t c, float32_t d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -267,7 +267,7 @@ produce_1 (float32_t a, float32_t b, float32_t c, float32_t d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        dup     v1\.4s, v1\.s\[0\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        dup     v0\.4s, v0\.s\[0\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ** )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-**        b       consume
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        b       _?consume
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ produce_2 (float32_t a, float32_t b, float32_t c, float32_t d)
</span> diff --git gcc/testsuite/gcc.target/aarch64/pr62308.c gcc/testsuite/gcc.target/aarch64/pr62308.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1cf6e21..4c1a733 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1cf6e212dca..4c1a733e84d 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr62308.c
 +++ gcc/testsuite/gcc.target/aarch64/pr62308.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7502,8 +13950,49 @@ index 1cf6e21..4c1a733 100644
</span>  /* { dg-options "-mbig-endian" } */
  
  typedef int __attribute__((vector_size(16))) v4si;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr63304_1.c gcc/testsuite/gcc.target/aarch64/pr63304_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5d519d817cc..5077206d7d9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr63304_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr63304_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,6 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target lp64 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O1 --save-temps -fno-pie" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-xfail-if "issue #100" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma GCC push_options
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma GCC target ("+nothing+simd,cmodel=small")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -45,4 +47,4 @@ cal3 (double a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times "adrp" 6 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "adrp" 6 { xfail *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr70120-2.c gcc/testsuite/gcc.target/aarch64/pr70120-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8f5cdc93fe3..a9671004825 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr70120-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr70120-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,6 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target lp64 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-Og -freorder-functions -g3 -mcmodel=large -fno-pie" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-xfail-if "issue #100" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef short v32u16 __attribute__ ((vector_size (32)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef int v32u32 __attribute__ ((vector_size (32)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr71727.c gcc/testsuite/gcc.target/aarch64/pr71727.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 41fa72bc67e..226258a76fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr71727.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr71727.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,4 +30,4 @@ _start (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-times "mov\tx" 5 {target lp64} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-not "add\tx0, x0, :" {target lp64} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {st[rp]\tq[0-9]+} {target lp64} } } */
</span> diff --git gcc/testsuite/gcc.target/aarch64/pr78255.c gcc/testsuite/gcc.target/aarch64/pr78255.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index b078cf3..fc5d859 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b078cf3e1c1..fc5d859ee68 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr78255.c
 +++ gcc/testsuite/gcc.target/aarch64/pr78255.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7513,7 +14002,7 @@ index b078cf3..fc5d859 100644
</span>  
  extern int bar (void *);
 diff --git gcc/testsuite/gcc.target/aarch64/pr78561.c gcc/testsuite/gcc.target/aarch64/pr78561.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 048d2d7..635214e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 048d2d7969f..635214edde1 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr78561.c
 +++ gcc/testsuite/gcc.target/aarch64/pr78561.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7522,8 +14011,46 @@ index 048d2d7..635214e 100644
</span>  /* { dg-options "-Og -O3 -mcmodel=tiny" } */
  
  int
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr78733.c gcc/testsuite/gcc.target/aarch64/pr78733.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8556ef3f371..da31d0ff153 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr78733.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr78733.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,6 +2,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -mcmodel=large -mpc-relative-literal-loads -fno-pie" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target lp64 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "-mcmodel=large, no support for -fpic" { aarch64-*-* }  { "-fpic" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-xfail-if "issue #100" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __int128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,5 +10,5 @@ t (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return ((__int128)0x123456789abcdef << 64) | 0xfedcba987654321;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "adr" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "adr" { xfail { *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "adrp" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr79041-2.c gcc/testsuite/gcc.target/aarch64/pr79041-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8556ef3f371..da31d0ff153 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr79041-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr79041-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,6 +2,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -mcmodel=large -mpc-relative-literal-loads -fno-pie" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target lp64 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "-mcmodel=large, no support for -fpic" { aarch64-*-* }  { "-fpic" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-xfail-if "issue #100" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __int128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,5 +10,5 @@ t (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return ((__int128)0x123456789abcdef << 64) | 0xfedcba987654321;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "adr" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "adr" { xfail { *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "adrp" } } */
</span> diff --git gcc/testsuite/gcc.target/aarch64/pr80295.c gcc/testsuite/gcc.target/aarch64/pr80295.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index b3866d8..7a7f127 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b3866d8d6a9..7a7f127b65f 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr80295.c
 +++ gcc/testsuite/gcc.target/aarch64/pr80295.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7532,8 +14059,20 @@ index b3866d8..7a7f127 100644
</span>  /* { dg-options "-mabi=ilp32" } */
  
  void f (void *b) 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr84882.c gcc/testsuite/gcc.target/aarch64/pr84882.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 89b5d1a5805..e99d1048142 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr84882.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr84882.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,6 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* This is a copy of pr71727.c with scanning reversed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-mstrict-align -O3 -mno-strict-align" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mtune=generic -fomit-frame-pointer" { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct test_struct_s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span> diff --git gcc/testsuite/gcc.target/aarch64/pr87305.c gcc/testsuite/gcc.target/aarch64/pr87305.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8beaa91..c3f98e8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8beaa9176e0..c3f98e8eaec 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr87305.c
 +++ gcc/testsuite/gcc.target/aarch64/pr87305.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7543,7 +14082,7 @@ index 8beaa91..c3f98e8 100644
</span>  
  int cc;
 diff --git gcc/testsuite/gcc.target/aarch64/pr92424-1.c gcc/testsuite/gcc.target/aarch64/pr92424-1.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c413a2c..59f7435 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c413a2c306e..59f7435dc83 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr92424-1.c
 +++ gcc/testsuite/gcc.target/aarch64/pr92424-1.c
 @@ -1,6 +1,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7554,8 +14093,30 @@ index c413a2c..59f7435 100644
</span>  
  /* Note: this test only checks the instructions in the function bodies,
     not the placement of the patch label or nops before the futncion.  */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr92424-2.c gcc/testsuite/gcc.target/aarch64/pr92424-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 86bb92e6f32..0afe2217a80 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr92424-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr92424-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do "compile" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O1" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "unimplemented patchable function entry" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Test the placement of the .LPFE1 label.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr92424-3.c gcc/testsuite/gcc.target/aarch64/pr92424-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index daac2faf18e..dc8a17008b3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr92424-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr92424-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do "compile" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O1" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "unimplemented patchable function entry" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Test the placement of the .LPFE1 label.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git gcc/testsuite/gcc.target/aarch64/pr94201.c gcc/testsuite/gcc.target/aarch64/pr94201.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6917616..051c742 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 69176169186..051c742e98e 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr94201.c
 +++ gcc/testsuite/gcc.target/aarch64/pr94201.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7564,18 +14125,30 @@ index 6917616..051c742 100644
</span>  /* { dg-options "-mcmodel=tiny -mabi=ilp32 -fPIC" } */
  
  extern int bar (void *);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr94530.c gcc/testsuite/gcc.target/aarch64/pr94530.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5dfdbe3311d..e273b03576b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr94530.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr94530.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,6 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target lp64 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-Os -mcpu=falkor -mpc-relative-literal-loads -mcmodel=large -fno-pie" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-xfail-if "issue #100" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void bar(const char *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git gcc/testsuite/gcc.target/aarch64/pr94577.c gcc/testsuite/gcc.target/aarch64/pr94577.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6f2d361..6a52e52 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d51799fb0bb..afe18d42381 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr94577.c
 +++ gcc/testsuite/gcc.target/aarch64/pr94577.c
 @@ -1,4 +1,5 @@
  /* { dg-do compile } */
 +/* { dg-require-effective-target arm_mabi_ilp32 } */
<span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-options "-mcmodel=large -mabi=ilp32" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-mcmodel=large -mabi=ilp32 -fno-pie" } */
</span>  
  void
 diff --git gcc/testsuite/gcc.target/aarch64/pr97535.c gcc/testsuite/gcc.target/aarch64/pr97535.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7d4db48..6f1ee80 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7d4db485f1f..6f1ee8035eb 100644
</span> --- gcc/testsuite/gcc.target/aarch64/pr97535.c
 +++ gcc/testsuite/gcc.target/aarch64/pr97535.c
 @@ -13,4 +13,4 @@ void setRaw(const void *raw)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7584,8 +14157,32 @@ index 7d4db48..6f1ee80 100644
</span>     and not inlined.  */
 -/* { dg-final { scan-assembler "bl\tmemcpy" } } */
 +/* { dg-final { scan-assembler "bl\t_*memcpy" } } */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr98776.c gcc/testsuite/gcc.target/aarch64/pr98776.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d193df8e66d..2256d122182 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr98776.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr98776.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do "compile" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O1 -fpatchable-function-entry=1 -fasynchronous-unwind-tables" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "unimplemented patchable function entry" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Test the placement of the .LPFE1 label.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/reg-alloc-4.c gcc/testsuite/gcc.target/aarch64/reg-alloc-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ceb6f50de2d..32c19597e11 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/reg-alloc-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/reg-alloc-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,7 +22,7 @@ struct L
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        ldr     (x[0-9]+), \[\2, #?16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        str     \3, \[\2\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        ldr     \2, \[\2, #?8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-**        cbn?z   \4, .*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**        cbn?z   \4, .?L[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ **        ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span> diff --git gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8eec682..193c657 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8eec6824f37..193c65717ed 100644
</span> --- gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
 +++ gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
 @@ -1,5 +1,6 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7604,32 +14201,18 @@ index 8eec682..193c657 100644
</span> +/* { dg-final { scan-assembler-not {\.variant_pcs\t_?foo} } } */
 +/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnN2v_foo} 1 } } */
 diff --git gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 95f6a68..6fd5773 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c6dac6b104c..66cad316663 100644
</span> --- gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
 +++ gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
 @@ -1,5 +1,6 @@
  /* { dg-do compile } */
  /* { dg-options "-Ofast" } */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-skip-if "no system variant_pcs support" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no .variant_pcs support" *-*-darwin* } */
</span>  
  __attribute__ ((__simd__))
  __attribute__ ((__nothrow__ , __leaf__ , __const__))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17,8 +18,8 @@ double foo(double x)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return x * x / 3.0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler-not {\.variant_pcs\t_?foo} } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnM1v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnM2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnN1v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnN2v_foo} 1 } } */
</span> diff --git gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index eddcef3..62ee482 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eddcef3597c..62ee482a892 100644
</span> --- gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
 +++ gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
 @@ -1,5 +1,6 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7648,31 +14231,31 @@ index eddcef3..62ee482 100644
</span> +/* { dg-final { scan-assembler-not {\.variant_pcs\t_?log} } } */
 +/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnN2v_log} 1 } } */
 diff --git gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6885894..ebba23c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 412a9ed1aab..8c71ab2ec0d 100644
</span> --- gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c
 +++ gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c
 @@ -1,6 +1,7 @@
  /* { dg-do compile } */
<span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables -fno-stack-protector" } */
</span>  /* { dg-require-effective-target supports_stack_clash_protection } */
 +/* { dg-skip-if "no cfi insn support yet" *-*-darwin* } */
  
  #define SIZE 128*1024
  #include "stack-check-prologue.h"
 diff --git gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5796a53..e15fbd6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e440569a078..24cf904f489 100644
</span> --- gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c
 +++ gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c
 @@ -1,6 +1,7 @@
  /* { dg-do compile } */
<span style='display:block; white-space:pre;background:#ffe0e0;'>- /* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables -fno-stack-protector" } */
</span>  /* { dg-require-effective-target supports_stack_clash_protection } */
 +/* { dg-skip-if "no cfi insn support yet" *-*-darwin* } */
  
  #define SIZE 1280*1024 + 512
  #include "stack-check-prologue.h"
 diff --git gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c4b7bb6..ccaf2e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c4b7bb601c4..ccaf2e6f8cf 100644
</span> --- gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c
 +++ gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c
 @@ -1,6 +1,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7683,16 +14266,96 @@ index c4b7bb6..ccaf2e6 100644
</span>  
  #include "stack-check-prologue-16.c"
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f0ec1389771..67b849fb193 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "incompatible stack layout" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void f(int, ...);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6383bec5ebc..63e14144100 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "incompatible stack layout" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void f(int, ...);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 562039b5e9b..6d7cd31820f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-check-prologue-19.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12 -fsanitize=shadow-call-stack -ffixed-x18" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "incompatible stack layout" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void f(int, ...);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-protector-1.c gcc/testsuite/gcc.target/aarch64/stack-protector-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 73e83bc413f..e3232b2cc97 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-protector-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-protector-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do run } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "incompatible asm" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target fstack_protector } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-fstack-protector-all -O2" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-protector-2.c gcc/testsuite/gcc.target/aarch64/stack-protector-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 266c36fdbc6..48f044d03b4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-protector-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-protector-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do run } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "incompatible asm" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target fstack_protector } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target fpic } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-fstack-protector-all -O2 -fpic" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-protector-3.c gcc/testsuite/gcc.target/aarch64/stack-protector-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 909e26c4c0a..3700e30c094 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-protector-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-protector-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do run } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "incompatible asm" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target fstack_protector } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-fstack-protector-all -O2" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-protector-4.c gcc/testsuite/gcc.target/aarch64/stack-protector-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6334dd00908..fa8a011815f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-protector-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-protector-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do run } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "incompatible asm" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target fstack_protector } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target fpic } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-fstack-protector-all -O2 -fpic" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-protector-8.c gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e71d820e365..8159efe862e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-protector-8.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options " -O -fstack-protector-strong -mstack-protector-guard=sysreg -mstack-protector-guard-reg=tpidr2_el0 -mstack-protector-guard-offset=16" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "incompatible stack layout" { *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void g(void *);
</span> diff --git gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 71dd668..7a62814 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 71dd6687c6b..3b955441b7a 100644
</span> --- gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
 +++ gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
 @@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } then {
    return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7700,15 +14363,15 @@ index 71dd668..7a62814 100644
</span>  load_lib gcc-dg.exp
  
 diff --git gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a271f17..2da5720 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a271f1793f4..a9574aa8dbf 100644
</span> --- gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
 +++ gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
 @@ -24,6 +24,11 @@ if {![istarget aarch64*-*-*] } {
      return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7716,29 +14379,60 @@ index a271f17..2da5720 100644
</span>  load_lib gcc-dg.exp
  
 diff --git gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ce71c9c..c7bd136 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ce71c9c1fd4..16549882268 100644
</span> --- gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
 +++ gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
 @@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } {
      return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
  # Load support procs.
  load_lib gcc-dg.exp
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d494943a275..7daceb8a301 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -mbig-endian" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* To avoid needing big-endian header files.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6f9f9f2f22f..2b27151d654 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -mbig-endian" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* To avoid needing big-endian header files.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dfce5e7a12a..84584f40105 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/acle/general/dupq_6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -mbig-endian" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* To avoid needing big-endian header files.  */
</span> diff --git gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8378673..9ab6890 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 76f5fd4ffd8..b08d3969c87 100644
</span> --- gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
 +++ gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -25,6 +25,10 @@ if {![istarget aarch64*-*-*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } then {
</span>      return
  }
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>++# Darwin does not support .variant_pcs at present.
</span> +if { [istarget *-*-darwin*] } then {
 +    return
 +}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7746,16 +14440,105 @@ index 8378673..9ab6890 100644
</span>  # Load support procs.
  load_lib gcc-dg.exp
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/pr108603.c gcc/testsuite/gcc.target/aarch64/sve/pr108603.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a2aea9f0b12..6c196cd0c71 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/pr108603.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/pr108603.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,3 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no 32b support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -mabi=ilp32 -fdata-sections" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int a[128];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/pr88847.c gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b7504add9a9..1188f1c0d70 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/pr88847.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target aarch64_asm_sve_ok } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-O0 -msve-vector-bits=256 -mbig-endian --save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct _b {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/revb_2.c gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 389739cc85d..a5b176629e7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/revb_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target aarch64_asm_sve_ok } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "revb_1.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/revh_2.c gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e821b64027e..9fff2270422 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/revh_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target aarch64_asm_sve_ok } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "revh_1.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7634d01b2c4..b231066b56c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/revhw_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target aarch64_asm_sve_ok } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O -msve-vector-bits=2048 -mbig-endian --save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { check-function-bodies "**" "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/revw_2.c gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 17243c05c5e..fca6e8fea7a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/revw_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target aarch64_asm_sve_ok } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O -msve-vector-bits=256 --save-temps -mbig-endian" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "revw_1.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 16e48bef044..f8e6efff415 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/struct_move_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target aarch64_asm_sve_ok } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef char vnx16qi __attribute__((vector_size(32)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6041f2a2a49..c18730a2ac9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/struct_move_2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target aarch64_asm_sve_ok } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef char vnx16qi __attribute__((vector_size(32)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 19011384f9b..88339cb99e0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target aarch64_asm_sve_ok } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no BE support" { aarch64-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O -msve-vector-bits=256 -mbig-endian --save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef char vnx16qi __attribute__((vector_size(32)));
</span> diff --git gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 60652db..010e321 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 60652dbf8fb..76db9996e59 100644
</span> --- gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
 +++ gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
 @@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } then {
    return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7763,31 +14546,40 @@ index 60652db..010e321 100644
</span>  load_lib gcc-dg.exp
  
 diff --git gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e08cd61..a7e5f36 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e08cd612190..78b790dc779 100644
</span> --- gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
 +++ gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
 @@ -24,6 +24,11 @@ if {![istarget aarch64*-*-*] } {
      return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
  # Load support procs.
  load_lib gcc-dg.exp
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +44,7 @@ if { [check_effective_target_aarch64_sve2] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Turn off any codegen tweaks by default that may affect expected assembly.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Tests relying on those should turn them on explicitly.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set sve_flags "$sve_flags -mtune=generic -moverride=tune=none"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set sve2_flags "$sve2_flags -mtune=generic -moverride=tune=none"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend extra_flags "-fno-ipa-icf"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f025596..82092e3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f0255967c9d..63d90f8dbb5 100644
</span> --- gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
 +++ gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
 @@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } {
      return
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# SVE/2 support on Darwin is experimental, make the tests optional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] && ![info exists env(DARWIN_TEST_SVE)]} then {
</span> +  return
 +}
 +
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7795,7 +14587,7 @@ index f025596..82092e3 100644
</span>  load_lib gcc-dg.exp
  
 diff --git gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index fc6a4f3..2d9e94b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fc6a4f3ec78..2d9e94bc625 100644
</span> --- gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
 +++ gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
 @@ -1,4 +1,5 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7804,8 +14596,65 @@ index fc6a4f3..2d9e94b 100644
</span>  /* { dg-options "-O3 -save-temps -mcmodel=tiny" } */
  
  char fixed_regs[0x00080000];
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/target_attr_1.c gcc/testsuite/gcc.target/aarch64/target_attr_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4a3a1ee233a..ee4af9f16a8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/target_attr_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/target_attr_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,5 +10,5 @@ foo (int a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "//.tune cortex-a72.cortex-a53" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "(?://|;).tune cortex-a72.cortex-a53" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "thunderx" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/target_attr_7.c gcc/testsuite/gcc.target/aarch64/target_attr_7.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6067ffed30e..86d2ed6bb73 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/target_attr_7.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/target_attr_7.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,6 @@ bam (int a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return a - bar (a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times "//.tune xgene1" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times "//.tune cortex-a53" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "(?://|;).tune\\sxgene1" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "(?://|;).tune\\scortex-a53" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "thunderx" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9b2022aea5a..2391991e3ff 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/test-framepointer-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,5 +10,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Since we asked to have no frame pointers anywhere, we expect no frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    record in main or the leaf.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/test-framepointer-3.c gcc/testsuite/gcc.target/aarch64/test-framepointer-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b8c23209cd4..f970b265a66 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/test-framepointer-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/test-framepointer-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,5 +10,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Since we asked to have no frame pointers anywhere, we expect no frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    record in main or the leaf.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/test-framepointer-6.c gcc/testsuite/gcc.target/aarch64/test-framepointer-6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4af5d889686..41658785bfc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/test-framepointer-6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/test-framepointer-6.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10,5 +10,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Since we asked to have no frame pointers anywhere, we expect no frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    record in main or the leaf.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not "stp\tx29, x30, \\\[sp, -\[0-9\]+\\\]!" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git gcc/testsuite/gcc.target/aarch64/uaddw-3.c gcc/testsuite/gcc.target/aarch64/uaddw-3.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 39cbd6b..b4ed187 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 39cbd6b6cc2..b4ed187bd2c 100644
</span> --- gcc/testsuite/gcc.target/aarch64/uaddw-3.c
 +++ gcc/testsuite/gcc.target/aarch64/uaddw-3.c
 @@ -1,10 +1,11 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7822,7 +14671,7 @@ index 39cbd6b..b4ed187 100644
</span>    len = len & ~31;
    unsigned short result = 0;
 diff --git gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d025e98..f218504 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d025e989a1e..f218504c719 100644
</span> --- gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
 +++ gcc/testsuite/gcc.target/aarch64/vect-cse-codegen.c
 @@ -6,8 +6,8 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7864,8 +14713,67 @@ index d025e98..f218504 100644
</span>  **       add     v[0-9]+.4s, v[0-9]+.4s, v[0-9]+.4s
  **    str     q[0-9]+, \[x1\]
  **    fmov    w[0-9]+, s[0-9]+
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gdc.dg/asan/asan.exp gcc/testsuite/gdc.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 29025cb094d..df588549532 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gdc.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gdc.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,7 +20,8 @@ load_lib asan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-asan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libasan uses libstdc++ so make sure we provide paths for it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++asan_init 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_address] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gdc.dg/ubsan/ubsan.exp gcc/testsuite/gdc.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 82fe6c31233..6a12fd7ecff 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gdc.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gdc.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,7 +20,8 @@ load_lib ubsan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ubsan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libubsan uses libstdc++ so make sure we provide paths for it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ubsan_init 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_undefined] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gfortran.dg/asan/asan.exp gcc/testsuite/gfortran.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 67f8cf42fde..064f3b15cea 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gfortran.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gfortran.dg/asan/asan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,7 +27,8 @@ load_lib asan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-asan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libasan uses libstdc++ so make sure we provide paths for it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++asan_init 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_address] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gfortran.dg/c_kind_params.f90 gcc/testsuite/gfortran.dg/c_kind_params.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 622ab97b0f3..8e4f859d7df 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gfortran.dg/c_kind_params.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gfortran.dg/c_kind_params.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,9 +1,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ! { dg-do run }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ! { dg-require-effective-target stdint_types }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ! { dg-additional-sources c_kinds.c }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-! { dg-options "-w -std=c99" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++! { dg-options "-w -std=gnu99" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ! the -w option is needed to make f951 not report a warning for 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-! the -std=c99 option that the C file needs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++! the -std=gnu99 option that the C file needs; it must be gnu to consume name-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++! spaced attributes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ !
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ module c_kind_params
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   use, intrinsic :: iso_c_binding
</span> diff --git gcc/testsuite/gfortran.dg/coarray/caf.exp gcc/testsuite/gfortran.dg/coarray/caf.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8683a2a..e76cb69 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8683a2ab435..ee051ea13e1 100644
</span> --- gcc/testsuite/gfortran.dg/coarray/caf.exp
 +++ gcc/testsuite/gfortran.dg/coarray/caf.exp
 @@ -28,6 +28,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7884,32 +14792,38 @@ index 8683a2a..e76cb69 100644
</span>  proc dg-compile-aux-modules { args } {
      global gfortran_test_path
      global gfortran_aux_module_flags
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -69,9 +71,21 @@ proc dg-compile-aux-modules { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,12 +70,6 @@ proc dg-compile-aux-modules { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span>  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Add -latomic only where supported.  Assume built-in support elsewhere.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Add -latomic only where supported.  Assume built-in support elsewhere.
</span> -set maybe_atomic_lib ""
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if [check_effective_target_libatomic_available] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if [check_effective_target_libatomic_available] {
</span> -    set maybe_atomic_lib "-latomic"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    #set maybe_atomic_lib "-latomic"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if ![is_remote host] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if [info exists TOOL_OPTIONS] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set maybe_atomic_lib "[atomic_link_flags [get_multilibs ${TOOL_OPTIONS}]]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set maybe_atomic_lib "[atomic_link_flags [get_multilibs]]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        set maybe_atomic_lib ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  set t [get_multilibs]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  puts "maybe al $maybe_atomic_lib ml $t"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set maybe_atomic_lib ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span>  # Main loop.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # If we're only testing specific files and this isn't one of them, skip it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,14 +93,14 @@ foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     foreach flags $option_list {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   verbose "Testing $nshort (single), $flags" 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         set gfortran_aux_module_flags "-fcoarray=single $flags"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dg-test $test "-fcoarray=single $flags $maybe_atomic_lib" "" 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dg-test $test "-fcoarray=single $flags" {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cleanup-modules ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     foreach flags $option_list {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   verbose "Testing $nshort (libcaf_single), $flags" 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         set gfortran_aux_module_flags "-fcoarray=lib $flags -lcaf_single"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dg-test $test "-fcoarray=lib $flags -lcaf_single $maybe_atomic_lib" ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dg-test $test "-fcoarray=lib $flags -lcaf_single" {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cleanup-modules ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> diff --git gcc/testsuite/gfortran.dg/dg.exp gcc/testsuite/gfortran.dg/dg.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index bd7ad95..36fc297 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bd7ad95ad0d..1b228cc546e 100644
</span> --- gcc/testsuite/gfortran.dg/dg.exp
 +++ gcc/testsuite/gfortran.dg/dg.exp
 @@ -18,6 +18,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7920,41 +14834,38 @@ index bd7ad95..36fc297 100644
</span>  
  # If a testcase doesn't have special options, use these.
  global DEFAULT_FFLAGS
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -53,12 +54,30 @@ proc dg-compile-aux-modules { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,13 +54,14 @@ proc dg-compile-aux-modules { args } {
</span>      }
  }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# coarray tests might need libatomic.  Assume that it is either not needed or
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# provided by builtins if it's not available.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if [check_effective_target_libatomic_available] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if ![is_remote host] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if [info exists TOOL_OPTIONS] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set maybe_atomic_lib "[atomic_link_flags [get_multilibs ${TOOL_OPTIONS}]]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set maybe_atomic_lib "[atomic_link_flags [get_multilibs]]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        set maybe_atomic_lib ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  set t [get_multilibs]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  puts "dg set al $maybe_atomic_lib ml $t"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+puts "DEFAULT_FFLAGS $DEFAULT_FFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set all_flags $DEFAULT_FFLAGS
</span> +
  # Main loop.
  gfortran-dg-runtest [lsort \
 -       [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] "" $DEFAULT_FFLAGS
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] $maybe_atomic_lib $DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] "" $all_flags
</span>  
  gfortran-dg-runtest [lsort \
 -       [glob -nocomplain $srcdir/$subdir/g77/*.\[fF\] ] ] "" $DEFAULT_FFLAGS
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       [glob -nocomplain $srcdir/$subdir/g77/*.\[fF\] ] ] $maybe_atomic_lib $DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       [glob -nocomplain $srcdir/$subdir/g77/*.\[fF\] ] ] "" $all_flags
</span>  
  # All done.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-finish
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gfortran.dg/include_2.f90 gcc/testsuite/gfortran.dg/include_2.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e4f553efa3e..f31a0d328e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gfortran.dg/include_2.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gfortran.dg/include_2.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,6 +24,7 @@ end subroutine b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ! PR debug/33739
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ! { dg-do link }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ! { dg-options "-fpreprocessed -g3" }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++! { dg-skip-if "no support for -g3" { *-*-darwin2* } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     call a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     call b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ end
</span> diff --git gcc/testsuite/gfortran.dg/pr95690.f90 gcc/testsuite/gfortran.dg/pr95690.f90
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 47a5df9..1afa9d3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 47a5df9e894..1afa9d3c467 100644
</span> --- gcc/testsuite/gfortran.dg/pr95690.f90
 +++ gcc/testsuite/gfortran.dg/pr95690.f90
 @@ -2,8 +2,8 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7968,11 +14879,46 @@ index 47a5df9..1afa9d3 100644
</span>     function erfc()
     end
  end
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gfortran.dg/ubsan/ubsan.exp gcc/testsuite/gfortran.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a2b02b2b2d9..de696b84207 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gfortran.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gfortran.dg/ubsan/ubsan.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,10 +22,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib gfortran-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib ubsan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Initialize `dg'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dg-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-ubsan_init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# libubsan uses libstdc++ so make sure we provide paths for it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ubsan_init 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_fsanitize_undefined] {
</span> diff --git gcc/testsuite/lib/asan-dg.exp gcc/testsuite/lib/asan-dg.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7e0f85d..88c6ece 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7e0f85dc9b0..e8623cfad9b 100644
</span> --- gcc/testsuite/lib/asan-dg.exp
 +++ gcc/testsuite/lib/asan-dg.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -78,7 +78,7 @@ proc asan_link_flags_1 { paths lib } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -61,7 +61,7 @@ proc asan_include_flags {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # (originally from g++.exp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-proc asan_link_flags_1 { paths lib } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc asan_link_flags_1 { paths lib need_stdcxx} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global srcdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global ld_library_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global shlib_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -73,14 +73,24 @@ proc asan_link_flags_1 { paths lib } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set shlib_ext [get_shlib_extension]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set ${lib}_saved_library_path $ld_library_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Providing -B instead of -L means that it works for targets that use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # spec substitution for handling -static-xxxxx, it also works for targets
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # the use the startfile paths to provide a runpath for uninstalled test.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Each -B option will produce a -L on the link line (for paths that exist).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { $gccpath != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if { [file exists "${gccpath}/libsanitizer/${lib}/.libs/lib${lib}.a"]
</span>      || [file exists "${gccpath}/libsanitizer/${lib}/.libs/lib${lib}.${shlib_ext}"] } {
          append flags " -B${gccpath}/libsanitizer/ "
          append flags " -B${gccpath}/libsanitizer/${lib}/ "
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7980,118 +14926,553 @@ index 7e0f85d..88c6ece 100644
</span> +   append flags " -B${gccpath}/libsanitizer/${lib}/.libs "
          append ld_library_path ":${gccpath}/libsanitizer/${lib}/.libs"
        }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git gcc/testsuite/lib/atomic-dg.exp gcc/testsuite/lib/atomic-dg.exp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 86dcfa6..c9244fb 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- gcc/testsuite/lib/atomic-dg.exp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ gcc/testsuite/lib/atomic-dg.exp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -33,7 +33,7 @@ proc atomic_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       if { [file exists "${gccpath}/libatomic/.libs/libatomic.a"]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      || [file exists "${gccpath}/libatomic/.libs/libatomic.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     append flags " -B${gccpath}/libatomic/ "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    append flags " -L${gccpath}/libatomic/.libs"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    append flags " -B${gccpath}/libatomic/.libs"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     append ld_library_path ":${gccpath}/libatomic/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # libasan links to libstdc++, so we must include it for C testcases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { $need_stdcxx && ( [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.a"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     || [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}"] ) } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  append flags " -B${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }      
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       global tool_root_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -96,8 +106,8 @@ proc asan_link_flags_1 { paths lib } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return "$flags"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-proc asan_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return [asan_link_flags_1 $paths asan]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc asan_link_flags { paths need_stdcxx } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return [asan_link_flags_1 $paths asan $need_stdcxx]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -111,12 +121,15 @@ proc asan_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global asan_saved_TEST_ALWAYS_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global asan_saved_ALWAYS_CXXFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    setenv ASAN_OPTIONS "color=never"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set needs_cxx [lindex $args 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set link_flags ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ![is_remote host] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if [info exists TOOL_OPTIONS] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set link_flags "[asan_link_flags [get_multilibs ${TOOL_OPTIONS}]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set link_flags "[asan_link_flags [get_multilibs ${TOOL_OPTIONS}] $needs_cxx]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set link_flags "[asan_link_flags [get_multilibs]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set link_flags "[asan_link_flags [get_multilibs] $needs_cxx]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/atomic-dg.exp gcc/testsuite/lib/atomic-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 86dcfa674ea..c9244fb6cac 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/atomic-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/atomic-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,7 +33,7 @@ proc atomic_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if { [file exists "${gccpath}/libatomic/.libs/libatomic.a"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      || [file exists "${gccpath}/libatomic/.libs/libatomic.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     append flags " -B${gccpath}/libatomic/ "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags " -L${gccpath}/libatomic/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    append flags " -B${gccpath}/libatomic/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     append ld_library_path ":${gccpath}/libatomic/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/g++.exp gcc/testsuite/lib/g++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 24ef068b239..f9ec9a1904d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/g++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/g++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,10 +281,6 @@ proc g++_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set gcc_warning_prefix "warning:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set gcc_error_prefix "(fatal )?error:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if { [istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  lappend ALWAYS_CXXFLAGS "ldflags=-multiply_defined suppress"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     verbose -log "ALWAYS_CXXFLAGS set to $ALWAYS_CXXFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     verbose "g++ is initialized" 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/gdc.exp gcc/testsuite/lib/gdc.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 73bc61780c8..2ca0dd1fb75 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/gdc.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/gdc.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,6 +133,28 @@ proc gdc_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set include_cxx_flags 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # We need to add options to locate libgphobos and libstdc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Usually '-L' options are added to point to the relevant directories for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # the uninstalled libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # In cases where libraries are available as both shared and convenience
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # some additional checks are made.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # For some targets -static-xxxx options are handled by specs substitution
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # and need a '-B' option rather than '-L'.  For Darwin, when embedded
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # runpaths are in use (the default for all versions after macOS 10.11),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # '-B' is also needed to provide the runpath.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # When '-B' is used, this results in a '-L' for each path that exists (so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # that appending a '-L' as well is a needless duplicate).  There are also
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # cases where tools warn for duplicates, leading to spurious fails.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Therefore the objective of the code below is to add just one '-L' or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # '-B' for each of the libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set target_wants_B_option 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { [istarget *-*-darwin9* ] || [istarget *-*-darwin\[12\]* ] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set target_wants_B_option 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { $gccpath != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Path to libgphobos.spec.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   append flags "-B${gccpath}/libphobos/src "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -143,7 +165,11 @@ proc gdc_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if { [file exists "${gccpath}/libphobos/src/.libs/libgphobos.a"] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        || [file exists "${gccpath}/libphobos/src/.libs/libgphobos.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      append flags "-L${gccpath}/libphobos/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          append flags "-B${gccpath}/libphobos/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          append flags "-L${gccpath}/libphobos/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       append ld_library_path ":${gccpath}/libphobos/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Static linking is default. If only the shared lib is available adjust
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -163,7 +189,11 @@ proc gdc_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if $include_cxx_flags {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if { [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.a"] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            || [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags "-L${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              append flags "-B${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              append flags "-L${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -173,7 +203,11 @@ proc gdc_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set libphobos [lookfor_file ${tool_root_dir} libgphobos]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if { $libphobos != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      append flags "-B${libphobos} -L${libphobos} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        append flags "-B${libphobos} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      } else { 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        append flags " -L${libphobos} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       append ld_library_path ":${libphobos}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set libiberty [lookfor_file ${tool_root_dir} libiberty]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/gfortran.exp gcc/testsuite/lib/gfortran.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5f692d8f350..38239f8f8c8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/gfortran.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/gfortran.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -79,6 +79,7 @@ proc gfortran_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global ld_library_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global GFORTRAN_UNDER_TEST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global shlib_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    global ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set gccpath ${paths}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set libio_dir ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -87,39 +88,63 @@ proc gfortran_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set shlib_ext [get_shlib_extension]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     verbose "shared lib extension: $shlib_ext"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # We need to add options to locate libgfortran and the dependent libs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # libquadmath (supporting REAL*16) and libatomic (supporting operations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # used by coarrays).  Usually '-L' options are added to point to the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # relevant directories for the uninstalled libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # In cases where libraries are available as both shared and convenience
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # some additional checks are made.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # For some targets -static-xxxx options are handled by specs substitution
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # and need a '-B' option rather than '-L'.  For Darwin, when embedded
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # runpaths are in use (the default for all versions after macOS 10.11),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # '-B' is also needed to provide the runpath.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # When '-B' is used, this results in a '-L' for each path that exists (so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # that appending a '-L' as well is a needless duplicate).  There are also
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # cases where tools warn for duplicates, leading to spurious fails.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Therefore the objective of the code below is to add just one '-L' or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # '-B' for each of the libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set target_wants_B_option 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { [istarget *-*-darwin9* ] || [istarget *-*-darwin\[12\]* ] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set target_wants_B_option 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { $gccpath != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libgfortran/.libs/libgfortran.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Some targets use libgfortran.a%s in their specs, so they need a -B option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # for uninstalled testing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags "-B${gccpath}/libgfortran/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags "-L${gccpath}/libgfortran/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append ld_library_path ":${gccpath}/libgfortran/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libgfortran/.libs/libgfortran.${shlib_ext}"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags "-L${gccpath}/libgfortran/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append ld_library_path ":${gccpath}/libgfortran/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if [file exists "${gccpath}/libgfortran/libgforbegin.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append flags "-L${gccpath}/libgfortran "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libatomic/.libs/libatomic.${shlib_ext}"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags "-L${gccpath}/libatomic/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append ld_library_path ":${gccpath}/libatomic/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { [file exists "${gccpath}/libgfortran/.libs/libgfortran.a"] ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   [file exists "${gccpath}/libgfortran/.libs/libgfortran.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          append flags "-B${gccpath}/libgfortran/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          append flags "-L${gccpath}/libgfortran/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  append ld_library_path ":${gccpath}/libgfortran/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libatomic/libatomic.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags "-L${gccpath}/libatomic "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { [file exists "${gccpath}/libatomic/.libs/libatomic.a"] ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   [file exists "${gccpath}/libatomic/.libs/libatomic.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          append flags "-B${gccpath}/libatomic/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          append flags "-L${gccpath}/libatomic/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  append ld_library_path ":${gccpath}/libatomic/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libquadmath/.libs/libquadmath.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Some targets use libquadmath.a%s in their specs, so they need a -B option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # for uninstalled testing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { [file exists "${gccpath}/libquadmath/.libs/libquadmath.a"] ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   [file exists "${gccpath}/libquadmath/.libs/libquadmath.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append flags "-B${gccpath}/libquadmath/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append flags "-L${gccpath}/libquadmath/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append ld_library_path ":${gccpath}/libquadmath/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libquadmath/.libs/libquadmath.${shlib_ext}"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags "-L${gccpath}/libquadmath/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append ld_library_path ":${gccpath}/libquadmath/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  append ld_library_path ":${gccpath}/libquadmath/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if [file exists "${gccpath}/libiberty/libiberty.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append flags "-L${gccpath}/libiberty "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/hwasan-dg.exp gcc/testsuite/lib/hwasan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 54d0f60a429..5f7e15d66cf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/hwasan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/hwasan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -85,8 +85,8 @@ proc hwasan_include_flags {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # (implementation in asan-dg.exp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-proc hwasan_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return [asan_link_flags_1 $paths hwasan]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc hwasan_link_flags { paths needs_cxx } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return [asan_link_flags_1 $paths hwasan $needs_cxx]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,15 +99,16 @@ proc hwasan_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global TOOL_OPTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global hwasan_saved_TEST_ALWAYS_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global hwasan_saved_ALWAYS_CXXFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set needs_cxx [lindex $args 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     setenv HWASAN_OPTIONS "random_tags=0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set link_flags ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ![is_remote host] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if [info exists TOOL_OPTIONS] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set link_flags "[hwasan_link_flags [get_multilibs ${TOOL_OPTIONS}]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set link_flags "[hwasan_link_flags [get_multilibs ${TOOL_OPTIONS}] $needs_cxx]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set link_flags "[hwasan_link_flags [get_multilibs]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set link_flags "[hwasan_link_flags [get_multilibs] $needs_cxx]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/obj-c++.exp gcc/testsuite/lib/obj-c++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fe941587841..17af7f77d94 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/obj-c++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/obj-c++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,34 +110,43 @@ proc obj-c++_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set shlib_ext [get_shlib_extension]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     verbose "shared lib extension: $shlib_ext"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # We need to add options to locate libobjc/libobjc-gnu and libstdc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Usually '-L' options are added to point to the relevant directories for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # the uninstalled libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # In cases where libraries are available as both shared and convenience
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # some additional checks are made.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # For some targets -static-xxxx options are handled by specs substitution
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # and need a '-B' option rather than '-L'.  For Darwin, when embedded
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # runpaths are in use (the default for all versions after macOS 10.11),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # '-B' is also needed to provide the runpath.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # When '-B' is used, this results in a '-L' for each path that exists (so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # that appending a '-L' as well is a needless duplicate).  There are also
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # cases where tools warn for duplicates, leading to spurious fails.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Therefore the objective of the code below is to add just one '-L' or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # '-B' for each of the libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set target_wants_B_option 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { [istarget *-*-darwin9* ] || [istarget *-*-darwin\[12\]* ] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set target_wants_B_option 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { $gccpath != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/lib/libstdc++.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append ld_library_path ":${gccpath}/lib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libg++/libg++.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags " -L${gccpath}/libg++ "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append ld_library_path ":${gccpath}/libg++"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libstdc++/libstdc++.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags " -L${gccpath}/libstdc++ "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append ld_library_path ":${gccpath}/libstdc++"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Allow for %s spec substitutions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags " -B${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags " -L${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # Look for libstdc++.${shlib_ext}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    # Allow for %s spec substitutions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags " -B${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags " -L${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.a"] ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              append flags "-B${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              append flags "-L${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if [file exists "${gccpath}/libiberty/libiberty.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append flags " -L${gccpath}/libiberty "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if [file exists "${gccpath}/librx/librx.a"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append flags " -L${gccpath}/librx "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -159,9 +168,11 @@ proc obj-c++_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if { $libobjc_dir != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set libobjc_dir [file dirname ${libobjc_dir}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    # Allow for %s spec substitutions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags " -B${libobjc_dir} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags " -L${libobjc_dir} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      append flags "-B${libobjc_dir} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      append flags "-L${libobjc_dir} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     append ld_library_path ":${libobjc_dir}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       append ld_library_path \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -176,7 +187,11 @@ proc obj-c++_link_flags { paths } {
</span>        }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       set libstdcpp [lookfor_file ${tool_root_dir} libstdc++];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if { $libstdcpp != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append flags "-L${libstdcpp} ";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { $target_wants_B_option } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      append flags "-B${libstdcpp} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      append flags "-L${libstdcpp} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append ld_library_path ":${libstdcpp}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       set libiberty [lookfor_file ${tool_root_dir} libiberty];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -277,10 +292,6 @@ proc obj-c++_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set gcc_warning_prefix "warning:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set gcc_error_prefix "(fatal )?error:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if { [istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  lappend ALWAYS_OBJCXXFLAGS "ldflags=-multiply_defined suppress"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     verbose -log "ALWAYS_OBJCXXFLAGS set to $ALWAYS_OBJCXXFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     verbose "obj-c++ is initialized" 3
</span> diff --git gcc/testsuite/lib/scanasm.exp gcc/testsuite/lib/scanasm.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a80630b..195611f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a80630bb2a8..239c0321a41 100644
</span> --- gcc/testsuite/lib/scanasm.exp
 +++ gcc/testsuite/lib/scanasm.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -763,7 +763,7 @@ proc scan-lto-assembler { args } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # to function bodies in array RESULT.  FILENAME has already been uploaded
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # locally where necessary and is known to exist.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -759,33 +759,100 @@ proc scan-lto-assembler { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dg-scan "scan-lto-assembler" 1 $testcase $output_file $args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Read assembly file FILENAME and store a mapping from function names
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# to function bodies in array RESULT.  FILENAME has already been uploaded
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# locally where necessary and is known to exist.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Set up CONFIG for check-function-bodies.
</span>  
 -proc parse_function_bodies { filename result } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+proc parse_ELF_function_bodies { filename result } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     upvar $result up_result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    upvar $result up_result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc configure_check-function-bodies { config } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    upvar $config up_config
</span>  
      # Regexp for the start of a function definition (name in \1).
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -793,6 +793,44 @@ proc parse_function_bodies { filename result } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     close $fd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set label {^([a-zA-Z_]\S+):$}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { [istarget nvptx*-*-*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(start) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {^// BEGIN(?: GLOBAL|) FUNCTION DEF: ([a-zA-Z_]\S+)$}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } elseif { [istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(start) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {^_([a-zA-Z_]\S+):$}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      {^LFB[0-9]+:}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(start) {{^([a-zA-Z_]\S+):$}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+proc parse_MACHO_function_bodies { filename result } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    upvar $result up_result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Regexp for the end of a function definition.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set terminator {^\s*\.size}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { [istarget nvptx*-*-*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(end) {^\}$}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } elseif { [istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(end) {^LFE[0-9]+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(end) {^\s*\.size}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Regexp for lines that aren't interesting.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set fluff {^\s*(?:\.|//|@)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { [istarget nvptx*-*-*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Skip lines beginning with '//' comments ('-fverbose-asm', for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # example).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(fluff) {^\s*(?://)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } elseif { [istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(fluff) {^\s*(?:\.|//|@)|^L[0-9ABCESV]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Skip lines beginning with labels ('.L[...]:') or other directives
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # ('.align', '.cfi_startproc', '.quad [...]', '.text', etc.), '//' or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # '@' comments ('-fverbose-asm' or ARM-style, for example), or empty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # lines.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(fluff) {^\s*(?:\.|//|@|$)}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Regexp for the start of a function definition (name in \1).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set label {^(_[a-zA-Z_]\S+):$}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set start {^LFB[0-9]+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Regexp for the end of a function definition.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set terminator {^LFE[0-9]+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # Regexp for lines that aren't interesting.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set fluff {^\s*(?:\.|//|@)}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set fluff3 {^L[0-9ACESV]}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set fd [open $filename r]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set in_function 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    while { [gets $fd line] >= 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if { !$in_function && [regexp $label $line dummy function_name] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set in_function 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set function_body ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } elseif { $in_function == 1 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if { [regexp $start $line] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set in_function 2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set in_function 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } elseif { $in_function == 2 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if { [regexp $terminator $line] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          set up_result($function_name) $function_body
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          set in_function 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      } elseif { ![regexp $fluff $line]  && ![regexp $fluff3 $line] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          append function_body $line "\n"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Regexp for expected output lines prefix.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { [istarget nvptx*-*-*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Certain instructions (such as predicable ones) are emitted with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # additional whitespace prefixed.  On the other hand, labels don't get
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # any whitespace prefixed, and we'd like to be able to match these,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # too.  We thereare expect any amount of whitespace here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(line_prefix) {\t*}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set up_config(line_prefix) {\t}
</span> +    }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    close $fd
</span> +}
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # FUNCTIONS is an array that maps function names to function bodies.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Return true if it contains a definition of function NAME and if
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # that definition matches BODY_REGEXP.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -820,6 +858,14 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   error "too many arguments to check-function-bodies"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set isELF 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    # some targets have a __USER_LABEL_PREFIX__
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    set needsULP 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    if { [istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set isELF 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      set needsULP 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Per CONFIG, read assembly file FILENAME and store a mapping from function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# names to function bodies in array RESULT.  FILENAME has already been uploaded
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# locally where necessary and is known to exist.
</span> +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     if { [llength $args] >= 3 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   set required_flags [lindex $args 2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc parse_function_bodies { config filename result } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    upvar $config up_config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    upvar $result up_result
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -876,7 +922,11 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set fd [open $filename r]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set in_function 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     while { [gets $fd line] >= 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if { [regexp $label $line dummy function_name] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set in_function 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set function_body ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if { $in_function == 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { [regexp [lindex $up_config(start) 0] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                   $line dummy function_name] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          set in_function 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          set function_body ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } elseif { $in_function < [llength $up_config(start)] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { [regexp [lindex $up_config(start) $in_function] $line] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          incr in_function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          verbose "parse_function_bodies: skipped $function_name"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          set in_function 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } elseif { $in_function } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if { [regexp $terminator $line] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # We allow multiple function start labels, taking the last one seen
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # as the function name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { [regexp [lindex $up_config(start) 0] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                   $line dummy maybe_function_name] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          verbose "parse_function_bodies: overriding $function_name with $maybe_function_name"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          set function_name $maybe_function_name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          set in_function 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      } elseif { [regexp $up_config(end) $line] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          verbose "parse_function_bodies: $function_name:\n$function_body"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           set up_result($function_name) $function_body
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           set in_function 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      } elseif { ![regexp $fluff $line] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      } elseif { [regexp $up_config(fluff) $line] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          verbose "parse_function_bodies: $function_name: ignoring fluff line: $line"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append function_body $line "\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -870,13 +937,17 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set terminator "*/"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set terminator_len [string length $terminator]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Regexp for the start of a function definition in expected output lines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # (name in \1).  This may be different from '$config(start)'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set start_expected {^(\S+):$}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    configure_check-function-bodies config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set have_bodies 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { [is_remote host] } {
</span>   remote_upload host "$filename"
      }
      if { [file exists $output_filename] } {
 -      parse_function_bodies $output_filename functions
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        if { $isELF } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      parse_ELF_function_bodies $output_filename functions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      parse_MACHO_function_bodies $output_filename functions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  parse_function_bodies config $output_filename functions
</span>   set have_bodies 1
      } else {
        verbose -log "$testcase: output file does not exist"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -921,6 +971,9 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if { $xfail_all || [string equal $selector "F"] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               setup_xfail "*-*-*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -884,7 +955,6 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set count 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set function_regexp ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set label {^(\S+):$}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set lineno 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set fd [open $input_filename r]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -899,7 +969,7 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               set selector "P"
</span>           }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+               if { $needsULP } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              set function_name "_$function_name"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           set testname "$testcase check-function-bodies $function_name"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           if { !$have_bodies } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-               unresolved $testname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if { ![regexp $label $line dummy function_name] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if { ![regexp $start_expected $line dummy function_name] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               close $fd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               error "check-function-bodies: line $lineno does not have a function label"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -914,7 +984,7 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       } elseif { [string equal $line "..."] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           append function_regexp ".*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          append function_regexp "\t" $line "\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          append function_regexp $config(line_prefix) $line "\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } elseif { [string equal -length $terminator_len $line $terminator] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if { ![string equal $selector "N"] } {
</span> diff --git gcc/testsuite/lib/target-libpath.exp gcc/testsuite/lib/target-libpath.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d09cd51..280ce39 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d09cd515d20..49ccea8e9b5 100644
</span> --- gcc/testsuite/lib/target-libpath.exp
 +++ gcc/testsuite/lib/target-libpath.exp
 @@ -67,6 +67,7 @@ proc set_ld_library_path_env_vars { } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8110,7 +15491,7 @@ index d09cd51..280ce39 100644
</span>    if { $orig_ld_library_path_saved } {
      setenv LD_LIBRARY_PATH "$ld_library_path:$orig_ld_library_path"
    } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -166,11 +168,23 @@ proc set_ld_library_path_env_vars { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -166,10 +168,22 @@ proc set_ld_library_path_env_vars { } {
</span>    } else {
      setenv LD_LIBRARY_PATH_64 "$ld_library_path"
    }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8118,7 +15499,7 @@ index d09cd51..280ce39 100644
</span> -    setenv DYLD_LIBRARY_PATH "$ld_library_path:$orig_dyld_library_path"
 -  } else {
 -    setenv DYLD_LIBRARY_PATH "$ld_library_path"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span> +  if { [istarget *-*-darwin*] } {
 +    if { [info exists ENABLE_DARWIN_AT_RPATH] || [istarget *-*-darwin1\[5-9\]*]
 +         || [istarget *-*-darwin2*] } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8134,10 +15515,9 @@ index d09cd51..280ce39 100644
</span> +        setenv DYLD_LIBRARY_PATH "$ld_library_path"
 +      }
 +    }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  } 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span>    if { [istarget *-*-cygwin*] || [istarget *-*-mingw*] } {
      if { $orig_path_saved } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-       setenv PATH "$ld_library_path:$orig_path"
</span> @@ -179,6 +193,7 @@ proc set_ld_library_path_env_vars { } {
      }
    }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8147,10 +15527,10 @@ index d09cd51..280ce39 100644
</span>    verbose -log "LD_RUN_PATH=[getenv LD_RUN_PATH]"
    verbose -log "SHLIB_PATH=[getenv SHLIB_PATH]"
 diff --git gcc/testsuite/lib/target-supports.exp gcc/testsuite/lib/target-supports.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c858bd9..9ad5bf6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 64216dfbdb2..446cb549cae 100644
</span> --- gcc/testsuite/lib/target-supports.exp
 +++ gcc/testsuite/lib/target-supports.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8521,7 +8521,7 @@ proc check_effective_target_section_anchors { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8528,7 +8528,7 @@ proc check_effective_target_section_anchors { } {
</span>      return [check_cached_effective_target section_anchors {
        expr { [istarget powerpc*-*-*]
             || [istarget arm*-*-*]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8159,7 +15539,7 @@ index c858bd9..9ad5bf6 100644
</span>  }
  
  # Return 1 if the target supports atomic operations on "int_128" values.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11562,6 +11562,15 @@ proc check_effective_target_arm_thumb2_ok_no_arm_v8_1_lob { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11570,6 +11570,15 @@ proc check_effective_target_arm_thumb2_ok_no_arm_v8_1_lob { } {
</span>      return 0
  }
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8175,8 +15555,84 @@ index c858bd9..9ad5bf6 100644
</span>  # Returns 1 if the target is using glibc, 0 otherwise.
  
  proc check_effective_target_glibc { } {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11959,3 +11968,15 @@ main:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .byte 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Return 1 if the target supports heap-trampoline, 0 otherwise.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc check_effective_target_heap_trampoline {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if { [istarget aarch64*-*-linux*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   || [istarget i?86-*-darwin*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   || [istarget x86_64-*-darwin*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   || [istarget i?86-*-linux*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   || [istarget x86_64-*-linux*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/ubsan-dg.exp gcc/testsuite/lib/ubsan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1c617d89d99..b21f0cbec6f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/ubsan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/ubsan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,7 +31,7 @@ proc check_effective_target_fsanitize_undefined {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # (originally from g++.exp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-proc ubsan_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc ubsan_link_flags { paths needs_cxx } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global srcdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global ld_library_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global shlib_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -43,15 +43,24 @@ proc ubsan_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set shlib_ext [get_shlib_extension]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set ubsan_saved_library_path $ld_library_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Providing -B instead of -L means that it works for targets that use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # spec substitution for handling -static-xxxxx, it also works for targets
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # the use the startfile paths to provide a runpath for uninstalled test.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Each -B option will produce a -L on the link line (for paths that exist).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { $gccpath != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if { [file exists "${gccpath}/libsanitizer/ubsan/.libs/libubsan.a"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      || [file exists "${gccpath}/libsanitizer/ubsan/.libs/libubsan.${shlib_ext}"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     append flags " -B${gccpath}/libsanitizer/ "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     append flags " -B${gccpath}/libsanitizer/ubsan/ "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append flags " -L${gccpath}/libsanitizer/ubsan/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    append flags " -B${gccpath}/libsanitizer/ubsan/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     append ld_library_path ":${gccpath}/libsanitizer/ubsan/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # libasan links to libstdc++, so we must include it for C testcases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { $needs_cxx && ( [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.a"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     || [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}"] ) } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  append flags " -B${gccpath}/libstdc++-v3/src/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }      
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       global tool_root_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -79,6 +88,7 @@ proc ubsan_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global ubsan_saved_ALWAYS_CXXFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global orig_ubsan_options_saved
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     global orig_ubsan_options
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set needs_cxx [lindex $args 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { $orig_ubsan_options_saved == 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Save the original environment.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,9 +102,9 @@ proc ubsan_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set link_flags ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ![is_remote host] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if [info exists TOOL_OPTIONS] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set link_flags "[ubsan_link_flags [get_multilibs ${TOOL_OPTIONS}]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set link_flags "[ubsan_link_flags [get_multilibs ${TOOL_OPTIONS}] $needs_cxx]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      set link_flags "[ubsan_link_flags [get_multilibs]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set link_flags "[ubsan_link_flags [get_multilibs] $needs_cxx]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git gcc/testsuite/obj-c++.dg/gnu-api-2-class-meta.mm gcc/testsuite/obj-c++.dg/gnu-api-2-class-meta.mm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 92852c3..e097453 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 92852c3ecea..e0974539ecf 100644
</span> --- gcc/testsuite/obj-c++.dg/gnu-api-2-class-meta.mm
 +++ gcc/testsuite/obj-c++.dg/gnu-api-2-class-meta.mm
 @@ -19,6 +19,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8188,7 +15644,7 @@ index 92852c3..e097453 100644
</span>  /* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { target { *-*-darwin* } } } */
  // { dg-additional-options "-Wno-objc-root-class" }
 diff --git gcc/testsuite/obj-c++.dg/gnu-api-2-class.mm gcc/testsuite/obj-c++.dg/gnu-api-2-class.mm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f6e3d8d..a23968a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f6e3d8d22e0..a23968a89b5 100644
</span> --- gcc/testsuite/obj-c++.dg/gnu-api-2-class.mm
 +++ gcc/testsuite/obj-c++.dg/gnu-api-2-class.mm
 @@ -6,6 +6,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8199,8 +15655,35 @@ index f6e3d8d..a23968a 100644
</span>  /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
  /* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { target { *-*-darwin* } } } */
  // { dg-additional-options "-Wno-objc-root-class" }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/obj-c++.dg/has-feature.mm gcc/testsuite/obj-c++.dg/has-feature.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..77c76173bfb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/has-feature.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-do compile }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CXX11 (__cplusplus >= 201103L)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_feature (objc_instancetype)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_feature (objc_default_synthesize_properties)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// C features should not be available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_extension (c_alignas) || __has_feature (c_alignof)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// C++ features should be available (given the right standard).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_constexpr) != CXX11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span> diff --git gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1155db5..e0dd806 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1155db5f83f..e0dd8062373 100644
</span> --- gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm
 +++ gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm
 @@ -18,4 +18,4 @@ void *foo (void)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8210,7 +15693,7 @@ index 1155db5..e0dd806 100644
</span> -/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t19\n" { target { *-*-darwin* && {  lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t___CFConstantStringClassReference\n\t.(long|word)\t1992\n\t.space 4\n\t.(quad|xword)\t.*\n\t.(quad|xword)\t19\n} { target { *-*-darwin* && {  lp64 } } } } } */
 diff --git gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e1dad12..eb89710 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e1dad124cd6..eb89710d890 100644
</span> --- gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
 +++ gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
 @@ -33,4 +33,4 @@ const NSConstantString *appKey = @"MyApp";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8220,7 +15703,7 @@ index e1dad12..eb89710 100644
</span> -/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t_OBJC_CLASS_._NSConstantString\n\t.(quad|xword)\t.*\n\t.(long|word)\t5\n\t.space} { target { *-*-darwin* && { lp64 } } } } } */
 diff --git gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 30a9228..c1b58dc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 30a9228a64e..c1b58dc6cb8 100644
</span> --- gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
 +++ gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
 @@ -33,4 +33,4 @@ const XStr *appKey = @"MyApp";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8230,7 +15713,7 @@ index 30a9228..c1b58dc 100644
</span> -/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._XStr\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t_OBJC_CLASS_._XStr\n\t.(quad|xword)\t.*\n\t.(long|word)\t5\n\t.space} { target { *-*-darwin* && { lp64 } } } } } */
 diff --git gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a1a1429..8457f46 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a1a14295e90..8457f46be53 100644
</span> --- gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
 +++ gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
 @@ -25,4 +25,4 @@ const NSConstantString *appKey = @"MyApp";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8240,7 +15723,7 @@ index a1a1429..8457f46 100644
</span> -/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t_OBJC_CLASS_._NSConstantString\n\t.(quad|xword)\t.*\n\t.(long|word)\t5\n\t.space} { target { *-*-darwin* && { lp64 } } } } } */
 diff --git gcc/testsuite/objc.dg/gnu-api-2-class-meta.m gcc/testsuite/objc.dg/gnu-api-2-class-meta.m
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6c1c76a..41a48f9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6c1c76a87a3..41a48f9c685 100644
</span> --- gcc/testsuite/objc.dg/gnu-api-2-class-meta.m
 +++ gcc/testsuite/objc.dg/gnu-api-2-class-meta.m
 @@ -19,6 +19,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8252,7 +15735,7 @@ index 6c1c76a..41a48f9 100644
</span>  /* { dg-additional-options "-Wno-objc-root-class" } */
  /* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { target { *-*-darwin* } } } */
 diff --git gcc/testsuite/objc.dg/gnu-api-2-class.m gcc/testsuite/objc.dg/gnu-api-2-class.m
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d11dae0..1386ebc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d11dae0e6dc..1386ebc2f99 100644
</span> --- gcc/testsuite/objc.dg/gnu-api-2-class.m
 +++ gcc/testsuite/objc.dg/gnu-api-2-class.m
 @@ -6,6 +6,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8263,8 +15746,40 @@ index d11dae0..1386ebc 100644
</span>  /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
  /* { dg-additional-options "-Wno-objc-root-class" } */
  /* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { target { *-*-darwin* } } } */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/objc.dg/has-feature.m gcc/testsuite/objc.dg/has-feature.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..168b0ce16e7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/objc.dg/has-feature.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define HAVE_C11 (__STDC_VERSION__ >= 201112L)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_feature (objc_instancetype)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_feature (objc_default_synthesize_properties)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* C features should be available as extensions.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !__has_extension (c_alignas)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* And as features given the appropriate C standard.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (c_alignas) != HAVE_C11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Shouldn't have C++ features even as extensions.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __has_feature (cxx_constexpr) || __has_extension (cxx_constexpr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span> diff --git gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1155db5..e0dd806 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1155db5f83f..e0dd8062373 100644
</span> --- gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m
 +++ gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m
 @@ -18,4 +18,4 @@ void *foo (void)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8274,7 +15789,7 @@ index 1155db5..e0dd806 100644
</span> -/* { dg-final { scan-assembler ".quad\t___CFConstantStringClassReference\n\t.long\t1992\n\t.space 4\n\t.quad\t.*\n\t.quad\t19\n" { target { *-*-darwin* && {  lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t___CFConstantStringClassReference\n\t.(long|word)\t1992\n\t.space 4\n\t.(quad|xword)\t.*\n\t.(quad|xword)\t19\n} { target { *-*-darwin* && {  lp64 } } } } } */
 diff --git gcc/testsuite/objc.dg/torture/strings/const-str-10.m gcc/testsuite/objc.dg/torture/strings/const-str-10.m
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6565dc2..81b0d32 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6565dc20007..81b0d326c56 100644
</span> --- gcc/testsuite/objc.dg/torture/strings/const-str-10.m
 +++ gcc/testsuite/objc.dg/torture/strings/const-str-10.m
 @@ -34,4 +34,4 @@ const NSConstantString *appKey = @"MyApp";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8284,7 +15799,7 @@ index 6565dc2..81b0d32 100644
</span> -/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t_OBJC_CLASS_._NSConstantString\n\t.(quad|xword)\t.*\n\t.(long|word)\t5\n\t.space} { target { *-*-darwin* && { lp64 } } } } } */
 diff --git gcc/testsuite/objc.dg/torture/strings/const-str-11.m gcc/testsuite/objc.dg/torture/strings/const-str-11.m
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2bdb153..b044b0f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2bdb1531e1d..b044b0fd8c7 100644
</span> --- gcc/testsuite/objc.dg/torture/strings/const-str-11.m
 +++ gcc/testsuite/objc.dg/torture/strings/const-str-11.m
 @@ -33,4 +33,4 @@ const XStr *appKey = @"MyApp";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8294,7 +15809,7 @@ index 2bdb153..b044b0f 100644
</span> -/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._XStr\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t_OBJC_CLASS_._XStr\n\t.(quad|xword)\t.*\n\t.(long|word)\t5\n\t.space} { target { *-*-darwin* && { lp64 } } } } } */
 diff --git gcc/testsuite/objc.dg/torture/strings/const-str-9.m gcc/testsuite/objc.dg/torture/strings/const-str-9.m
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 966ea5e..d3d2916 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 966ea5e498d..d3d2916ed06 100644
</span> --- gcc/testsuite/objc.dg/torture/strings/const-str-9.m
 +++ gcc/testsuite/objc.dg/torture/strings/const-str-9.m
 @@ -25,4 +25,4 @@ const NSConstantString *appKey = @"MyApp";
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8303,8 +15818,21 @@ index 966ea5e..d3d2916 100644
</span>  /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
 -/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
 +/* { dg-final { scan-assembler {.(quad|xword)\t_OBJC_CLASS_._NSConstantString\n\t.(quad|xword)\t.*\n\t.(long|word)\t5\n\t.space} { target { *-*-darwin* && { lp64 } } } } } */
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/toplev.cc gcc/toplev.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 055e0642f77..8eec63b63d4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/toplev.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/toplev.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1364,7 +1364,7 @@ process_options (bool no_backend)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      option flags in use.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (version_flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      print_version (stderr, "", true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* We already printed the version header in main ().  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (!quiet_flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fputs ("options passed: ", stderr);
</span> diff --git gcc/tree-nested.cc gcc/tree-nested.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3956e49..9e1f4bf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3c2cf46e3f4..1bc6c7b546b 100644
</span> --- gcc/tree-nested.cc
 +++ gcc/tree-nested.cc
 @@ -611,6 +611,14 @@ get_trampoline_type (struct nesting_info *info)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8313,7 +15841,7 @@ index 3956e49..9e1f4bf 100644
</span>  
 +  /* When trampolines are created off-stack then the only thing we need in the
 +     local frame is a single pointer.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (flag_off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (flag_trampoline_impl == TRAMPOLINE_IMPL_HEAP)
</span> +    {
 +      trampoline_type = build_pointer_type (void_type_node);
 +      return trampoline_type;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8322,7 +15850,7 @@ index 3956e49..9e1f4bf 100644
</span>    align = TRAMPOLINE_ALIGNMENT;
    size = TRAMPOLINE_SIZE;
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2786,17 +2794,27 @@ convert_tramp_reference_op (tree *tp, int *walk_subtrees, void *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2791,17 +2799,27 @@ convert_tramp_reference_op (tree *tp, int *walk_subtrees, void *data)
</span>  
        /* Compute the address of the field holding the trampoline.  */
        x = get_frame_field (info, target_context, x, &wi->gsi);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8336,7 +15864,7 @@ index 3956e49..9e1f4bf 100644
</span> +      /* APB: We don't need to do the adjustment calls when using off-stack
 +       trampolines, any such adjustment will be done when the off-stack
 +       trampoline is created.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if (!descr && flag_off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (!descr && flag_trampoline_impl == TRAMPOLINE_IMPL_HEAP)
</span> + x = gsi_gimplify_val (info, x, &wi->gsi);
        else
 -      builtin = builtin_decl_implicit (BUILT_IN_ADJUST_TRAMPOLINE);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8359,7 +15887,7 @@ index 3956e49..9e1f4bf 100644
</span>  
        /* Cast back to the proper function type.  */
        x = build1 (NOP_EXPR, TREE_TYPE (t), x);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3375,6 +3393,7 @@ build_init_call_stmt (struct nesting_info *info, tree decl, tree field,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3380,6 +3398,7 @@ build_init_call_stmt (struct nesting_info *info, tree decl, tree field,
</span>  static void
  finalize_nesting_tree_1 (struct nesting_info *root)
  {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8367,14 +15895,14 @@ index 3956e49..9e1f4bf 100644
</span>    gimple_seq stmt_list = NULL;
    gimple *stmt;
    tree context = root->context;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3506,9 +3525,48 @@ finalize_nesting_tree_1 (struct nesting_info *root)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3511,9 +3530,48 @@ finalize_nesting_tree_1 (struct nesting_info *root)
</span>     if (!field)
            continue;
  
 -        x = builtin_decl_implicit (BUILT_IN_INIT_TRAMPOLINE);
 -        stmt = build_init_call_stmt (root, i->context, field, x);
 -        gimple_seq_add_stmt (&stmt_list, stmt);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         if (flag_off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (flag_trampoline_impl == TRAMPOLINE_IMPL_HEAP)
</span> +     {
 +            /* We pass a whole bunch of arguments to the builtin function that
 +               creates the off-stack trampoline, these are
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8399,13 +15927,13 @@ index 3956e49..9e1f4bf 100644
</span> +                   root->frame_decl, field, NULL_TREE);
 +            arg3 = build_addr (x);
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+             x = builtin_decl_implicit (BUILT_IN_NESTED_PTR_CREATED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        x = builtin_decl_explicit (BUILT_IN_GCC_NESTED_PTR_CREATED);
</span> +       stmt = gimple_build_call (x, 3, arg1, arg2, arg3);
 +            gimple_seq_add_stmt (&stmt_list, stmt);
 +
 +            /* This call to delete the nested function trampoline is added to
 +               the cleanup list, and called when we exit the current scope.  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+             x = builtin_decl_implicit (BUILT_IN_NESTED_PTR_DELETED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        x = builtin_decl_explicit (BUILT_IN_GCC_NESTED_PTR_DELETED);
</span> +       stmt = gimple_build_call (x, 0);
 +            gimple_seq_add_stmt (&cleanup_list, stmt);
 +          }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8419,7 +15947,7 @@ index 3956e49..9e1f4bf 100644
</span>   }
      }
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3533,11 +3591,40 @@ finalize_nesting_tree_1 (struct nesting_info *root)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3538,11 +3596,40 @@ finalize_nesting_tree_1 (struct nesting_info *root)
</span>    /* If we created initialization statements, insert them.  */
    if (stmt_list)
      {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8428,9 +15956,9 @@ index 3956e49..9e1f4bf 100644
</span> -      bind = gimple_seq_first_stmt_as_a_bind (gimple_body (context));
 -      gimple_seq_add_seq (&stmt_list, gimple_bind_body (bind));
 -      gimple_bind_set_body (bind, stmt_list);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if (flag_off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (flag_trampoline_impl == TRAMPOLINE_IMPL_HEAP)
</span> + {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+         /* Handle the new, off stack trampolines.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* Handle off-stack trampolines.  */
</span> +   gbind *bind;
 +        annotate_all_with_location (stmt_list, DECL_SOURCE_LOCATION (context));
 +        annotate_all_with_location (cleanup_list, DECL_SOURCE_LOCATION (context));
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8441,7 +15969,7 @@ index 3956e49..9e1f4bf 100644
</span> +
 +        if (cleanup_list != NULL)
 +          {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+             /* We Maybe shouldn't be creating this try/finally if -fno-exceptions is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        /* Maybe we shouldn't be creating this try/finally if -fno-exceptions is
</span> +          in use.  If this is the case, then maybe we should, instead, be
 +               inserting the cleanup code onto every path out of this function?  Not
 +               yet figured out how we would do this.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8466,35 +15994,148 @@ index 3956e49..9e1f4bf 100644
</span>  
    /* If a chain_decl was created, then it needs to be registered with
 diff --git gcc/tree.cc gcc/tree.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e6593de..0a81ce7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6b28eb9f10d..7b0f08fba4e 100644
</span> --- gcc/tree.cc
 +++ gcc/tree.cc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9795,6 +9795,23 @@ build_common_builtin_nodes (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9796,6 +9796,28 @@ build_common_builtin_nodes (void)
</span>                   "__builtin_nonlocal_goto",
                        ECF_NORETURN | ECF_NOTHROW);
  
 +  tree ptr_ptr_type_node = build_pointer_type (ptr_type_node);
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ftype = build_function_type_list (void_type_node,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              ptr_type_node, // void *chain
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              ptr_type_node, // void *func
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              ptr_ptr_type_node, // void **dst
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              NULL_TREE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  local_define_builtin ("__builtin_nested_func_ptr_created", ftype,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  BUILT_IN_NESTED_PTR_CREATED,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  "__builtin_nested_func_ptr_created", ECF_NOTHROW);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ftype = build_function_type_list (void_type_node,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                              NULL_TREE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  local_define_builtin ("__builtin_nested_func_ptr_deleted", ftype,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  BUILT_IN_NESTED_PTR_DELETED,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  "__builtin_nested_func_ptr_deleted", ECF_NOTHROW);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!builtin_decl_explicit_p (BUILT_IN_GCC_NESTED_PTR_CREATED))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      ftype = build_function_type_list (void_type_node,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  ptr_type_node, // void *chain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  ptr_type_node, // void *func
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  ptr_ptr_type_node, // void **dst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      local_define_builtin ("__builtin___gcc_nested_func_ptr_created", ftype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      BUILT_IN_GCC_NESTED_PTR_CREATED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      "__gcc_nested_func_ptr_created", ECF_NOTHROW);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (!builtin_decl_explicit_p (BUILT_IN_GCC_NESTED_PTR_DELETED))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      ftype = build_function_type_list (void_type_node, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      local_define_builtin ("__builtin___gcc_nested_func_ptr_deleted", ftype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      BUILT_IN_GCC_NESTED_PTR_DELETED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                      "__gcc_nested_func_ptr_deleted", ECF_NOTHROW);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span> +
    ftype = build_function_type_list (void_type_node,
                                    ptr_type_node, ptr_type_node, NULL_TREE);
    local_define_builtin ("__builtin_setjmp_setup", ftype,
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intl/Makefile.in intl/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 409d693c48e..5beebdc152c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intl/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intl/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,7 +54,7 @@ CTAGS = @CTAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ETAGS = @ETAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MKID = @MKID@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-COMPILE = $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(DEFS-$@) $(INCLUDES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++COMPILE = $(CC) -c $(CPPFLAGS) $(CFLAGS) @PICFLAG@ $(DEFS) $(DEFS-$@) $(INCLUDES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HEADERS = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gmo.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intl/configure intl/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 03f40487a92..79bb5831a47 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intl/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intl/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -623,6 +623,8 @@ ac_header_list=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_subst_vars='LTLIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BISON3_NO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BISON3_YES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ INCINTL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -731,6 +733,7 @@ with_libintl_prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_libintl_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ac_precious_vars='build_alias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_alias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1356,6 +1359,7 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --disable-rpath         do not hardcode runtime library paths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-maintainer-mode enable rules only needed by maintainers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-host-shared    build host code as shared libraries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build host code as PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Optional Packages:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6852,15 +6856,31 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-host-shared was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_host_shared+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enableval=$enable_host_shared; PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_shared;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_config_files="$ac_config_files Makefile config.intl"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat >confcache <<\_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git intl/configure.ac intl/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 16a740aa230..81aa831f59f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- intl/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ intl/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,10 +83,25 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(BISON3_YES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(BISON3_NO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--enable-host-shared],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          [build host code as shared libraries])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[PICFLAG=-fPIC], [PICFLAG=])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       [build host code as shared libraries])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       [build host code as PIE])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_pie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CONFIG_FILES(Makefile config.intl)
</span> diff --git libada/configure libada/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 162d973..9c8b133 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 162d9731f26..9c8b133d817 100755
</span> --- libada/configure
 +++ libada/configure
 @@ -3212,6 +3212,9 @@ case "${host}" in
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8508,7 +16149,7 @@ index 162d973..9c8b133 100755
</span>   # PIC is the default.
        ;;
 diff --git libatomic/Makefile.am libatomic/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d88515e..3c921f4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d88515e4a03..c45f19251bc 100644
</span> --- libatomic/Makefile.am
 +++ libatomic/Makefile.am
 @@ -65,8 +65,13 @@ libatomic_version_script =
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8522,12 +16163,12 @@ index d88515e..3c921f4 100644
</span>  
 -libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) $(lt_host_flags)
 +libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       $(lt_host_flags) $(libatomic_darwin_rpath) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(lt_host_flags) $(libatomic_darwin_rpath)
</span>  libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c init.c \
        fenv.c fence.c flag.c
  
 diff --git libatomic/Makefile.in libatomic/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 80d2565..179f921 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 80d25653dc7..47c1e5354bd 100644
</span> --- libatomic/Makefile.in
 +++ libatomic/Makefile.in
 @@ -403,7 +403,12 @@ noinst_LTLIBRARIES = libatomic_convenience.la
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8539,13 +16180,13 @@ index 80d2565..179f921 100644
</span> +@ENABLE_DARWIN_AT_RPATH_TRUE@    -Wc,-nodefaultrpaths \
 +@ENABLE_DARWIN_AT_RPATH_TRUE@ -Wl,-rpath,@loader_path
 +libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       $(lt_host_flags) $(libatomic_darwin_rpath) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(lt_host_flags) $(libatomic_darwin_rpath)
</span> +
  libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c init.c \
        fenv.c fence.c flag.c
  
 diff --git libatomic/configure libatomic/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 92853dd..935d555 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 92853dd8a45..9871ef4bfb7 100755
</span> --- libatomic/configure
 +++ libatomic/configure
 @@ -658,6 +658,8 @@ OPT_LDFLAGS
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8565,16 +16206,26 @@ index 92853dd..935d555 100755
</span>  enable_maintainer_mode
  enable_symvers
  enable_werror
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1452,6 +1455,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1452,6 +1455,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-maintainer-mode
                            enable make rules and dependencies not useful (and
                            sometimes confusing) to the casual installer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9576,6 +9581,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7603,7 +7609,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9576,6 +9582,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8591,8 +16242,9 @@ index 92853dd..935d555 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8600,15 +16252,16 @@ index 92853dd..935d555 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8622,49 +16275,41 @@ index 92853dd..935d555 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9593,10 +9639,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9593,9 +9642,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11382,7 +11437,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11382,7 +11435,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11385 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11440 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11438 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11488,7 +11543,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11488,7 +11541,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11491 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11546 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11544 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11773,6 +11828,15 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11773,6 +11826,15 @@ fi
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8680,7 +16325,7 @@ index 92853dd..935d555 100755
</span>  # For libtool versioning info, format is CURRENT:REVISION:AGE
  libtool_VERSION=3:0:2
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15900,6 +15964,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15900,6 +15962,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8692,7 +16337,7 @@ index 92853dd..935d555 100755
</span>  if test -z "${LIBAT_BUILD_VERSIONED_SHLIB_TRUE}" && test -z "${LIBAT_BUILD_VERSIONED_SHLIB_FALSE}"; then
    as_fn_error $? "conditional \"LIBAT_BUILD_VERSIONED_SHLIB\" was never defined.
 diff --git libatomic/configure.ac libatomic/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5563551..6b9d308 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5563551aaae..6b9d3085806 100644
</span> --- libatomic/configure.ac
 +++ libatomic/configure.ac
 @@ -156,6 +156,8 @@ AC_SUBST(enable_shared)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8705,7 +16350,7 @@ index 5563551..6b9d308 100644
</span>  libtool_VERSION=3:0:2
  AC_SUBST(libtool_VERSION)
 diff --git libatomic/testsuite/Makefile.in libatomic/testsuite/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 333980ec..8bc7056 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 333980ec2c1..8bc70562e5b 100644
</span> --- libatomic/testsuite/Makefile.in
 +++ libatomic/testsuite/Makefile.in
 @@ -262,6 +262,7 @@ target_alias = @target_alias@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8717,19 +16362,29 @@ index 333980ec..8bc7056 100644
</span>  toolexeclibdir = @toolexeclibdir@
  top_build_prefix = @top_build_prefix@
 diff --git libatomic/testsuite/lib/libatomic.exp libatomic/testsuite/lib/libatomic.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 38f3e56..300e509 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 38f3e5673e2..a2589234a07 100644
</span> --- libatomic/testsuite/lib/libatomic.exp
 +++ libatomic/testsuite/lib/libatomic.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -152,6 +152,7 @@ proc libatomic_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -147,11 +147,15 @@ proc libatomic_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { $blddir != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   lappend ALWAYS_CFLAGS "additional_flags=-I${blddir}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  lappend ALWAYS_CFLAGS "ldflags=-L${blddir}/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if [istarget *-*-darwin*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      lappend ALWAYS_CFLAGS "ldflags=-L${blddir}/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span>      lappend ALWAYS_CFLAGS "additional_flags=-I${srcdir}/.."
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     if [istarget *-*-darwin*] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  lappend ALWAYS_CFLAGS "additional_flags=-B${blddir}/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if [istarget *-*-darwin*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if [istarget *-*-darwin\[89\]*] {
</span>   lappend ALWAYS_CFLAGS "additional_flags=-shared-libgcc"
      }
  
 diff --git libbacktrace/Makefile.in libbacktrace/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 08cdd21..8898251 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 08cdd21fb40..8898251161d 100644
</span> --- libbacktrace/Makefile.in
 +++ libbacktrace/Makefile.in
 @@ -15,7 +15,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8742,7 +16397,7 @@ index 08cdd21..8898251 100644
</span>  # Redistribution and use in source and binary forms, with or without
  # modification, are permitted provided that the following conditions are
 diff --git libbacktrace/backtrace.c libbacktrace/backtrace.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d28575e..cf64916 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d28575ec897..cf6491682a7 100644
</span> --- libbacktrace/backtrace.c
 +++ libbacktrace/backtrace.c
 @@ -70,6 +70,13 @@ unwind (struct _Unwind_Context *context, void *vdata)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8760,7 +16415,7 @@ index d28575e..cf64916 100644
</span>    pc = _Unwind_GetIPInfo (context, &ip_before_insn);
  #else
 diff --git libbacktrace/configure libbacktrace/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 17f470a..957095a 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 17f470a4bec..6bd8394387e 100755
</span> --- libbacktrace/configure
 +++ libbacktrace/configure
 @@ -675,6 +675,8 @@ PIC_FLAG
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8780,16 +16435,26 @@ index 17f470a..957095a 100755
</span>  enable_largefile
  enable_cet
  enable_werror
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1447,6 +1450,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1447,6 +1450,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --disable-largefile     omit support for large files
    --enable-cet            enable Intel CET in target libraries [default=auto]
    --disable-werror        disable building with -Werror
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9705,6 +9710,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7999,7 +8005,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9705,6 +9711,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8806,8 +16471,9 @@ index 17f470a..957095a 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8815,15 +16481,16 @@ index 17f470a..957095a 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8837,49 +16504,41 @@ index 17f470a..957095a 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9722,10 +9768,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9722,9 +9771,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11511,7 +11566,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11511,7 +11564,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11514 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11569 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11567 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11617,7 +11672,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11617,7 +11670,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11620 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11675 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11673 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11856,6 +11911,15 @@ CC="$lt_save_CC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11856,6 +11909,15 @@ CC="$lt_save_CC"
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8895,7 +16554,7 @@ index 17f470a..957095a 100755
</span>  # Check whether --enable-largefile was given.
  if test "${enable_largefile+set}" = set; then :
    enableval=$enable_largefile;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14273,6 +14337,10 @@ if test -z "${HAVE_DWZ_TRUE}" && test -z "${HAVE_DWZ_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14273,6 +14335,10 @@ if test -z "${HAVE_DWZ_TRUE}" && test -z "${HAVE_DWZ_FALSE}"; then
</span>    as_fn_error $? "conditional \"HAVE_DWZ\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8907,7 +16566,7 @@ index 17f470a..957095a 100755
</span>    as_fn_error $? "conditional \"HAVE_ELF\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libbacktrace/configure.ac libbacktrace/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 597c970..7f89bf3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 597c9705db8..7f89bf33c6b 100644
</span> --- libbacktrace/configure.ac
 +++ libbacktrace/configure.ac
 @@ -84,6 +84,8 @@ AM_CONDITIONAL(HAVE_DWZ, test "$DWZ" != "")
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8920,7 +16579,7 @@ index 597c970..7f89bf3 100644
</span>  
  backtrace_supported=yes
 diff --git libbacktrace/simple.c libbacktrace/simple.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6a1a1c9..811255a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6a1a1c92a12..811255ab6b5 100644
</span> --- libbacktrace/simple.c
 +++ libbacktrace/simple.c
 @@ -65,6 +65,13 @@ simple_unwind (struct _Unwind_Context *context, void *vdata)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -8937,92 +16596,8 @@ index 6a1a1c9..811255a 100644
</span>  #ifdef HAVE_GETIPINFO
    pc = _Unwind_GetIPInfo (context, &ip_before_insn);
  #else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libcc1/Makefile.am libcc1/Makefile.am
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6e3a34f..44d282c 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libcc1/Makefile.am
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libcc1/Makefile.am
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -55,6 +55,10 @@ marshall_c_source = marshall-c.hh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- marshall_cxx_source = marshall-cp.hh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcc1plugin_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1plugin.sym
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcc1plugin_la_LDFLAGS += -Wc,-nodefaultrpaths
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcc1plugin_la_LDFLAGS += -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcc1plugin_la_SOURCES = libcc1plugin.cc context.cc context.hh \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(shared_source) $(marshall_c_source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcc1plugin.lo_CPPFLAGS = $(CPPFLAGS_FOR_C)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -65,6 +69,10 @@ libcc1plugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(CXXFLAGS) $(libcc1plugin_la_LDFLAGS) $(LTLDFLAGS) -o $@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcp1plugin_la_LDFLAGS = -module -export-symbols $(srcdir)/libcp1plugin.sym
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcp1plugin_la_LDFLAGS += -Wc,-nodefaultrpaths
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcp1plugin_la_LDFLAGS += -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcp1plugin_la_SOURCES = libcp1plugin.cc context.cc context.hh \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(shared_source) $(marshall_cxx_source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcp1plugin.lo_CPPFLAGS = $(CPPFLAGS_FOR_CXX)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -76,6 +84,10 @@ libcp1plugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcc1_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1.sym
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcc1_la_LDFLAGS += -Wc,-nodefaultrpaths
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcc1_la_LDFLAGS += -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcc1_la_SOURCES = findcomp.cc libcc1.cc libcp1.cc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           compiler.cc compiler.hh names.cc names.hh $(shared_source) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $(marshall_c_source) $(marshall_cxx_source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libcc1/Makefile.in libcc1/Makefile.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index f8f590d..440567a 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libcc1/Makefile.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libcc1/Makefile.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -90,6 +90,12 @@ build_triplet = @build@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- host_triplet = @host@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- target_triplet = @target@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- @DARWIN_DYNAMIC_LOOKUP_TRUE@am__append_1 = -Wl,-undefined,dynamic_lookup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_2 = -Wc,-nodefaultrpaths \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@ENABLE_DARWIN_AT_RPATH_TRUE@     -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_3 = -Wc,-nodefaultrpaths \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@ENABLE_DARWIN_AT_RPATH_TRUE@     -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_4 = -Wc,-nodefaultrpaths \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@ENABLE_DARWIN_AT_RPATH_TRUE@     -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- subdir = .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -405,7 +411,8 @@ shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- marshall_c_source = marshall-c.hh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- marshall_cxx_source = marshall-cp.hh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--libcc1plugin_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1plugin.sym
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcc1plugin_la_LDFLAGS = -module -export-symbols \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $(srcdir)/libcc1plugin.sym $(am__append_2)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcc1plugin_la_SOURCES = libcc1plugin.cc context.cc context.hh \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(shared_source) $(marshall_c_source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -416,7 +423,8 @@ libcc1plugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(CXXFLAGS) $(libcc1plugin_la_LDFLAGS) $(LTLDFLAGS) -o $@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--libcp1plugin_la_LDFLAGS = -module -export-symbols $(srcdir)/libcp1plugin.sym
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcp1plugin_la_LDFLAGS = -module -export-symbols \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $(srcdir)/libcp1plugin.sym $(am__append_3)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcp1plugin_la_SOURCES = libcp1plugin.cc context.cc context.hh \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(shared_source) $(marshall_cxx_source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -428,7 +436,8 @@ libcp1plugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(CXXFLAGS) $(libcp1plugin_la_LDFLAGS) $(LTLDFLAGS) -o $@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--libcc1_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1.sym
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+libcc1_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1.sym \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $(am__append_4)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libcc1_la_SOURCES = findcomp.cc libcc1.cc libcp1.cc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           compiler.cc compiler.hh names.cc names.hh $(shared_source) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           $(marshall_c_source) $(marshall_cxx_source)
</span> diff --git libcc1/configure libcc1/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 01cfb28..85d29f1 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 01cfb2806da..78519868102 100755
</span> --- libcc1/configure
 +++ libcc1/configure
 @@ -787,6 +787,7 @@ with_pic
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9033,16 +16608,26 @@ index 01cfb28..85d29f1 100755
</span>  enable_cet
  with_gcc_major_version_only
  enable_werror_always
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1439,6 +1440,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1439,6 +1440,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-cet            enable Intel CET in host libraries [default=auto]
    --enable-werror-always  enable -Werror despite compiler version
    --enable-plugin         enable plugin support
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8971,6 +8974,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7266,7 +7270,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8971,6 +8975,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9059,8 +16644,9 @@ index 01cfb28..85d29f1 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9068,15 +16654,16 @@ index 01cfb28..85d29f1 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9090,49 +16677,41 @@ index 01cfb28..85d29f1 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8988,10 +9032,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8988,9 +9035,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10777,7 +10830,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10777,7 +10828,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 10780 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 10833 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10831 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10883,7 +10936,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10883,7 +10934,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 10886 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 10939 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10937 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12165,6 +12218,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12165,6 +12216,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9149,8 +16728,9 @@ index 01cfb28..85d29f1 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9158,15 +16738,16 @@ index 01cfb28..85d29f1 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9180,39 +16761,373 @@ index 01cfb28..85d29f1 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12182,12 +12276,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12182,12 +12276,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcody/Makefile.in libcody/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7eaf8ace8ce..0ff1625a39f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcody/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcody/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,7 +31,7 @@ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXOPTS += $(filter-out -DHAVE_CONFIG_H,@DEFS@) -include config.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Linker options
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LDFLAGS := @LDFLAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LDFLAGS := @LDFLAGS@ @LD_PICFLAG@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBS := @LIBS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Per-source & per-directory compile flags (warning: recursive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcody/configure libcody/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index da52a5cfca5..0e536c0ccb0 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcody/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcody/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -591,7 +591,10 @@ configure_args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ RANLIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EXCEPTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LD_PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OBJEXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EXEEXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_ct_CXX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -653,6 +656,7 @@ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_checking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_exceptions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ac_precious_vars='build_alias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1286,6 +1290,7 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           yes,no,all,none,release. Flags are: misc,valgrind or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           other strings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-host-shared    build host code as shared libraries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build host code as PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-exceptions     enable exceptions & rtti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Optional Packages:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2635,11 +2640,34 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-host-shared was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_host_shared+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enableval=$enable_host_shared; PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_shared;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-exceptions was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcody/configure.ac libcody/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 960191ecb72..14e8dd4a226 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcody/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcody/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -63,9 +63,31 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--enable-host-shared],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          [build host code as shared libraries])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[PICFLAG=-fPIC], [PICFLAG=])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as shared libraries])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as PIE])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_pie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=-pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LD_PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(LD_PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ NMS_ENABLE_EXCEPTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcpp/configure libcpp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 75145390215..85168273cd1 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcpp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcpp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -625,6 +625,8 @@ ac_includes_default="\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_subst_vars='LTLIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CET_HOST_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ USED_CATALOGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PACKAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -738,6 +740,7 @@ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_checking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_canonical_system_headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_cet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_valgrind_annotations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1379,6 +1382,7 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-canonical-system-headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           enable or disable system headers canonicalization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-host-shared    build host code as shared libraries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build host code as PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-cet            enable Intel CET in host libraries [default=auto]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-valgrind-annotations
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           enable valgrind runtime interaction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7605,7 +7609,23 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-host-shared was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_host_shared+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enableval=$enable_host_shared; PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_shared;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcpp/configure.ac libcpp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9b6042518e5..d25bf5f414f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcpp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcpp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -211,8 +211,23 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--enable-host-shared],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          [build host code as shared libraries])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[PICFLAG=-fPIC], [PICFLAG=])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as shared libraries])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as PIE])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_pie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable Intel CET on Intel CET enabled host if jit is enabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcpp/include/cpplib.h libcpp/include/cpplib.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index abdc207d1a1..073c9e8bf2f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcpp/include/cpplib.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcpp/include/cpplib.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -721,6 +721,9 @@ struct cpp_callbacks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Callback to determine whether a built-in function is recognized.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int (*has_builtin) (cpp_reader *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Callback to determine whether a feature is available.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int (*has_feature) (cpp_reader *, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Callback that can change a user lazy into normal macro.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   void (*user_lazy_macro) (cpp_reader *, cpp_macro *, unsigned);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -925,7 +928,9 @@ enum cpp_builtin_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   BT_HAS_STD_ATTRIBUTE,           /* `__has_c_attribute(x)' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   BT_HAS_BUILTIN,         /* `__has_builtin(x)' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   BT_HAS_INCLUDE,         /* `__has_include(x)' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  BT_HAS_INCLUDE_NEXT             /* `__has_include_next(x)' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  BT_HAS_INCLUDE_NEXT,            /* `__has_include_next(x)' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  BT_HAS_FEATURE,         /* `__has_feature(x)' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  BT_HAS_EXTENSION                /* `__has_extension(x)' */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define CPP_HASHNODE(HNODE)       ((cpp_hashnode *) (HNODE))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcpp/init.cc libcpp/init.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f4ab83d2145..aefaf3706cd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcpp/init.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcpp/init.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -420,6 +420,8 @@ static const struct builtin_macro builtin_array[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   B("__has_builtin",     BT_HAS_BUILTIN,   true),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   B("__has_include",     BT_HAS_INCLUDE,   true),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   B("__has_include_next",BT_HAS_INCLUDE_NEXT,   true),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  B("__has_feature",     BT_HAS_FEATURE, true),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  B("__has_extension",   BT_HAS_EXTENSION, true),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Keep builtins not used for -traditional-cpp at the end, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      update init_builtins() if any more are added.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   B("_Pragma",           BT_PRAGMA,        true),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcpp/macro.cc libcpp/macro.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8ebf360c03c..d8ce51bbbda 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcpp/macro.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcpp/macro.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -677,6 +677,12 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       number = builtin_has_include (pfile, node,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               node->value.builtin == BT_HAS_INCLUDE_NEXT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case BT_HAS_FEATURE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case BT_HAS_EXTENSION:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      number = pfile->cb.has_feature (pfile,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                node->value.builtin == BT_HAS_FEATURE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (result == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libdecnumber/configure libdecnumber/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index da5302f9315..d805fdeab5a 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libdecnumber/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libdecnumber/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -626,6 +626,8 @@ ac_subst_vars='LTLIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CET_HOST_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ADDITIONAL_OBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_decimal_float
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -706,6 +708,7 @@ enable_werror_always
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_decimal_float
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_cet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ac_precious_vars='build_alias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1338,6 +1341,7 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   or 'dpd' choses which decimal floating point format
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   to use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-host-shared    build host code as shared libraries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build host code as PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --enable-cet            enable Intel CET in host libraries [default=auto]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Some influential environment variables:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5185,7 +5189,23 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-host-shared was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_host_shared+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enableval=$enable_host_shared; PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_shared;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libdecnumber/configure.ac libdecnumber/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0794031ec83..14f67f926d1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libdecnumber/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libdecnumber/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -100,8 +100,23 @@ AC_C_BIGENDIAN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--enable-host-shared],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          [build host code as shared libraries])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[PICFLAG=-fPIC], [PICFLAG=])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as shared libraries])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as PIE])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_pie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable Intel CET on Intel CET enabled host if jit is enabled.
</span> diff --git libffi/Makefile.am libffi/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c6d6f84..d2ae0c0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c6d6f849c53..d2ae0c04c7b 100644
</span> --- libffi/Makefile.am
 +++ libffi/Makefile.am
 @@ -214,7 +214,12 @@ libffi.map: $(top_srcdir)/libffi.map.in
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9230,7 +17145,7 @@ index c6d6f84..d2ae0c0 100644
</span>  
  AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
 diff --git libffi/Makefile.in libffi/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5524a6a..34e77a4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5524a6a571e..34e77a45d1a 100644
</span> --- libffi/Makefile.in
 +++ libffi/Makefile.in
 @@ -597,7 +597,11 @@ AM_CFLAGS = -Wall -g -fexceptions $(CET_FLAGS) $(am__append_2)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9247,7 +17162,7 @@ index 5524a6a..34e77a4 100644
</span>  AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
  AM_CCASFLAGS = $(AM_CPPFLAGS) $(CET_FLAGS)
 diff --git libffi/configure libffi/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 575641c..002320c 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 575641cca1d..7a68bfdfe51 100755
</span> --- libffi/configure
 +++ libffi/configure
 @@ -667,6 +667,8 @@ MAINT
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9267,16 +17182,26 @@ index 575641c..002320c 100755
</span>  enable_maintainer_mode
  enable_pax_emutramp
  enable_debug
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1465,6 +1468,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1465,6 +1468,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-maintainer-mode
                            enable make rules and dependencies not useful (and
                            sometimes confusing) to the casual installer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9766,6 +9771,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7792,7 +7798,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9766,6 +9772,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9293,8 +17218,9 @@ index 575641c..002320c 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9302,15 +17228,16 @@ index 575641c..002320c 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9324,49 +17251,41 @@ index 575641c..002320c 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9783,10 +9829,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9783,9 +9832,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11572,7 +11627,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11572,7 +11625,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11575 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11630 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11628 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11678,7 +11733,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11678,7 +11731,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11681 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11736 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11734 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12554,6 +12609,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12554,6 +12607,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9383,8 +17302,9 @@ index 575641c..002320c 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9392,15 +17312,16 @@ index 575641c..002320c 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9414,38 +17335,31 @@ index 575641c..002320c 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12571,12 +12667,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12571,12 +12667,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14926,6 +15035,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14926,6 +15030,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span>  # Only expand once:
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9460,7 +17374,7 @@ index 575641c..002320c 100755
</span>  
  if test -n "$ac_tool_prefix"; then
    # Extract the first word of "${ac_tool_prefix}readelf", so it can be a program name with args.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17071,6 +17188,10 @@ if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17071,6 +17183,10 @@ if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
</span>    as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9472,7 +17386,7 @@ index 575641c..002320c 100755
</span>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libffi/configure.ac libffi/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 014d89d..716f20a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 014d89d0423..716f20ae313 100644
</span> --- libffi/configure.ac
 +++ libffi/configure.ac
 @@ -55,6 +55,7 @@ AC_SUBST(CET_FLAGS)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9483,8 +17397,48 @@ index 014d89d..716f20a 100644
</span>  
  AC_CHECK_TOOL(READELF, readelf)
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libffi/doc/version.texi libffi/doc/version.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f2b741e87e4..6261b21fec9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libffi/doc/version.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi/doc/version.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@set UPDATED 27 June 2021
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@set UPDATED-MONTH June 2021
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@set UPDATED 31 August 2022
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@set UPDATED-MONTH August 2022
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @set EDITION 3.4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @set VERSION 3.4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libffi/testsuite/lib/libffi.exp libffi/testsuite/lib/libffi.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7dc7b5d19a3..46a0796ab4c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libffi/testsuite/lib/libffi.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi/testsuite/lib/libffi.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -337,8 +337,13 @@ proc libffi-init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     verbose "libffi_dir $libffi_dir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { $libffi_dir != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set libffi_dir [file dirname ${libffi_dir}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  set libffi_link_flags "-L${libffi_dir}/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  lappend libffi_link_flags "-L${blddircxx}/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if [istarget *-*-darwin*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            set libffi_link_flags "-B${libffi_dir}/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      lappend libffi_link_flags "-B${blddircxx}/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set libffi_link_flags "-L${libffi_dir}/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      lappend libffi_link_flags "-L${blddircxx}/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set_ld_library_path_env_vars
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -382,7 +387,7 @@ proc libffi_target_compile { source dest type options } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Darwin needs a stack execution allowed flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if { [istarget "*-*-darwin9*"] || [istarget "*-*-darwin1*"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   || [istarget "*-*-darwin2*"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   || [istarget "x86_64-*-darwin2*"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   lappend options "additional_flags=-Wl,-allow_stack_execute"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span> diff --git libgcc/config.host libgcc/config.host
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8c56fca..48eed32 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 89e3dbc7c8a..96d093bdc9a 100644
</span> --- libgcc/config.host
 +++ libgcc/config.host
 @@ -82,7 +82,7 @@ m32c*-*-*)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9496,10 +17450,24 @@ index 8c56fca..48eed32 100644
</span>   cpu_type=aarch64
        ;;
  alpha*-*-*)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -241,7 +241,46 @@ case ${host} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -241,9 +241,11 @@ case ${host} in
</span>        ;;
    esac
    tmake_file="$tmake_file t-slibgcc-darwin"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # newer toolsets produce warnings when building for unsupported versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case ${host} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    *-*-darwin1[89]* | *-*-darwin2* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      tmake_file="t-darwin-min-11 $tmake_file"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *-*-darwin1[89]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       tmake_file="t-darwin-min-8 $tmake_file"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *-*-darwin9* | *-*-darwin1[0-7]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -259,7 +261,29 @@ case ${host} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       echo "Warning: libgcc configured to support macOS 10.5" 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span> -  extra_parts="crt3.o libd10-uwfef.a crttms.o crttme.o libemutls_w.a"
 +  # We are not using libtool to build the libs here, so we need to replicate
 +  # a little of the logic around setting Darwin rpaths.  Setting an explicit
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9523,84 +17491,72 @@ index 8c56fca..48eed32 100644
</span> +  if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    tmake_file="$tmake_file t-darwin-rpath "
 +  fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  case ${host} in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *-*-darwin2* | *-*-darwin1[89]* | aarch64*-*-darwin*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tmake_file="t-darwin-min-8 $tmake_file"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *-*-darwin9* | *-*-darwin1[0-7]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tmake_file="t-darwin-min-5 $tmake_file"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *-*-darwin[4-8]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tmake_file="t-darwin-min-1 $tmake_file"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      # Fall back to configuring for the oldest system known to work with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      # all archs and the current sources.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tmake_file="t-darwin-min-5 $tmake_file"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "Warning: libgcc configured to support macOS 10.5" 1>&2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  extra_parts="crt3.o crttms.o crttme.o libemutls_w.a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  extra_parts="crt3.o crttms.o crttme.o libemutls_w.a "
</span>    ;;
  *-*-dragonfly*)
    tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -384,6 +423,17 @@ aarch64*-*-elf | aarch64*-*-rtems*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -402,6 +426,15 @@ aarch64*-*-elf | aarch64*-*-rtems*)
</span>   tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
        md_unwind_header=aarch64/aarch64-unwind.h
        ;;
 +aarch64*-*-darwin*)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       extra_parts="$extra_parts crtfastmath.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  extra_parts="$extra_parts crtfastmath.o libheapt_w.a"
</span> + tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
 +      tmake_file="${tmake_file} ${cpu_type}/t-lse "
 +      tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp "
 +      tmake_file="${tmake_file} t-crtfm"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++       tmake_file="${tmake_file} ${cpu_type}/t-heap-trampoline"
</span> + md_unwind_header=aarch64/aarch64-unwind.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       if test x$off_stack_trampolines = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tmake_file="${tmake_file} ${cpu_type}/t-heap-trampoline"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  fi
</span> + ;;
  aarch64*-*-freebsd*)
        extra_parts="$extra_parts crtfastmath.o"
        tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -408,6 +458,9 @@ aarch64*-*-linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -426,6 +459,7 @@ aarch64*-*-linux*)
</span>   tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
        tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
        tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       if test x$off_stack_trampolines = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tmake_file="${tmake_file} ${cpu_type}/t-heap-trampoline"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tmake_file="${tmake_file} ${cpu_type}/t-heap-trampoline"
</span>   ;;
  aarch64*-*-vxworks7*)
        extra_parts="$extra_parts crtfastmath.o"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -701,12 +754,17 @@ hppa*-*-netbsd*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -719,12 +753,18 @@ hppa*-*-netbsd*)
</span>  i[34567]86-*-darwin*)
        tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
        tm_file="$tm_file i386/darwin-lib.h"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+-       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
</span> + extra_parts="$extra_parts libd10-uwfef.a "
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  extra_parts="$extra_parts crtfastmath.o libheapt_w.a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tmake_file="${tmake_file} i386/t-heap-trampoline"
</span>   ;;
  x86_64-*-darwin*)
        tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
        tm_file="$tm_file i386/darwin-lib.h"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+-       extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
</span> + extra_parts="$extra_parts libd10-uwfef.a "
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if test x$off_stack_trampolines = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tmake_file="${tmake_file} i386/t-heap-trampoline"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  extra_parts="$extra_parts crtfastmath.o libheapt_w.a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tmake_file="${tmake_file} i386/t-heap-trampoline"
</span>   ;;
  i[34567]86-*-elfiamcu)
        tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdftf i386/32/t-softfp i386/32/t-iamcu i386/t-softfp t-softfp t-dfprules"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -773,6 +831,9 @@ x86_64-*-linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -774,6 +814,7 @@ i[34567]86-*-linux*)
</span>   tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
        tm_file="${tm_file} i386/elf-lib.h"
        md_unwind_header=i386/linux-unwind.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       if test x$off_stack_trampolines = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      tmake_file="${tmake_file} i386/t-heap-trampoline"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tmake_file="${tmake_file} i386/t-heap-trampoline"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-kopensolaris*-gnu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -791,6 +832,7 @@ x86_64-*-linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tm_file="${tm_file} i386/elf-lib.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   md_unwind_header=i386/linux-unwind.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tmake_file="${tmake_file} i386/t-heap-trampoline"
</span>   ;;
  x86_64-*-kfreebsd*-gnu)
        extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1169,12 +1230,14 @@ powerpc-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1187,12 +1229,14 @@ powerpc-*-darwin*)
</span>   # We build the darwin10 EH shim for Rosetta (running on x86 machines).
        tm_file="$tm_file i386/darwin-lib.h"
        tmake_file="$tmake_file rs6000/t-ppc64-fp rs6000/t-ibm-ldouble"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9617,12 +17573,15 @@ index 8c56fca..48eed32 100644
</span>  powerpc*-*-freebsd*)
 diff --git libgcc/config/aarch64/heap-trampoline.c libgcc/config/aarch64/heap-trampoline.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..c8b8368
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..b2c69aa5892
</span> --- /dev/null
 +++ libgcc/config/aarch64/heap-trampoline.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,172 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,185 @@
</span> +/* Copyright The GNU Toolchain Authors. */
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++/* libc is required to allocate trampolines.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef inhibit_libc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +#include <unistd.h>
 +#include <sys/mman.h>
 +#include <stdint.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9635,32 +17594,38 @@ index 0000000..c8b8368
</span> +#include <pthread.h>
 +#endif
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++/* HEAP_T_ATTR is provided to allow targets to build the exported functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   as weak definitions.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef HEAP_T_ATTR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define HEAP_T_ATTR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +void *allocate_trampoline_page (void);
 +int get_trampolines_per_page (void);
 +struct tramp_ctrl_data *allocate_tramp_ctrl (struct tramp_ctrl_data *parent);
 +void *allocate_trampoline_page (void);
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+void __builtin_nested_func_ptr_created (void *chain, void *func, void **dst);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void __builtin_nested_func_ptr_deleted (void);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__gnu_linux__)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static const uint32_t aarch64_trampoline_insns[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0xd503245f, /* hint    34 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0x580000b1, /* ldr     x17, .+20 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0x580000d2, /* ldr     x18, .+24 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0xd61f0220, /* br      x17 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0xd5033f9f, /* dsb     sy */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0xd5033fdf /* isb */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void __gcc_nested_func_ptr_created (void *chain, void *func, void **dst);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void __gcc_nested_func_ptr_deleted (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__linux__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const unsigned char aarch64_trampoline_insns[6][4] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0x5f, 0x24, 0x03, 0xd5}, /* hint    34 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0xb1, 0x00, 0x00, 0x58}, /* ldr     x17, .+20 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0xd2, 0x00, 0x00, 0x58}, /* ldr     x18, .+24 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0x20, 0x02, 0x1f, 0xd6}, /* br      x17 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0x9f, 0x3f, 0x03, 0xd5}, /* dsb     sy */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0xdf, 0x3f, 0x03, 0xd5} /* isb */
</span> +};
 +
 +#elif __APPLE__
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+static const uint32_t aarch64_trampoline_insns[] = {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0xd503245f, /* hint    34 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0x580000b1, /* ldr     x17, .+20 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0x580000d0, /* ldr     x16, .+24 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0xd61f0220, /* br      x17 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0xd5033f9f, /* dsb     sy */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0xd5033fdf /* isb */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const unsigned char aarch64_trampoline_insns[6][4] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0x5f, 0x24, 0x03, 0xd5}, /* hint    34 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0xb1, 0x00, 0x00, 0x58}, /* ldr     x17, .+20 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0xd0, 0x00, 0x00, 0x58}, /* ldr     x16, .+24 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0x20, 0x02, 0x1f, 0xd6}, /* br      x17 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0x9f, 0x3f, 0x03, 0xd5}, /* dsb     sy */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {0xdf, 0x3f, 0x03, 0xd5} /* isb */
</span> +};
 +
 +#else
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9668,7 +17633,7 @@ index 0000000..c8b8368
</span> +#endif
 +
 +struct aarch64_trampoline {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  uint32_t insns[6];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unsigned char insns[6][4];
</span> +  void *func_ptr;
 +  void *chain_ptr;
 +};
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9696,7 +17661,7 @@ index 0000000..c8b8368
</span> +{
 +  void *page;
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if defined(__gnu_linux__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__linux__)
</span> +  page = mmap (0, getpagesize (), PROT_WRITE | PROT_EXEC,
 +             MAP_ANON | MAP_PRIVATE, 0, 0);
 +#elif __APPLE__
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9727,8 +17692,9 @@ index 0000000..c8b8368
</span> +  return p;
 +}
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++HEAP_T_ATTR
</span> +void
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+__builtin_nested_func_ptr_created (void *chain, void *func, void **dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__gcc_nested_func_ptr_created (void *chain, void *func, void **dst)
</span> +{
 +  if (tramp_ctrl_curr == NULL)
 +    {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9774,8 +17740,9 @@ index 0000000..c8b8368
</span> +  *dst = &trampoline->insns;
 +}
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++HEAP_T_ATTR
</span> +void
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+__builtin_nested_func_ptr_deleted (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__gcc_nested_func_ptr_deleted (void)
</span> +{
 +  if (tramp_ctrl_curr == NULL)
 +    abort ();
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9793,8 +17760,10 @@ index 0000000..c8b8368
</span> +      tramp_ctrl_curr = prev;
 +    }
 +}
<span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* !inhibit_libc */
</span> diff --git libgcc/config/aarch64/lse.S libgcc/config/aarch64/lse.S
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9c29cf0..97b68c4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9c29cf08b59..97b68c42cc1 100644
</span> --- libgcc/config/aarch64/lse.S
 +++ libgcc/config/aarch64/lse.S
 @@ -58,7 +58,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9848,7 +17817,7 @@ index 9c29cf0..97b68c4 100644
</span>  
  STARTFN       NAME(cas)
 diff --git libgcc/config/aarch64/sfp-machine.h libgcc/config/aarch64/sfp-machine.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index be9b421..5dc1827 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index be9b42174c4..5dc1827ee3a 100644
</span> --- libgcc/config/aarch64/sfp-machine.h
 +++ libgcc/config/aarch64/sfp-machine.h
 @@ -122,6 +122,27 @@ void __sfp_handle_exceptions (int);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9881,7 +17850,7 @@ index be9b421..5dc1827 100644
</span> +#endif
 diff --git libgcc/config/aarch64/t-darwin libgcc/config/aarch64/t-darwin
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..f6ecda7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..f6ecda7b608
</span> --- /dev/null
 +++ libgcc/config/aarch64/t-darwin
 @@ -0,0 +1,7 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9894,7 +17863,7 @@ index 0000000..f6ecda7
</span> +BUILD_LIBGCCS1 =
 diff --git libgcc/config/aarch64/t-heap-trampoline libgcc/config/aarch64/t-heap-trampoline
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..3f70c2c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..6468fb8704f
</span> --- /dev/null
 +++ libgcc/config/aarch64/t-heap-trampoline
 @@ -0,0 +1,20 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9916,16 +17885,19 @@ index 0000000..3f70c2c
</span> +# along with GCC; see the file COPYING3.  If not see
 +# <http://www.gnu.org/licenses/>.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIB2ADD += $(srcdir)/config/aarch64/heap-trampoline.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=11.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB2ADDEH += $(srcdir)/config/aarch64/heap-trampoline.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB2ADDEHSHARED += $(srcdir)/config/aarch64/heap-trampoline.c
</span> diff --git libgcc/config/i386/heap-trampoline.c libgcc/config/i386/heap-trampoline.c
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..96e13bf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..2e8df1cfbd2
</span> --- /dev/null
 +++ libgcc/config/i386/heap-trampoline.c
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,172 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,255 @@
</span> +/* Copyright The GNU Toolchain Authors. */
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++/* libc is required to allocate trampolines.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef inhibit_libc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +#include <unistd.h>
 +#include <sys/mman.h>
 +#include <stdint.h>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9938,39 +17910,109 @@ index 0000000..96e13bf
</span> +#include <pthread.h>
 +#endif
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++/* HEAP_T_ATTR is provided to allow targets to build the exported functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   as weak definitions.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef HEAP_T_ATTR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define HEAP_T_ATTR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +void *allocate_trampoline_page (void);
 +int get_trampolines_per_page (void);
 +struct tramp_ctrl_data *allocate_tramp_ctrl (struct tramp_ctrl_data *parent);
 +void *allocate_trampoline_page (void);
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+void __builtin_nested_func_ptr_created (void *chain, void *func, void **dst);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+void __builtin_nested_func_ptr_deleted (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void __gcc_nested_func_ptr_created (void *chain, void *func, void **dst);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void __gcc_nested_func_ptr_deleted (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __x86_64__
</span> +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __LP64__
</span> +static const uint8_t trampoline_insns[] = {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  /* movabs $<chain>,%r11  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined __CET__ && (__CET__ & 1) != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* endbr64.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0xf3, 0x0f, 0x1e, 0xfa,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* movabsq $<func>,%r11  */
</span> +  0x49, 0xbb,
 +  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  /* movabs $<func>,%r10  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* movabsq $<chain>,%r10  */
</span> +  0x49, 0xba,
 +  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 +
 +  /* rex.WB jmpq *%r11  */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  0x41, 0xff, 0xe3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x41, 0xff, 0xe3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Pad to the multiple of 4 bytes.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const uint8_t trampoline_insns[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined __CET__ && (__CET__ & 1) != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* endbr64.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0xf3, 0x0f, 0x1e, 0xfa,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* movl $<func>,%r11d  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x41, 0xbb,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x00, 0x00, 0x00, 0x00,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* movl $<chain>,%r10d  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x41, 0xba,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x00, 0x00, 0x00, 0x00,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* rex.WB jmpq *%r11  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x41, 0xff, 0xe3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Pad to the multiple of 4 bytes.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x90
</span> +};
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span> +
 +union ix86_trampoline {
 +  uint8_t insns[sizeof(trampoline_insns)];
 +
 +  struct __attribute__((packed)) fields {
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined __CET__ && (__CET__ & 1) != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    uint8_t endbr64[4];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span> +    uint8_t insn_0[2];
 +    void *func_ptr;
 +    uint8_t insn_1[2];
 +    void *chain_ptr;
 +    uint8_t insn_2[3];
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    uint8_t pad;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  } fields;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif __i386__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const uint8_t trampoline_insns[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* movl $<chain>,%ecx  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0xb9,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x00, 0x00, 0x00, 0x00,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* jmpl <func>-. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0xe9,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  0x00, 0x00, 0x00, 0x00,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++union ix86_trampoline {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uint8_t insns[sizeof(trampoline_insns)];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct __attribute__((packed)) fields {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    uint8_t insn_0[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void *chain_ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    uint8_t insn_1[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    uintptr_t func_offset;
</span> +  } fields;
 +};
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error unsupported architecture/ABI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> +struct tramp_ctrl_data
 +{
 +  struct tramp_ctrl_data *prev;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10030,8 +18072,9 @@ index 0000000..96e13bf
</span> +  return p;
 +}
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++HEAP_T_ATTR
</span> +void
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+__builtin_nested_func_ptr_created (void *chain, void *func, void **dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__gcc_nested_func_ptr_created (void *chain, void *func, void **dst)
</span> +{
 +  if (tramp_ctrl_curr == NULL)
 +    {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10061,8 +18104,14 @@ index 0000000..96e13bf
</span> +
 +  memcpy (trampoline->insns, trampoline_insns,
 +        sizeof(trampoline_insns));
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  trampoline->fields.func_ptr = func;
</span> +  trampoline->fields.chain_ptr = chain;
<span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __x86_64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  trampoline->fields.func_ptr = func;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif __i386__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uintptr_t off_add = (uintptr_t) &trampoline->fields.func_offset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  off_add += 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  trampoline->fields.func_offset = (uintptr_t)func - off_add;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span> +
 +#if __APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400
 +  /* Re-enable write protection.  */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10077,8 +18126,9 @@ index 0000000..96e13bf
</span> +  *dst = &trampoline->insns;
 +}
 +
<span style='display:block; white-space:pre;background:#e0ffe0;'>++HEAP_T_ATTR
</span> +void
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+__builtin_nested_func_ptr_deleted (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__gcc_nested_func_ptr_deleted (void)
</span> +{
 +  if (tramp_ctrl_curr == NULL)
 +    abort ();
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10096,9 +18146,11 @@ index 0000000..96e13bf
</span> +      tramp_ctrl_curr = prev;
 +    }
 +}
<span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* !inhibit_libc */
</span> diff --git libgcc/config/i386/t-heap-trampoline libgcc/config/i386/t-heap-trampoline
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..76f438d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..5cd11f594ba
</span> --- /dev/null
 +++ libgcc/config/i386/t-heap-trampoline
 @@ -0,0 +1,20 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10120,91 +18172,50 @@ index 0000000..76f438d
</span> +# along with GCC; see the file COPYING3.  If not see
 +# <http://www.gnu.org/licenses/>.
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIB2ADD += $(srcdir)/config/i386/heap-trampoline.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB2ADDEH += $(srcdir)/config/i386/heap-trampoline.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB2ADDEHSHARED += $(srcdir)/config/i386/heap-trampoline.c
</span> diff --git libgcc/config/t-darwin libgcc/config/t-darwin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 299d26c..a708583 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a3bb70c6a0a..0f65b54a230 100644
</span> --- libgcc/config/t-darwin
 +++ libgcc/config/t-darwin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,15 +1,15 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Set this as a minimum (unless overriden by arch t-files) since it's a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # reasonable lowest common denominator that works for all our archs.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+HOST_LIBGCC2_CFLAGS += $(DARWIN_MIN_LIB_VERSION)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- crt3.o: $(srcdir)/config/darwin-crt3.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  $(crt_compile) -mmacosx-version-min=10.4 -c $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $(crt_compile) $(DARWIN_MIN_CRT_VERSION) -c $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- crttms.o: $(srcdir)/config/darwin-crt-tm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  $(crt_compile) -mmacosx-version-min=10.4 -DSTART -c $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $(crt_compile) $(DARWIN_MIN_CRT_VERSION) -DSTART -c $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- crttme.o: $(srcdir)/config/darwin-crt-tm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  $(crt_compile) -mmacosx-version-min=10.4 -DEND -c $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $(crt_compile) $(DARWIN_MIN_CRT_VERSION) -DEND -c $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Make emutls weak so that we can deal with -static-libgcc, override the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # hidden visibility when this is present in libgcc_eh.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -24,7 +24,8 @@ libemutls_w.a: emutls_s.o
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(AR_CREATE_FOR_TARGET) $@ $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(RANLIB_FOR_TARGET) $@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--# Patch to __Unwind_Find_Enclosing_Function for Darwin10.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# This has to be built for 10.6, even if the toolchain will not target that
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# version
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- d10-uwfef.o: $(srcdir)/config/darwin10-unwind-find-enc-func.c libgcc_tm.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   $(crt_compile) -mmacosx-version-min=10.6 -c $<
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libgcc/config/t-darwin-min-1 libgcc/config/t-darwin-min-1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-new file mode 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..8c2cf8a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- /dev/null
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libgcc/config/t-darwin-min-1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,3 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Support building with -mmacosx-version-min back to 10.1.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libgcc/config/t-darwin-min-4 libgcc/config/t-darwin-min-4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-new file mode 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..04e980d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- /dev/null
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libgcc/config/t-darwin-min-4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,3 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Support building with -mmacosx-version-min back to 10.4.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libgcc/config/t-darwin-min-5 libgcc/config/t-darwin-min-5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,5 +51,18 @@ LIB2ADDEH = $(srcdir)/unwind-dw2.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Do not build a shared unwind lib by default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBEHSOBJS=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Make heap trampoline helpers weak definitions so that we can merge them from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# multiple DSOs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++heap-trampoline.o: HOST_LIBGCC2_CFLAGS += \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  -DHEAP_T_ATTR='__attribute__((__weak__,__visibility__("default")))'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++heap-trampoline_s.o: HOST_LIBGCC2_CFLAGS += \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  -DHEAP_T_ATTR='__attribute__((__weak__,__visibility__("default")))'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Make a heap trampoline support CRT so that it can be linked optionally, use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the shared version so that we can link with DSOs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libheapt_w.a: heap-trampoline_s.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(AR_CREATE_FOR_TARGET) $@ $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(RANLIB_FOR_TARGET) $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Symbols for all the sub-ports.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SHLIB_MAPFILES = libgcc-std.ver $(srcdir)/config/libgcc-libsystem.ver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/t-darwin-min-11 libgcc/config/t-darwin-min-11
</span> new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..1381931
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..4009d41addb
</span> --- /dev/null
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libgcc/config/t-darwin-min-5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/t-darwin-min-11
</span> @@ -0,0 +1,3 @@
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Support building with -mmacosx-version-min back to 10.5.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libgcc/config/t-darwin-min-8 libgcc/config/t-darwin-min-8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-new file mode 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..9efc9dc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- /dev/null
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libgcc/config/t-darwin-min-8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,3 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Support building with -mmacosx-version-min back to 10.8.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Support building with -mmacosx-version-min back to macOS 11.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=11
</span> diff --git libgcc/config/t-darwin-rpath libgcc/config/t-darwin-rpath
 new file mode 100644
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0000000..951539d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000000..e73d7f378b0
</span> --- /dev/null
 +++ libgcc/config/t-darwin-rpath
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -0,0 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,2 @@
</span> +# Use @rpath and add a search path to exes and dylibs that depend on this.
 +SHLIB_RPATH = @rpath
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Enable the libgcc_s.1.dylib compatibility lib to find the dependent 1.1.dylib.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SHLIB_LOADER_PATH = -Wl,-rpath,@loader_path
</span> diff --git libgcc/config/t-slibgcc-darwin libgcc/config/t-slibgcc-darwin
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a8f6966..ee449de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cb0cbbdb1c5..da4886848e8 100644
</span> --- libgcc/config/t-slibgcc-darwin
 +++ libgcc/config/t-slibgcc-darwin
 @@ -1,4 +1,4 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10221,7 +18232,7 @@ index a8f6966..ee449de 100644
</span>  
  SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
  SHLIB_MKMAP_OPTS = -v leading_underscore=1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -23,11 +22,20 @@ SHLIB_SONAME = @shlib_base_name@$(SHLIB_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,11 +22,16 @@ SHLIB_SONAME = @shlib_base_name@$(SHLIB_EXT)
</span>  # subdir.  The code under MULTIBUILDTOP combines these into a single FAT
  # library, that is what we eventually install.
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10229,10 +18240,6 @@ index a8f6966..ee449de 100644
</span> +# this and dylibs that depend on this.  So this def must come first and be
 +# overridden in a make fragment that depends on the rpath setting.
 +SHLIB_RPATH = $(slibdir)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Likewise, we only want to add an @loader_path to the shared libs when
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# we have enable_darwin_at_rpath.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+SHLIB_LOADER_PATH =
</span> +
  SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \
 -      -install_name $(SHLIB_INSTALL_DIR)/$(SHLIB_INSTALL_NAME) \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10244,7 +18251,7 @@ index a8f6966..ee449de 100644
</span>   @multilib_flags@ @shlib_objs@ $(SHLIB_LC)
  
  # we do our own thing
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -63,9 +71,9 @@ EHS_INSTNAME = libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -63,9 +67,9 @@ EHS_INSTNAME = libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)
</span>  libgcc_ehs$(SHLIB_EXT): $(LIBEHSOBJS) $(extra-parts)
        mkdir -p $(MULTIDIR)
        $(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10256,13 +18263,12 @@ index a8f6966..ee449de 100644
</span>  
  all: libgcc_ehs$(SHLIB_EXT)
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -121,12 +129,13 @@ libgcc_s.1.dylib: all-multi libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -122,12 +126,12 @@ libgcc_s.1.dylib: all-multi libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) \
</span>     cp ../$${mlib}/libgcc/$${mlib}/libgcc_ehs$(SHLIB_EXT)  \
            ./libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
          arch=`$(LIPO) -info libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} | sed -e 's/.*:\ //'` ; \
 -        $(CC) -arch $${arch} -nodefaultlibs -dynamiclib \
 +        $(CC) -arch $${arch} -nodefaultlibs -dynamiclib -nodefaultrpaths \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+           $(SHLIB_LOADER_PATH) \
</span>       -o libgcc_s.1$(SHLIB_EXT)_T_$${mlib} \
            -Wl,-reexport_library,libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
            -Wl,-reexport_library,libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10273,13 +18279,12 @@ index a8f6966..ee449de 100644
</span>   done
        $(LIPO) -output libgcc_s.1$(SHLIB_EXT) -create libgcc_s.1$(SHLIB_EXT)_T*
        rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -140,13 +149,14 @@ libgcc_s.1.dylib: all-multi libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -141,13 +145,13 @@ libgcc_s.1.dylib: all-multi libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)
</span>     cp ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT)  \
            ./libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
          arch=`$(LIPO) -info libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} | sed -e 's/.*:\ //'` ; \
 -        $(CC) -arch $${arch} -nodefaultlibs -dynamiclib \
 +        $(CC) -arch $${arch} -nodefaultlibs -dynamiclib -nodefaultrpaths \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+           $(SHLIB_LOADER_PATH) \
</span>       -o libgcc_s.1$(SHLIB_EXT)_T_$${mlib} \
            -Wl,-reexport_library,libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
            -lSystem \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10291,183 +18296,36 @@ index a8f6966..ee449de 100644
</span>   done
        $(LIPO) -output libgcc_s.1$(SHLIB_EXT) -create libgcc_s.1$(SHLIB_EXT)_T*
        rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libgcc/configure libgcc/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 1f9b2ac..a5c228b 100755
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libgcc/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libgcc/configure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -630,7 +630,6 @@ LIPO
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AR
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- toolexeclibdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- toolexecdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--enable_gcov
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- target_subdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- host_subdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build_subdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -654,6 +653,8 @@ build_cpu
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- with_aix_soname
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_vtable_verify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_gcov
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+off_stack_trampolines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_shared
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libgcc_topdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- target_alias
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -701,6 +702,8 @@ with_target_subdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- with_cross_host
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- with_ld
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_shared
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_off_stack_trampolines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+enable_gcov
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_vtable_verify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- with_aix_soname
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_version_specific_runtime_libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -708,7 +711,6 @@ with_toolexeclibdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- with_slibdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- with_build_libsubdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--enable_gcov
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_largefile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enable_decimal_float
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- with_system_libunwind
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1342,12 +1344,15 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --disable-shared        don't provide a shared libgcc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-off-stack-trampolines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  Specify whether to support generating off-stack trampolines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --disable-gcov          don't provide libgcov and related host tools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --enable-vtable-verify    Enable vtable verification feature
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --enable-version-specific-runtime-libs    Specify that runtime libraries should be installed in a compiler-specific directory
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --enable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                           enable make rules and dependencies not useful (and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                           sometimes confusing) to the casual installer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  --disable-gcov          don't provide libgcov and related host tools
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --disable-largefile     omit support for large files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   --enable-decimal-float={no,yes,bid,dpd}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                   enable decimal float extension to C.  Selecting 'bid'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2252,6 +2257,48 @@ fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Check whether --enable-off-stack-trampolines was given.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "${enable_off_stack_trampolines+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  enableval=$enable_off_stack_trampolines;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+case "$target" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  x86_64-*-linux* | x86_64-*-darwin1[4-9]* | x86_64-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  aarch64*-*-linux* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  aarch64*-*darwin* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    as_fn_error $? "Configure option --enable-off-stack-trampolines is not supported \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+for this platform" "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+case "$target" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Check whether --enable-gcov was given.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "${enable_gcov+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  enableval=$enable_gcov;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  enable_gcov=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Check whether --enable-vtable-verify was given.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if test "${enable_vtable_verify+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   enableval=$enable_vtable_verify; case "$enableval" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libgcc/configure.ac libgcc/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2fc9d5d..7d11bf0 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libgcc/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libgcc/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -68,6 +68,40 @@ AC_ARG_ENABLE(shared,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ], [enable_shared=yes])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_ARG_ENABLE([off-stack-trampolines],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  [AS_HELP_STRING([--enable-off-stack-trampolines]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                  [Specify whether to support generating off-stack trampolines])],[
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+case "$target" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  x86_64-*-linux* | x86_64-*-darwin1[[4-9]]* | x86_64-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  aarch64*-*-linux* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  aarch64*-*darwin* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    AC_MSG_ERROR([Configure option --enable-off-stack-trampolines is not supported \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+for this platform])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+esac],[
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+case "$target" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    off_stack_trampolines=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+esac])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST(off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_ARG_ENABLE(gcov,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[  --disable-gcov          don't provide libgcov and related host tools],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[], [enable_gcov=yes])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST(enable_gcov)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_ARG_ENABLE(vtable-verify,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [  --enable-vtable-verify    Enable vtable verification feature ],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [case "$enableval" in
</span> diff --git libgcc/libgcc-std.ver.in libgcc/libgcc-std.ver.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 513ddd0..fc0b405 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 513ddd0bd0d..38d9d53bf77 100644
</span> --- libgcc/libgcc-std.ver.in
 +++ libgcc/libgcc-std.ver.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1943,4 +1943,7 @@ GCC_4.8.0 {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- GCC_7.0.0 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1944,3 +1944,9 @@ GCC_7.0.0 {
</span>    __PFX__divmoddi4
    __PFX__divmodti4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  __builtin_nested_func_ptr_created
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  __builtin_nested_func_ptr_deleted
</span>  }
<span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%inherit GCC_14.0.0 GCC_7.0.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC_14.0.0 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __gcc_nested_func_ptr_created
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  __gcc_nested_func_ptr_deleted
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span> diff --git libgcc/libgcc2.h libgcc/libgcc2.h
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index fc24ac3..536e517 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fc24ac34502..7c90eaacdf8 100644
</span> --- libgcc/libgcc2.h
 +++ libgcc/libgcc2.h
 @@ -29,6 +29,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  #pragma GCC visibility push(default)
  #endif
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern void __builtin_nested_func_ptr_created (void *, void *, void **);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern void __builtin_nested_func_ptr_deleted (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void __gcc_nested_func_ptr_created (void *, void *, void **);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void __gcc_nested_func_ptr_deleted (void);
</span> +
  extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
  extern void __clear_cache (void *, void *);
  extern void __eprintf (const char *, const char *, unsigned int, const char *)
 diff --git libgfortran/Makefile.am libgfortran/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5ce0cd7..2073bf6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5ce0cd7cd05..b1338a201cd 100644
</span> --- libgfortran/Makefile.am
 +++ libgfortran/Makefile.am
 @@ -37,6 +37,11 @@ else
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10476,7 +18334,7 @@ index 5ce0cd7..2073bf6 100644
</span>  endif
 +extra_darwin_ldflags_libgfortran = @extra_ldflags_libgfortran@
 +if ENABLE_DARWIN_AT_RPATH
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+extra_darwin_ldflags_libgfortran += -Wc,-nodefaultrpaths 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extra_darwin_ldflags_libgfortran += -Wc,-nodefaultrpaths
</span> +extra_darwin_ldflags_libgfortran += -Wl,-rpath,@loader_path
 +endif
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10492,7 +18350,7 @@ index 5ce0cd7..2073bf6 100644
</span>  libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP)
  
 diff --git libgfortran/Makefile.in libgfortran/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7ac6bfb..52dd5f1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ac6bfba657..52dd5f1819e 100644
</span> --- libgfortran/Makefile.in
 +++ libgfortran/Makefile.in
 @@ -91,8 +91,10 @@ POST_UNINSTALL = :
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10605,7 +18463,7 @@ index 7ac6bfb..52dd5f1 100644
</span>   $(gfor_helper_src) $(gfor_ieee_src) $(gfor_io_headers) $(gfor_specific_src)
  
 diff --git libgfortran/configure libgfortran/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ae64dca..f288af8 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae64dca3114..625269e4924 100755
</span> --- libgfortran/configure
 +++ libgfortran/configure
 @@ -655,6 +655,8 @@ extra_ldflags_libgfortran
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10625,16 +18483,26 @@ index ae64dca..f288af8 100755
</span>  enable_largefile
  enable_libquadmath_support
  with_gcc_major_version_only
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1479,6 +1482,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1479,6 +1482,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --disable-largefile     omit support for large files
    --disable-libquadmath-support
                            disable libquadmath support for Fortran
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10939,6 +10944,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9229,7 +9235,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10939,6 +10945,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10651,8 +18519,9 @@ index ae64dca..f288af8 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10660,15 +18529,16 @@ index ae64dca..f288af8 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10682,49 +18552,41 @@ index ae64dca..f288af8 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10956,10 +11002,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10956,9 +11005,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12766,7 +12821,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12766,7 +12819,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12769 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12824 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12822 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12872,7 +12927,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12872,7 +12925,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12875 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12930 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12928 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13274,6 +13329,14 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13274,6 +13327,14 @@ esac
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10739,7 +18601,7 @@ index ae64dca..f288af8 100755
</span>  #AC_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10
  
  # We need gfortran to compile parts of the library
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14917,6 +14980,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14917,6 +14978,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10756,8 +18618,9 @@ index ae64dca..f288af8 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10765,15 +18628,16 @@ index ae64dca..f288af8 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10787,31 +18651,23 @@ index ae64dca..f288af8 100755
</span>    archive_cmds_need_lc_FC=no
    hardcode_direct_FC=no
    hardcode_automatic_FC=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14934,10 +15038,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14934,9 +15038,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs_FC=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16190,9 +16303,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16190,9 +16298,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span>  
  
  # extra LD Flags which are required for targets
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10824,7 +18680,7 @@ index ae64dca..f288af8 100755
</span>      extra_ldflags_libgfortran=-Wl,-single_module
      ;;
  esac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -28519,6 +28633,10 @@ if test -z "${HAVE_HWCAP_TRUE}" && test -z "${HAVE_HWCAP_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28519,6 +28628,10 @@ if test -z "${HAVE_HWCAP_TRUE}" && test -z "${HAVE_HWCAP_FALSE}"; then
</span>    as_fn_error $? "conditional \"HAVE_HWCAP\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10836,7 +18692,7 @@ index ae64dca..f288af8 100755
</span>    as_fn_error $? "conditional \"LIBGFOR_BUILD_QUAD\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libgfortran/configure.ac libgfortran/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 97cc490..a21f566 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 97cc490cb5e..a21f56648a2 100644
</span> --- libgfortran/configure.ac
 +++ libgfortran/configure.ac
 @@ -282,6 +282,7 @@ LT_LIB_M
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10861,7 +18717,7 @@ index 97cc490..a21f566 100644
</span>      ;;
  esac
 diff --git libgo/configure libgo/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ffe17c9..de5c1ac 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ffe17c9be55..de5c1ac9b3d 100755
</span> --- libgo/configure
 +++ libgo/configure
 @@ -708,6 +708,8 @@ glibgo_toolexecdir
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10918,7 +18774,7 @@ index ffe17c9..de5c1ac 100755
</span>    as_fn_error $? "conditional \"USE_LIBFFI\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libgo/configure.ac libgo/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7e2b98b..7b0222b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7e2b98ba67c..7b0222bb620 100644
</span> --- libgo/configure.ac
 +++ libgo/configure.ac
 @@ -53,6 +53,7 @@ AC_LIBTOOL_DLOPEN
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10930,7 +18786,7 @@ index 7e2b98b..7b0222b 100644
</span>  CC_FOR_BUILD=${CC_FOR_BUILD:-gcc}
  AC_SUBST(CC_FOR_BUILD)
 diff --git libgomp/Makefile.am libgomp/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f8b2a06..81ba6c6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f8b2a06d63e..81ba6c634fa 100644
</span> --- libgomp/Makefile.am
 +++ libgomp/Makefile.am
 @@ -53,9 +53,14 @@ else
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10950,10 +18806,10 @@ index f8b2a06..81ba6c6 100644
</span>  libgomp_la_LINK = $(LINK) $(libgomp_la_LDFLAGS)
  
 diff --git libgomp/Makefile.in libgomp/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6f0cb71..5cfb149 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 31ad7aa4b48..aba4c88e97a 100644
</span> --- libgomp/Makefile.in
 +++ libgomp/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -546,8 +546,11 @@ nodist_toolexeclib_HEADERS = libgomp.spec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -547,8 +547,11 @@ nodist_toolexeclib_HEADERS = libgomp.spec
</span>  @LIBGOMP_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@libgomp_version_dep = libgomp.ver
  @LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@libgomp_version_dep = libgomp.ver-sun
  libgomp_version_info = -version-info $(libtool_VERSION)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10967,10 +18823,10 @@ index 6f0cb71..5cfb149 100644
</span>  libgomp_la_DEPENDENCIES = $(libgomp_version_dep)
  libgomp_la_LINK = $(LINK) $(libgomp_la_LDFLAGS)
 diff --git libgomp/configure libgomp/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 85fdb4d..71b5987 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 67f6b1435a5..5e8e36fee71 100755
</span> --- libgomp/configure
 +++ libgomp/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -692,6 +692,8 @@ FC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -693,6 +693,8 @@ FC
</span>  MAINT
  MAINTAINER_MODE_FALSE
  MAINTAINER_MODE_TRUE
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10979,7 +18835,7 @@ index 85fdb4d..71b5987 100755
</span>  enable_static
  enable_shared
  lt_host_flags
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -832,6 +834,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -833,6 +835,7 @@ with_pic
</span>  enable_fast_install
  with_gnu_ld
  enable_libtool_lock
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10987,16 +18843,26 @@ index 85fdb4d..71b5987 100755
</span>  enable_maintainer_mode
  with_cuda_driver
  with_cuda_driver_include
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1493,6 +1496,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1494,6 +1497,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-maintainer-mode
                            enable make rules and dependencies not useful (and
                            sometimes confusing) to the casual installer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9625,6 +9630,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7653,7 +7659,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9626,6 +9632,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11013,8 +18879,9 @@ index 85fdb4d..71b5987 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11022,15 +18889,16 @@ index 85fdb4d..71b5987 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11044,49 +18912,41 @@ index 85fdb4d..71b5987 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9642,10 +9688,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9643,9 +9692,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11431,7 +11486,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11432,7 +11485,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 11434 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11489 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11435 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11488 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11537,7 +11592,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11538,7 +11591,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 11540 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11595 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11541 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11594 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11798,6 +11853,14 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11799,6 +11852,14 @@ esac
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11101,7 +18961,7 @@ index 85fdb4d..71b5987 100755
</span>  
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13473,6 +13536,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13474,6 +13535,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11118,8 +18978,9 @@ index 85fdb4d..71b5987 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11127,15 +18988,16 @@ index 85fdb4d..71b5987 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11149,31 +19011,23 @@ index 85fdb4d..71b5987 100755
</span>    archive_cmds_need_lc_FC=no
    hardcode_direct_FC=no
    hardcode_automatic_FC=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13490,10 +13594,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13491,9 +13595,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_FC="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_FC="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_FC="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_FC="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs_FC=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17213,6 +17326,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17306,6 +17414,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span>    as_fn_error $? "conditional \"BUILD_INFO\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11185,7 +19039,7 @@ index 85fdb4d..71b5987 100755
</span>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libgomp/configure.ac libgomp/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index a9b1f39..654fca1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dd88f20103a..5deba114027 100644
</span> --- libgomp/configure.ac
 +++ libgomp/configure.ac
 @@ -149,6 +149,7 @@ AM_PROG_LIBTOOL
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11196,112 +19050,23 @@ index a9b1f39..654fca1 100644
</span>  
  AM_MAINTAINER_MODE
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libiberty/aclocal.m4 libiberty/aclocal.m4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3378316..1a00b77 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libiberty/aclocal.m4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libiberty/aclocal.m4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12,10 +12,61 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # PARTICULAR PURPOSE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgomp/env.c libgomp/env.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1c4ee894515..29e7d853559 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgomp/env.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgomp/env.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,6 +60,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* LIBGOMP_OFFLOADED_ONLY */
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# AM_CONDITIONAL                                            -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Copyright (C) 1997-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# with or without modifications, as long as this notice is preserved.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# -------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Define a conditional.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_DEFUN([AM_CONDITIONAL],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[AC_PREREQ([2.52])dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST([$1_TRUE])dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_SUBST([$1_FALSE])dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+m4_define([_AM_COND_VALUE_$1], [$2])dnl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if $2; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $1_TRUE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $1_FALSE='#'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $1_TRUE='#'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $1_FALSE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_CONFIG_COMMANDS_PRE(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  AC_MSG_ERROR([[conditional "$1" was never defined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Usually this means the macro was only invoked conditionally.]])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi])])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Copyright (C) 2006-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# with or without modifications, as long as this notice is preserved.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# _AM_SUBST_NOTMAKE(VARIABLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# ---------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# This macro is traced by Automake.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_DEFUN([_AM_SUBST_NOTMAKE])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# AM_SUBST_NOTMAKE(VARIABLE)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# --------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+# Public sister of _AM_SUBST_NOTMAKE.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- m4_include([../config/acx.m4])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- m4_include([../config/cet.m4])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- m4_include([../config/enable.m4])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- m4_include([../config/no-executables.m4])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+m4_include([../config/override.m4])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- m4_include([../config/picflag.m4])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- m4_include([../config/warnings.m4])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- m4_include([acinclude.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "secure_getenv.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "environ.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct gomp_task_icv gomp_global_icv = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .nthreads_var = 1,
</span> diff --git libiberty/configure libiberty/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ca83f89..bdcdd31 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ca83f89da6d..ac7aa950032 100755
</span> --- libiberty/configure
 +++ libiberty/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -632,6 +632,8 @@ PICFLAG
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INSTALL_DATA
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INSTALL_SCRIPT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INSTALL_PROGRAM
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OUTPUT_OPTION
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NO_MINUS_C_MINUS_O
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_libiberty_warn_cflags
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2459,6 +2461,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # This works around the fact that libtool configuration may change LD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # for this particular configuration, but some shells, instead of
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # keeping the changes in LD private, export them just because LD is
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5046,6 +5051,15 @@ $as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if test x$enable_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_FALSE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_config_headers="$ac_config_headers config.h:config.in"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5208,6 +5222,9 @@ case "${host}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5208,6 +5208,9 @@ case "${host}" in
</span>   # sets the default TLS model and affects inlining.
        PICFLAG=-fPIC
        ;;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11311,32 +19076,34 @@ index ca83f89..bdcdd31 100755
</span>      mips-sgi-irix6*)
        # PIC is the default.
        ;;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7845,6 +7862,10 @@ LTLIBOBJS=$ac_ltlibobjs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5254,8 +5257,8 @@ case "${enable_shared}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *) shared=yes ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test -z "${ENABLE_DARWIN_AT_RPATH_TRUE}" && test -z "${ENABLE_DARWIN_AT_RPATH_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# ...unless --enable-host-shared was passed from top-level config:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if [ "${enable_host_shared}" = "yes" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ...unless --enable-host-{shared,pie} was passed from top-level config:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if [ "${enable_host_shared}" = "yes" ] || [ "${enable_host_pie}" = "yes" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   shared=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_write_fail=0
</span> diff --git libiberty/configure.ac libiberty/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 84a7b37..4dad84e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 84a7b378fad..bf3f9fe77ee 100644
</span> --- libiberty/configure.ac
 +++ libiberty/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -190,6 +190,8 @@ dnl AM_DISABLE_SHARED
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dnl When we start using libtool:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dnl AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,8 +232,8 @@ case "${enable_shared}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *) shared=yes ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# ...unless --enable-host-shared was passed from top-level config:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if [[ "${enable_host_shared}" = "yes" ]]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ...unless --enable-host-{shared,pie} was passed from top-level config:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if [[ "${enable_host_shared}" = "yes" ]] || [[ "${enable_host_pie}" = "yes" ]]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   shared=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+AM_CONDITIONAL([ENABLE_DARWIN_AT_RPATH], [test x$enable_darwin_at_rpath = xyes])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dnl When we start using automake:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dnl AM_CONFIG_HEADER(config.h:config.in)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_CONFIG_HEADER(config.h:config.in)
</span> diff --git libitm/Makefile.am libitm/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 3f31ad3..a25317b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3f31ad30556..a25317b07fe 100644
</span> --- libitm/Makefile.am
 +++ libitm/Makefile.am
 @@ -54,7 +54,12 @@ libitm_version_info = -version-info $(libtool_VERSION)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11354,7 +19121,7 @@ index 3f31ad3..a25317b 100644
</span>  libitm_la_SOURCES = \
        aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc barrier.cc beginend.cc \
 diff --git libitm/Makefile.in libitm/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 7f53ea9..ed28db4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7f53ea9b9db..ed28db45057 100644
</span> --- libitm/Makefile.in
 +++ libitm/Makefile.in
 @@ -481,7 +481,12 @@ libitm_version_info = -version-info $(libtool_VERSION)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11372,7 +19139,7 @@ index 7f53ea9..ed28db4 100644
</span>   barrier.cc beginend.cc clone.cc eh_cpp.cc local.cc query.cc \
        retry.cc rwlock.cc useraction.cc util.cc sjlj.S tls.cc \
 diff --git libitm/config/aarch64/sjlj.S libitm/config/aarch64/sjlj.S
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 296cb68..941e886 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 296cb683a9f..941e886143e 100644
</span> --- libitm/config/aarch64/sjlj.S
 +++ libitm/config/aarch64/sjlj.S
 @@ -57,10 +57,19 @@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11445,7 +19212,7 @@ index 296cb68..941e886 100644
</span>  /* GNU_PROPERTY_AARCH64_* macros from elf.h for use in asm code.  */
  #define FEATURE_1_AND 0xc0000000
 diff --git libitm/configure libitm/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 18fc2d3..5beb48a 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 18fc2d3a10a..863c588e90c 100755
</span> --- libitm/configure
 +++ libitm/configure
 @@ -660,6 +660,8 @@ libtool_VERSION
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11465,16 +19232,26 @@ index 18fc2d3..5beb48a 100755
</span>  enable_maintainer_mode
  enable_linux_futex
  enable_tls
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1462,6 +1465,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1462,6 +1465,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-maintainer-mode
                            enable make rules and dependencies not useful (and
                            sometimes confusing) to the casual installer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10252,6 +10257,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8278,7 +8284,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10252,6 +10258,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11491,8 +19268,9 @@ index 18fc2d3..5beb48a 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11500,15 +19278,16 @@ index 18fc2d3..5beb48a 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11522,49 +19301,41 @@ index 18fc2d3..5beb48a 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10269,10 +10315,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10269,9 +10318,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12058,7 +12113,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12058,7 +12111,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12061 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12116 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12114 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12164,7 +12219,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12164,7 +12217,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12167 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12222 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12220 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13040,6 +13095,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13040,6 +13093,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11581,8 +19352,9 @@ index 18fc2d3..5beb48a 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11590,15 +19362,16 @@ index 18fc2d3..5beb48a 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11612,38 +19385,31 @@ index 18fc2d3..5beb48a 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13057,12 +13153,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13057,12 +13153,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15414,6 +15523,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15414,6 +15518,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11658,7 +19424,7 @@ index 18fc2d3..5beb48a 100755
</span>  
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -18172,6 +18289,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18172,6 +18284,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span>    as_fn_error $? "conditional \"BUILD_INFO\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11670,7 +19436,7 @@ index 18fc2d3..5beb48a 100755
</span>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libitm/configure.ac libitm/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 78a6823..209a025 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 78a682376d9..209a025a90e 100644
</span> --- libitm/configure.ac
 +++ libitm/configure.ac
 @@ -157,6 +157,7 @@ AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_prog_makeinfo_modern = "yes")
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11682,7 +19448,7 @@ index 78a6823..209a025 100644
</span>  AM_MAINTAINER_MODE
  
 diff --git libitm/configure.tgt libitm/configure.tgt
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 06e9097..acaf4f8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 06e90973ef3..acaf4f85712 100644
</span> --- libitm/configure.tgt
 +++ libitm/configure.tgt
 @@ -50,7 +50,7 @@ fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11695,7 +19461,7 @@ index 06e9097..acaf4f8 100644
</span>    rs6000 | powerpc*)
        XCFLAGS="${XCFLAGS} -mhtm"
 diff --git libitm/testsuite/lib/libitm.exp libitm/testsuite/lib/libitm.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6d8e3e7..9065340 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6d8e3e71310..906534022eb 100644
</span> --- libitm/testsuite/lib/libitm.exp
 +++ libitm/testsuite/lib/libitm.exp
 @@ -158,6 +158,7 @@ proc libitm_init { args } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11707,7 +19473,7 @@ index 6d8e3e7..9065340 100644
</span>      }
  
 diff --git libitm/testsuite/libitm.c++/c++.exp libitm/testsuite/libitm.c++/c++.exp
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f92aa09..295c5bd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f92aa096104..295c5bd4703 100644
</span> --- libitm/testsuite/libitm.c++/c++.exp
 +++ libitm/testsuite/libitm.c++/c++.exp
 @@ -56,8 +56,10 @@ if { $lang_test_file_found } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11731,7 +19497,7 @@ index f92aa09..295c5bd 100644
</span>  
  # All done.
 diff --git libobjc/configure libobjc/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5d1b424..21ac187 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5d1b424a66d..65054115fd0 100755
</span> --- libobjc/configure
 +++ libobjc/configure
 @@ -636,6 +636,9 @@ OBJC_BOEHM_GC_LIBS
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11760,16 +19526,17 @@ index 5d1b424..21ac187 100755
</span>  enable_tls
  enable_objc_gc
  with_target_bdw_gc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1392,6 +1395,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1392,6 +1395,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-tls            Use thread-local storage [default=yes]
    --enable-objc-gc        enable use of Boehm's garbage collector with the GNU
                            Objective-C runtime
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3430,17 +3435,6 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3430,17 +3436,6 @@ esac
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11787,7 +19554,7 @@ index 5d1b424..21ac187 100755
</span>  
  # Add CET specific flags if CET is enabled
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -3466,7 +3460,7 @@ case "$host" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3466,7 +3461,7 @@ case "$host" in
</span>      case "$enable_cet" in
        auto)
        # Check if target supports multi-byte NOPs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11796,7 +19563,16 @@ index 5d1b424..21ac187 100755
</span>   cet_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -fcf-protection"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8944,6 +8938,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6967,7 +6962,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8944,6 +8939,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11813,8 +19589,9 @@ index 5d1b424..21ac187 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11822,15 +19599,16 @@ index 5d1b424..21ac187 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11844,49 +19622,41 @@ index 5d1b424..21ac187 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8961,10 +8996,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8961,9 +8999,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10771,7 +10815,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10771,7 +10813,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 10784 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 10818 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10816 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10877,7 +10921,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10877,7 +10919,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 10890 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 10924 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10922 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11149,6 +11193,38 @@ $as_echo "no" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11149,6 +11191,38 @@ $as_echo "no" >&6; }
</span>  fi
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11925,7 +19695,7 @@ index 5d1b424..21ac187 100755
</span>  # -------
  # Headers
  # -------
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11890,6 +11966,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11890,6 +11964,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11937,7 +19707,7 @@ index 5d1b424..21ac187 100755
</span>  : "${CONFIG_STATUS=./config.status}"
  ac_write_fail=0
 diff --git libobjc/configure.ac libobjc/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f8f577c..2a9bf1f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f8f577cfbef..2a9bf1fed4c 100644
</span> --- libobjc/configure.ac
 +++ libobjc/configure.ac
 @@ -147,17 +147,6 @@ m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11991,19 +19761,10 @@ index f8f577c..2a9bf1f 100644
</span>  # Headers
  # -------
 diff --git liboffloadmic/configure liboffloadmic/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index dfa8287..84447cb 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dfa8287fd75..995fd94e977 100755
</span> --- liboffloadmic/configure
 +++ liboffloadmic/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -639,6 +639,8 @@ link_offloadmic_host
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lt_cv_dlopen_libs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- toolexeclibdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- toolexecdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXXCPP
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OTOOL64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OTOOL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -782,6 +784,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -782,6 +782,7 @@ with_pic
</span>  enable_fast_install
  with_gnu_ld
  enable_libtool_lock
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12011,16 +19772,17 @@ index dfa8287..84447cb 100755
</span>  with_gcc_major_version_only
  '
        ac_precious_vars='build_alias
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1434,6 +1437,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1434,6 +1435,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
  
  Optional Packages:
    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7900,23 +7905,25 @@ _LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7900,23 +7904,25 @@ _LT_EOF
</span>  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
  $as_echo "$lt_cv_ld_force_load" >&6; }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12045,7 +19807,7 @@ index dfa8287..84447cb 100755
</span> +      # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
 +      # deployment target is forced to an earlier version.
 +      case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span> +   ;;
        10.[012][,.]*)
 -        _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12060,7 +19822,7 @@ index dfa8287..84447cb 100755
</span>      ;;
    esac
      if test "$lt_cv_apple_cc_single_mod" = "yes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9614,6 +9621,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9614,6 +9620,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12077,8 +19839,9 @@ index dfa8287..84447cb 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12086,15 +19849,16 @@ index dfa8287..84447cb 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12108,49 +19872,41 @@ index dfa8287..84447cb 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9631,10 +9679,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9631,9 +9680,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11420,7 +11477,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11420,7 +11473,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11433 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11480 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11476 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11526,7 +11583,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11526,7 +11579,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11539 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11586 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11582 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12402,6 +12459,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12402,6 +12455,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12167,8 +19923,9 @@ index dfa8287..84447cb 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12176,15 +19933,16 @@ index dfa8287..84447cb 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12198,38 +19956,31 @@ index dfa8287..84447cb 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12419,12 +12517,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12419,12 +12515,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14265,16 +14376,6 @@ freebsd* | dragonfly*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14265,16 +14369,6 @@ freebsd* | dragonfly*)
</span>    esac
    ;;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12246,7 +19997,7 @@ index dfa8287..84447cb 100755
</span>  haiku*)
    version_type=linux
    need_lib_prefix=no
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14396,7 +14497,7 @@ linux*oldld* | linux*aout* | linux*coff*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14396,7 +14490,7 @@ linux*oldld* | linux*aout* | linux*coff*)
</span>  # project, but have not yet been accepted: they are GCC-local changes
  # for the time being.  (See
  # https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12255,48 +20006,8 @@ index dfa8287..84447cb 100755
</span>    version_type=linux
    need_lib_prefix=no
    need_version=no
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14784,6 +14885,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Only expand once:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if test x$enable_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_FALSE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Forbid libtool to hardcode RPATH, because we want to be able to specify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # library search directory using LD_LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- hardcode_into_libs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14999,6 +15109,10 @@ if test -z "${LIBOFFLOADMIC_HOST_TRUE}" && test -z "${LIBOFFLOADMIC_HOST_FALSE}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   as_fn_error $? "conditional \"LIBOFFLOADMIC_HOST\" was never defined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test -z "${ENABLE_DARWIN_AT_RPATH_TRUE}" && test -z "${ENABLE_DARWIN_AT_RPATH_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git liboffloadmic/configure.ac liboffloadmic/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index f64f182..b96e7ea 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- liboffloadmic/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ liboffloadmic/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -118,6 +118,8 @@ esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_LIBTOOL_DLOPEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AM_CONDITIONAL([ENABLE_DARWIN_AT_RPATH], [test x$enable_darwin_at_rpath = xyes])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Forbid libtool to hardcode RPATH, because we want to be able to specify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # library search directory using LD_LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- hardcode_into_libs=no
</span> diff --git liboffloadmic/plugin/Makefile.in liboffloadmic/plugin/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8d5ad00..c53f2d3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8d5ad0025c2..c53f2d32b3b 100644
</span> --- liboffloadmic/plugin/Makefile.in
 +++ liboffloadmic/plugin/Makefile.in
 @@ -123,10 +123,10 @@ subdir = .
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12312,7 +20023,7 @@ index 8d5ad00..c53f2d3 100644
</span>   $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
 diff --git liboffloadmic/plugin/aclocal.m4 liboffloadmic/plugin/aclocal.m4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9fa1d12..1bb9140 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9fa1d1216c1..1bb91402f66 100644
</span> --- liboffloadmic/plugin/aclocal.m4
 +++ liboffloadmic/plugin/aclocal.m4
 @@ -1169,10 +1169,10 @@ AC_SUBST([am__untar])
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12328,19 +20039,10 @@ index 9fa1d12..1bb9140 100644
</span>  m4_include([../../ltoptions.m4])
  m4_include([../../ltsugar.m4])
 diff --git liboffloadmic/plugin/configure liboffloadmic/plugin/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 0b21d7d..a941640 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0b21d7d4eed..929b7278e8a 100755
</span> --- liboffloadmic/plugin/configure
 +++ liboffloadmic/plugin/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -635,6 +635,8 @@ LIBOBJS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- get_gcc_base_ver
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- toolexeclibdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- toolexecdir
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXXCPP
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CPP
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- OTOOL64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -778,6 +780,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -778,6 +778,7 @@ with_pic
</span>  enable_fast_install
  with_gnu_ld
  enable_libtool_lock
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12348,16 +20050,17 @@ index 0b21d7d..a941640 100755
</span>  with_gcc_major_version_only
  '
        ac_precious_vars='build_alias
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1431,6 +1434,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1431,6 +1432,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
  
  Optional Packages:
    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7280,23 +7285,25 @@ _LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7280,23 +7284,25 @@ _LT_EOF
</span>  fi
  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
  $as_echo "$lt_cv_ld_force_load" >&6; }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12382,7 +20085,7 @@ index 0b21d7d..a941640 100755
</span> +      # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
 +      # deployment target is forced to an earlier version.
 +      case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span> +   ;;
        10.[012][,.]*)
 -        _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12397,7 +20100,7 @@ index 0b21d7d..a941640 100755
</span>      ;;
    esac
      if test "$lt_cv_apple_cc_single_mod" = "yes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9261,6 +9268,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9261,6 +9267,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12414,8 +20117,9 @@ index 0b21d7d..a941640 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12423,15 +20127,16 @@ index 0b21d7d..a941640 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12445,49 +20150,41 @@ index 0b21d7d..a941640 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9278,10 +9326,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9278,9 +9327,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11067,7 +11124,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11067,7 +11120,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11080 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11127 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11123 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11173,7 +11230,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11173,7 +11226,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11186 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11233 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11229 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12049,6 +12106,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12049,6 +12102,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12504,8 +20201,9 @@ index 0b21d7d..a941640 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12513,15 +20211,16 @@ index 0b21d7d..a941640 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12535,38 +20234,31 @@ index 0b21d7d..a941640 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12066,12 +12164,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12066,12 +12162,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13912,16 +14023,6 @@ freebsd* | dragonfly*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13912,16 +14016,6 @@ freebsd* | dragonfly*)
</span>    esac
    ;;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12583,7 +20275,7 @@ index 0b21d7d..a941640 100755
</span>  haiku*)
    version_type=linux
    need_lib_prefix=no
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14043,7 +14144,7 @@ linux*oldld* | linux*aout* | linux*coff*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14043,7 +14137,7 @@ linux*oldld* | linux*aout* | linux*coff*)
</span>  # project, but have not yet been accepted: they are GCC-local changes
  # for the time being.  (See
  # https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12592,48 +20284,8 @@ index 0b21d7d..a941640 100755
</span>    version_type=linux
    need_lib_prefix=no
    need_version=no
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14431,6 +14532,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Only expand once:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if test x$enable_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ENABLE_DARWIN_AT_RPATH_FALSE=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Forbid libtool to hardcode RPATH, because we want to be able to specify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # library search directory using LD_LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- hardcode_into_libs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14634,6 +14744,10 @@ if test -z "${PLUGIN_HOST_TRUE}" && test -z "${PLUGIN_HOST_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   as_fn_error $? "conditional \"PLUGIN_HOST\" was never defined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test -z "${ENABLE_DARWIN_AT_RPATH_TRUE}" && test -z "${ENABLE_DARWIN_AT_RPATH_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git liboffloadmic/plugin/configure.ac liboffloadmic/plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index cbcd013..3329b03 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- liboffloadmic/plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ liboffloadmic/plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -134,6 +134,8 @@ esac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AC_LIBTOOL_DLOPEN
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+AM_CONDITIONAL([ENABLE_DARWIN_AT_RPATH], [test x$enable_darwin_at_rpath = xyes])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Forbid libtool to hardcode RPATH, because we want to be able to specify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # library search directory using LD_LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- hardcode_into_libs=no
</span> diff --git libphobos/configure libphobos/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9da06f0..9fbb3c9 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9da06f087d0..77fd1728549 100755
</span> --- libphobos/configure
 +++ libphobos/configure
 @@ -707,6 +707,8 @@ get_gcc_base_ver
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12653,16 +20305,26 @@ index 9da06f0..9fbb3c9 100755
</span>  with_gcc_major_version_only
  enable_werror
  with_libatomic
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1490,6 +1493,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1490,6 +1493,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-werror         turns on -Werror [default=no]
    --enable-version-specific-runtime-libs
                            Specify that runtime libraries should be installed
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9944,6 +9949,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8239,7 +8245,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9944,6 +9950,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12679,8 +20341,9 @@ index 9da06f0..9fbb3c9 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12688,15 +20351,16 @@ index 9da06f0..9fbb3c9 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12710,49 +20374,41 @@ index 9da06f0..9fbb3c9 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9961,10 +10007,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9961,9 +10010,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11750,7 +11805,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11750,7 +11803,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11753 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11808 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11806 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11856,7 +11911,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11856,7 +11909,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11859 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11914 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11912 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13381,6 +13436,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13381,6 +13434,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12769,8 +20425,9 @@ index 9da06f0..9fbb3c9 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12778,15 +20435,16 @@ index 9da06f0..9fbb3c9 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12800,31 +20458,23 @@ index 9da06f0..9fbb3c9 100755
</span>    archive_cmds_need_lc_D=no
    hardcode_direct_D=no
    hardcode_automatic_D=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13398,10 +13494,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13398,9 +13494,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_D="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_D="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_D="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_D="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_D="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_D="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_D="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_D="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_D="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_D="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_D="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_D="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_D="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_D="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_D="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_D="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_D="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs_D=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -14002,6 +14107,14 @@ CFLAGS=$lt_save_CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14002,6 +14102,14 @@ CFLAGS=$lt_save_CFLAGS
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12839,7 +20489,7 @@ index 9da06f0..9fbb3c9 100755
</span>  
  # libtool variables for Phobos shared and position-independent compiles.
  #
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15726,6 +15839,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15726,6 +15834,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12851,7 +20501,7 @@ index 9da06f0..9fbb3c9 100755
</span>    as_fn_error $? "conditional \"DRUNTIME_CPU_AARCH64\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libphobos/configure.ac libphobos/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 31209ba..cc37258 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 31209ba2920..cc372587939 100644
</span> --- libphobos/configure.ac
 +++ libphobos/configure.ac
 @@ -93,6 +93,7 @@ AM_PROG_LIBTOOL
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12863,7 +20513,7 @@ index 31209ba..cc37258 100644
</span>  # libtool variables for Phobos shared and position-independent compiles.
  #
 diff --git libphobos/libdruntime/Makefile.am libphobos/libdruntime/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6ca4012..861ec0e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6ca4012b713..861ec0ebc03 100644
</span> --- libphobos/libdruntime/Makefile.am
 +++ libphobos/libdruntime/Makefile.am
 @@ -128,8 +128,11 @@ ALL_DRUNTIME_SOURCES = $(DRUNTIME_DSOURCES) $(DRUNTIME_CSOURCES) \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12880,7 +20530,7 @@ index 6ca4012..861ec0e 100644
</span>  libgdruntime_la_DEPENDENCIES = $(DRTSTUFF)
  # Also override library link commands: This is not strictly
 diff --git libphobos/libdruntime/Makefile.in libphobos/libdruntime/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f7f78d7..9f3361c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f7f78d71ff7..9f3361c7702 100644
</span> --- libphobos/libdruntime/Makefile.in
 +++ libphobos/libdruntime/Makefile.in
 @@ -805,8 +805,9 @@ ALL_DRUNTIME_SOURCES = $(DRUNTIME_DSOURCES) $(DRUNTIME_CSOURCES) \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12894,35 +20544,114 @@ index f7f78d7..9f3361c 100644
</span>  
  libgdruntime_la_LIBADD = $(LIBATOMIC) $(LIBBACKTRACE)
  libgdruntime_la_DEPENDENCIES = $(DRTSTUFF)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/libdruntime/config/aarch64/switchcontext.S libphobos/libdruntime/config/aarch64/switchcontext.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cf96e28fb50..3df60947fba 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/libdruntime/config/aarch64/switchcontext.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/libdruntime/config/aarch64/switchcontext.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,7 +44,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .global CSYM(fiber_switchContext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .type CSYM(fiber_switchContext), %function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .align 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CSYM(fiber_switchContext):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .cfi_startproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,8 +79,9 @@ CSYM(fiber_switchContext):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ldp     d15, d14, [sp], #20*8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .size CSYM(fiber_switchContext),.-CSYM(fiber_switchContext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * When generating any kind of backtrace (gdb, exception handling) for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * a function called in a Fiber, we need to tell the unwinder to stop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -93,11 +96,15 @@ CSYM(fiber_switchContext):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .global CSYM(fiber_trampoline)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .p2align  2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .type CSYM(fiber_trampoline), %function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CSYM(fiber_trampoline):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .cfi_startproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .cfi_undefined x30
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // fiber_entryPoint never returns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     bl CSYM(fiber_entryPoint)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .size CSYM(fiber_trampoline),.-CSYM(fiber_trampoline)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/libdruntime/config/arm/switchcontext.S libphobos/libdruntime/config/arm/switchcontext.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 562e0c76f42..72b281febb8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/libdruntime/config/arm/switchcontext.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/libdruntime/config/arm/switchcontext.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,11 +60,15 @@ see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__ARM_PCS_VFP) || (defined(__ARM_PCS) && !defined(__SOFTFP__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .fpu vfp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .global CSYM(fiber_switchContext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .type CSYM(fiber_switchContext), %function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    .global CSYM(fiber_switchContext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .align 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CSYM(fiber_switchContext):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .cfi_sections .debug_frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -111,8 +115,12 @@ CSYM(fiber_switchContext):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mov lr, #0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // return by writing lr into pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mov pc, r1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .fnend
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     .size CSYM(fiber_switchContext),.-CSYM(fiber_switchContext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    .cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span> diff --git libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e29e426..be1043e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e29e42648b6..aa93d2be2a1 100644
</span> --- libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
 +++ libphobos/libdruntime/core/internal/gc/impl/conservative/gc.d
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -96,7 +96,7 @@ private
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,8 +29,13 @@ module core.internal.gc.impl.conservative.gc;
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-         version (COLLECT_FORK)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             version (OSX)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                pid_t __fork() nothrow;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                pid_t fork() nothrow;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /***************************************************/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version = COLLECT_PARALLEL;  // parallel scanning
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-version (Posix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    version = COLLECT_FORK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++version (GNU)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  version (linux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    version = COLLECT_FORK;  // uses clone(), battle tested and reliable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else version (Posix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  version = COLLECT_FORK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import core.internal.gc.bits;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import core.internal.gc.os;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/libdruntime/core/thread/fiber.d libphobos/libdruntime/core/thread/fiber.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bd53eed2d10..5a3d4cce216 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/libdruntime/core/thread/fiber.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/libdruntime/core/thread/fiber.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1788,6 +1788,7 @@ version (OSX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     version (X86)    version = UnsafeFiberMigration;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     version (X86_64) version = UnsafeFiberMigration;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    version (AArch64) version = UnsafeFiberMigration;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-     enum
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -2928,11 +2928,8 @@ struct Gcx
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             fflush(null); // avoid duplicated FILE* output
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        version (OSX)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--            auto pid = __fork(); // avoids calling handlers (from libc source code)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--        else version (linux)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        version (linux)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // clone() fits better as we don't want to do anything but scanning in the child process.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             // no fork-handlers are called, so we can avoid deadlocks due to malloc locks. Probably related:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version (UnsafeFiberMigration)
</span> diff --git libphobos/src/Makefile.am libphobos/src/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index da7a200..a47d985 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index da7a2004ff8..a47d985c5b7 100644
</span> --- libphobos/src/Makefile.am
 +++ libphobos/src/Makefile.am
 @@ -44,8 +44,11 @@ toolexeclib_DATA = libgphobos.spec
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12939,7 +20668,7 @@ index da7a200..a47d985 100644
</span>  libgphobos_la_LIBADD = ../libdruntime/libgdruntime_convenience.la
  else
 diff --git libphobos/src/Makefile.in libphobos/src/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6f58fee..212ea24 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6f58fee01ac..212ea2469f2 100644
</span> --- libphobos/src/Makefile.in
 +++ libphobos/src/Makefile.in
 @@ -528,8 +528,9 @@ toolexeclib_DATA = libgphobos.spec
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12953,17 +20682,47 @@ index 6f58fee..212ea24 100644
</span>  
  @ENABLE_LIBDRUNTIME_ONLY_FALSE@libgphobos_la_LIBADD = \
  @ENABLE_LIBDRUNTIME_ONLY_FALSE@    ../libdruntime/libgdruntime_convenience.la $(LIBZ)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libphobos/testsuite/libphobos.gc/forkgc2.d libphobos/testsuite/libphobos.gc/forkgc2.d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index de7796c..de4baaf 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libphobos/testsuite/libphobos.gc/forkgc2.d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libphobos/testsuite/libphobos.gc/forkgc2.d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,3 +1,4 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+// { dg-skip-if "test hangs the testsuite" { *-*-darwin* } }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import core.stdc.stdlib : exit;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import core.sys.posix.sys.wait : waitpid;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- import core.sys.posix.unistd : fork;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/testsuite/lib/libphobos.exp libphobos/testsuite/lib/libphobos.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1825a45622c..2508d7ec10c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/testsuite/lib/libphobos.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/testsuite/lib/libphobos.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -234,7 +234,7 @@ proc libphobos_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if { "$mldir" == "." } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.${shlib_ext}*]] >= 1 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         append ld_library_path ":${gccdir}/${mldir}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/testsuite/testsuite_flags.in libphobos/testsuite/testsuite_flags.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 528cff4bf13..84af947e8ab 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/testsuite/testsuite_flags.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/testsuite/testsuite_flags.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,8 +36,7 @@ case ${query} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --gdcpaths)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       GDCPATHS_default="-nostdinc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      GDCPATHS_config="-B${BUILD_DIR}/src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                       -I${BUILD_DIR}/libdruntime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      GDCPATHS_config="-I${BUILD_DIR}/libdruntime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -I${SRC_DIR}/libdruntime"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # Include phobos in search path if compiling in library.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if [ "x@ENABLE_LIBDRUNTIME_ONLY_FALSE@" = "x" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,9 +46,8 @@ case ${query} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     --gdcldflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       GDCLDFLAGS="-B${BUILD_DIR}/src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -B${BUILD_DIR}/libdruntime/gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -B${BUILD_DIR}/src/.libs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -L${BUILD_DIR}/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            -B${BUILD_DIR}/libdruntime/gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  -B${BUILD_DIR}/src/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       echo ${GDCLDFLAGS}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *)
</span> diff --git libquadmath/Makefile.am libquadmath/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 35dffb4..4bf4bf6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 35dffb46f6e..f199adf4602 100644
</span> --- libquadmath/Makefile.am
 +++ libquadmath/Makefile.am
 @@ -36,8 +36,13 @@ endif
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12977,12 +20736,12 @@ index 35dffb4..4bf4bf6 100644
</span> +endif
  libquadmath_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
 -                       $(version_arg) $(lt_host_flags) -lm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+       $(version_arg) $(lt_host_flags) $(LIBM) $(libquadmath_darwin_rpath) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(version_arg) $(lt_host_flags) $(LIBM) $(libquadmath_darwin_rpath)
</span>  libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD)
  
  nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h
 diff --git libquadmath/Makefile.in libquadmath/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 8c01121..b59aac7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8c011212258..70025758cd5 100644
</span> --- libquadmath/Makefile.in
 +++ libquadmath/Makefile.in
 @@ -355,6 +355,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13001,12 +20760,12 @@ index 8c01121..b59aac7 100644
</span> +@BUILD_LIBQUADMATH_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@    -Wl,-rpath,@loader_path
  @BUILD_LIBQUADMATH_TRUE@libquadmath_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
 -@BUILD_LIBQUADMATH_TRUE@                       $(version_arg) $(lt_host_flags) -lm
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+@BUILD_LIBQUADMATH_TRUE@       $(version_arg) $(lt_host_flags) $(LIBM) $(libquadmath_darwin_rpath) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@BUILD_LIBQUADMATH_TRUE@  $(version_arg) $(lt_host_flags) $(LIBM) $(libquadmath_darwin_rpath)
</span>  
  @BUILD_LIBQUADMATH_TRUE@libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD)
  @BUILD_LIBQUADMATH_TRUE@nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h
 diff --git libquadmath/configure libquadmath/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index b3ee64f..23a99be 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b3ee64f9c7d..735d1e05e68 100755
</span> --- libquadmath/configure
 +++ libquadmath/configure
 @@ -644,11 +644,14 @@ LIBQUAD_USE_SYMVER_GNU_FALSE
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13032,16 +20791,26 @@ index b3ee64f..23a99be 100755
</span>  enable_maintainer_mode
  with_toolexeclibdir
  enable_symvers
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1435,6 +1439,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1435,6 +1439,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-maintainer-mode
                            enable make rules and dependencies not useful (and
                            sometimes confusing) to the casual installer
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8979,6 +8985,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7267,7 +7274,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8979,6 +8986,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13058,8 +20827,9 @@ index b3ee64f..23a99be 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13067,15 +20837,16 @@ index b3ee64f..23a99be 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13089,49 +20860,41 @@ index b3ee64f..23a99be 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8996,10 +9043,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8996,9 +9046,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10806,7 +10862,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10806,7 +10860,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 10819 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 10865 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10863 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10912,7 +10968,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10912,7 +10966,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 10925 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 10971 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10969 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11173,6 +11229,14 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11173,6 +11227,14 @@ esac
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13146,156 +20909,28 @@ index b3ee64f..23a99be 100755
</span>  
  
  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12137,6 +12201,148 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12137,6 +12199,20 @@ esac
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>++# AC_CHECK_LIBM variant which avoids AC_CHECK_LIB (that doesn't work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# on bare metal).  In the past we've used -lm in Makefile.am unconditionally,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# let's use it there unless target knows it doesn't need that.
</span> +LIBM=
 +case $host in
 +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
 +  # These system don't have libm, or don't need it
 +  ;;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+*-ncr-sysv4.3*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+$as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIBS="-lmw  $LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   builtin and then its argument prototype would still apply.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern "C"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+char _mwvalidcheckl ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+main ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+return _mwvalidcheckl ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+_ACEOF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_cv_lib_mw__mwvalidcheckl=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_cv_lib_mw__mwvalidcheckl=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIBS=$ac_check_lib_save_LIBS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+$as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  LIBM="-lmw"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+$as_echo_n "checking for cos in -lm... " >&6; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ${ac_cv_lib_m_cos+:} false; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIBS="-lm  $LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   builtin and then its argument prototype would still apply.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern "C"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+char cos ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+main ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+return cos ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+_ACEOF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_cv_lib_m_cos=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_cv_lib_m_cos=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIBS=$ac_check_lib_save_LIBS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+$as_echo "$ac_cv_lib_m_cos" >&6; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "x$ac_cv_lib_m_cos" = xyes; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  LIBM="$LIBM -lm"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ;;
</span> +*)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+$as_echo_n "checking for cos in -lm... " >&6; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ${ac_cv_lib_m_cos+:} false; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIBS="-lm  $LIBS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+   builtin and then its argument prototype would still apply.  */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+extern "C"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+char cos ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+main ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+return cos ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+_ACEOF
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_cv_lib_m_cos=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  ac_cv_lib_m_cos=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+LIBS=$ac_check_lib_save_LIBS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+$as_echo "$ac_cv_lib_m_cos" >&6; }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+if test "x$ac_cv_lib_m_cos" = xyes; then :
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  LIBM="-lm"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LIBM=-lm
</span> +  ;;
 +esac
 +
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span> +
  for ac_header in fenv.h langinfo.h locale.h wchar.h wctype.h limits.h ctype.h printf.h errno.h
  do :
    as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13031,7 +13237,7 @@ case "$host" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13031,7 +13107,7 @@ case "$host" in
</span>      case "$enable_cet" in
        auto)
        # Check if target supports multi-byte NOPs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13304,7 +20939,7 @@ index b3ee64f..23a99be 100755
</span>   cet_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -fcf-protection"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13397,6 +13603,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13397,6 +13473,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span>    as_fn_error $? "conditional \"BUILD_INFO\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13316,7 +20951,7 @@ index b3ee64f..23a99be 100755
</span>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libquadmath/configure.ac libquadmath/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index eec4084..94a3f21 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eec4084a45f..349be2607c6 100644
</span> --- libquadmath/configure.ac
 +++ libquadmath/configure.ac
 @@ -59,6 +59,7 @@ AM_PROG_LIBTOOL
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13327,17 +20962,29 @@ index eec4084..94a3f21 100644
</span>  
  AM_MAINTAINER_MODE
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -121,6 +122,8 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -121,6 +122,20 @@ esac
</span>  AC_SUBST(toolexecdir)
  AC_SUBST(toolexeclibdir)
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+AC_CHECK_LIBM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# AC_CHECK_LIBM variant which avoids AC_CHECK_LIB (that doesn't work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# on bare metal).  In the past we've used -lm in Makefile.am unconditionally,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# let's use it there unless target knows it doesn't need that.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBM=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # These system don't have libm, or don't need it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LIBM=-lm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST([LIBM])
</span> +
  AC_CHECK_HEADERS(fenv.h langinfo.h locale.h wchar.h wctype.h limits.h ctype.h printf.h errno.h)
  LIBQUAD_CHECK_MATH_H_SIGNGAM
  
 diff --git libsanitizer/Makefile.in libsanitizer/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index aab88de..65e7f2e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index aab88deb6e8..65e7f2e9553 100644
</span> --- libsanitizer/Makefile.in
 +++ libsanitizer/Makefile.in
 @@ -345,7 +345,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13349,7 +20996,7 @@ index aab88de..65e7f2e 100644
</span>  sharedstatedir = @sharedstatedir@
  srcdir = @srcdir@
 diff --git libsanitizer/asan/Makefile.am libsanitizer/asan/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4f802f7..223d3e0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4f802f723d6..223d3e07816 100644
</span> --- libsanitizer/asan/Makefile.am
 +++ libsanitizer/asan/Makefile.am
 @@ -60,7 +60,12 @@ libasan_la_LIBADD += $(top_builddir)/libbacktrace/libsanitizer_libbacktrace.la
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13367,7 +21014,7 @@ index 4f802f7..223d3e0 100644
</span>  libasan_preinit.o: asan_preinit.o
        cp $< $@
 diff --git libsanitizer/asan/Makefile.in libsanitizer/asan/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 2476fbc..e88e5e0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2476fbc5a26..e88e5e0b0a7 100644
</span> --- libsanitizer/asan/Makefile.in
 +++ libsanitizer/asan/Makefile.in
 @@ -399,7 +399,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13393,7 +21040,7 @@ index 2476fbc..e88e5e0 100644
</span>  # Work around what appears to be a GNU make bug handling MAKEFLAGS
  # values defined in terms of make variables, as is the case for CC and
 diff --git libsanitizer/configure libsanitizer/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ae8c1bd..209582f 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae8c1bd7e83..96530d540de 100755
</span> --- libsanitizer/configure
 +++ libsanitizer/configure
 @@ -666,6 +666,8 @@ LSAN_SUPPORTED_FALSE
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13413,16 +21060,26 @@ index ae8c1bd..209582f 100755
</span>  enable_werror
  with_gcc_major_version_only
  enable_cet
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1471,6 +1474,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1471,6 +1474,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --disable-werror        disable building with -Werror
    --enable-cet            enable Intel CET in target libraries [default=auto]
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10553,6 +10558,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8848,7 +8854,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10553,6 +10559,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13439,8 +21096,9 @@ index ae8c1bd..209582f 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13448,15 +21106,16 @@ index ae8c1bd..209582f 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13470,49 +21129,41 @@ index ae8c1bd..209582f 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10570,10 +10616,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10570,9 +10619,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12359,7 +12414,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12359,7 +12412,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12362 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12417 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12415 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12465,7 +12520,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12465,7 +12518,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12468 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12523 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12521 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13341,6 +13396,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13341,6 +13394,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13529,8 +21180,9 @@ index ae8c1bd..209582f 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13538,15 +21190,16 @@ index ae8c1bd..209582f 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13560,38 +21213,31 @@ index ae8c1bd..209582f 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13358,12 +13454,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13358,12 +13454,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15763,6 +15872,15 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15763,6 +15867,15 @@ esac
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13607,7 +21253,7 @@ index ae8c1bd..209582f 100755
</span>  # The cast to long int works around a bug in the HP C Compiler
  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -17153,6 +17271,10 @@ if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17153,6 +17266,10 @@ if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
</span>    as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13619,7 +21265,7 @@ index ae8c1bd..209582f 100755
</span>    as_fn_error $? "conditional \"TSAN_SUPPORTED\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libsanitizer/configure.ac libsanitizer/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ad49f29..7115c78 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ad49f29db7e..7115c782c82 100644
</span> --- libsanitizer/configure.ac
 +++ libsanitizer/configure.ac
 @@ -85,6 +85,8 @@ esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13631,21 +21277,8 @@ index ad49f29..7115c78 100644
</span>  AC_CHECK_SIZEOF([void *])
  
  if test "${multilib}" = "yes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git libsanitizer/configure.tgt libsanitizer/configure.tgt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index fb89df4..bc169c3 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- libsanitizer/configure.tgt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ libsanitizer/configure.tgt
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -64,7 +64,7 @@ case "${target}" in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           HWASAN_SUPPORTED=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  x86_64-*-darwin2* | x86_64-*-darwin1[2-9]* | i?86-*-darwin1[2-9]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  x86_64-*-darwin2[01]* | x86_64-*-darwin1[2-9]* | i?86-*-darwin1[2-9]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   TSAN_SUPPORTED=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   EXTRA_CXXFLAGS="${EXTRA_CXXFLAGS} -Wl,-undefined,dynamic_lookup"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   ;;
</span> diff --git libsanitizer/hwasan/Makefile.am libsanitizer/hwasan/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e12c0a0..4061078 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e12c0a0ce71..4061078c734 100644
</span> --- libsanitizer/hwasan/Makefile.am
 +++ libsanitizer/hwasan/Makefile.am
 @@ -46,7 +46,11 @@ libhwasan_la_LIBADD += $(top_builddir)/libbacktrace/libsanitizer_libbacktrace.la
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13662,7 +21295,7 @@ index e12c0a0..4061078 100644
</span>  # Work around what appears to be a GNU make bug handling MAKEFLAGS
  # values defined in terms of make variables, as is the case for CC and
 diff --git libsanitizer/hwasan/Makefile.in libsanitizer/hwasan/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 67553f3..d20f2dc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 67553f3979d..d20f2dc6eef 100644
</span> --- libsanitizer/hwasan/Makefile.in
 +++ libsanitizer/hwasan/Makefile.in
 @@ -387,7 +387,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13686,7 +21319,7 @@ index 67553f3..d20f2dc 100644
</span>  # Work around what appears to be a GNU make bug handling MAKEFLAGS
  # values defined in terms of make variables, as is the case for CC and
 diff --git libsanitizer/interception/Makefile.in libsanitizer/interception/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index bce788a..85dd386 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bce788aeea7..85dd386de47 100644
</span> --- libsanitizer/interception/Makefile.in
 +++ libsanitizer/interception/Makefile.in
 @@ -317,7 +317,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13698,7 +21331,7 @@ index bce788a..85dd386 100644
</span>  sharedstatedir = @sharedstatedir@
  srcdir = @srcdir@
 diff --git libsanitizer/libbacktrace/Makefile.in libsanitizer/libbacktrace/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ece4f11..c0243fa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ece4f11a855..c0243fa4aab 100644
</span> --- libsanitizer/libbacktrace/Makefile.in
 +++ libsanitizer/libbacktrace/Makefile.in
 @@ -367,7 +367,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13710,7 +21343,7 @@ index ece4f11..c0243fa 100644
</span>  sharedstatedir = @sharedstatedir@
  srcdir = @srcdir@
 diff --git libsanitizer/lsan/Makefile.am libsanitizer/lsan/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6ff28ff..7701b0e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6ff28ff5eea..7701b0e18cf 100644
</span> --- libsanitizer/lsan/Makefile.am
 +++ libsanitizer/lsan/Makefile.am
 @@ -41,8 +41,12 @@ if LIBBACKTRACE_SUPPORTED
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13729,7 +21362,7 @@ index 6ff28ff..7701b0e 100644
</span>   cp $< $@
  
 diff --git libsanitizer/lsan/Makefile.in libsanitizer/lsan/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 857f244..078edf0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 857f244cd86..078edf01fda 100644
</span> --- libsanitizer/lsan/Makefile.in
 +++ libsanitizer/lsan/Makefile.in
 @@ -362,7 +362,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13763,7 +21396,7 @@ index 857f244..078edf0 100644
</span>   cp $< $@
  
 diff --git libsanitizer/sanitizer_common/Makefile.in libsanitizer/sanitizer_common/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c4b009fe..e5e1c1d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c4b009fed83..e5e1c1d51fe 100644
</span> --- libsanitizer/sanitizer_common/Makefile.in
 +++ libsanitizer/sanitizer_common/Makefile.in
 @@ -354,7 +354,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13775,7 +21408,7 @@ index c4b009fe..e5e1c1d 100644
</span>  sharedstatedir = @sharedstatedir@
  srcdir = @srcdir@
 diff --git libsanitizer/tsan/Makefile.am libsanitizer/tsan/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ae588a6..47ee50b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae588a67df6..47ee50bee1a 100644
</span> --- libsanitizer/tsan/Makefile.am
 +++ libsanitizer/tsan/Makefile.am
 @@ -58,7 +58,11 @@ libtsan_la_LIBADD += $(top_builddir)/libbacktrace/libsanitizer_libbacktrace.la
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13792,7 +21425,7 @@ index ae588a6..47ee50b 100644
</span>  libtsan_preinit.o: tsan_preinit.o
        cp $< $@
 diff --git libsanitizer/tsan/Makefile.in libsanitizer/tsan/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 538d2e8..d6efff7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 538d2e8eb68..d6efff71e2f 100644
</span> --- libsanitizer/tsan/Makefile.in
 +++ libsanitizer/tsan/Makefile.in
 @@ -391,7 +391,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13816,7 +21449,7 @@ index 538d2e8..d6efff7 100644
</span>  # Work around what appears to be a GNU make bug handling MAKEFLAGS
  # values defined in terms of make variables, as is the case for CC and
 diff --git libsanitizer/ubsan/Makefile.am libsanitizer/ubsan/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d480f26..7769b34 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d480f26adc0..7769b3437e4 100644
</span> --- libsanitizer/ubsan/Makefile.am
 +++ libsanitizer/ubsan/Makefile.am
 @@ -36,7 +36,12 @@ if LIBBACKTRACE_SUPPORTED
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13834,7 +21467,7 @@ index d480f26..7769b34 100644
</span>  # Use special rules for files that require RTTI support.
  ubsan_handlers_cxx.% ubsan_type_hash.% ubsan_type_hash_itanium.% : AM_CXXFLAGS += -frtti
 diff --git libsanitizer/ubsan/Makefile.in libsanitizer/ubsan/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 497e033..7e51480 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 497e0338696..7e51480e970 100644
</span> --- libsanitizer/ubsan/Makefile.in
 +++ libsanitizer/ubsan/Makefile.in
 @@ -356,7 +356,6 @@ pdfdir = @pdfdir@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13860,7 +21493,7 @@ index 497e033..7e51480 100644
</span>  # Work around what appears to be a GNU make bug handling MAKEFLAGS
  # values defined in terms of make variables, as is the case for CC and
 diff --git libssp/Makefile.am libssp/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 945dc3c..d2a92b3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 945dc3c8336..d2a92b3aed1 100644
</span> --- libssp/Makefile.am
 +++ libssp/Makefile.am
 @@ -49,8 +49,12 @@ libssp_la_SOURCES = \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13878,7 +21511,7 @@ index 945dc3c..d2a92b3 100644
</span>  libssp_nonshared_la_SOURCES = \
        ssp-local.c
 diff --git libssp/Makefile.in libssp/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index bc8a0dc..1cf8636 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bc8a0dc2b28..1cf86361b96 100644
</span> --- libssp/Makefile.in
 +++ libssp/Makefile.in
 @@ -376,8 +376,11 @@ libssp_la_SOURCES = \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13895,7 +21528,7 @@ index bc8a0dc..1cf8636 100644
</span>  libssp_nonshared_la_SOURCES = \
        ssp-local.c
 diff --git libssp/configure libssp/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 10ba209..5d62fef 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 10ba209bde8..cb0a9a4308a 100755
</span> --- libssp/configure
 +++ libssp/configure
 @@ -636,6 +636,8 @@ LIBOBJS
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13915,16 +21548,17 @@ index 10ba209..5d62fef 100755
</span>  with_toolexeclibdir
  with_gcc_major_version_only
  '
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1426,6 +1429,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1426,6 +1429,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
  
  Optional Packages:
    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4338,7 +4343,7 @@ case "$host" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4338,7 +4344,7 @@ case "$host" in
</span>      case "$enable_cet" in
        auto)
        # Check if target supports multi-byte NOPs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13933,7 +21567,16 @@ index 10ba209..5d62fef 100755
</span>   cet_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -fcf-protection"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9165,6 +9170,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7453,7 +7459,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9165,6 +9171,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13950,8 +21593,9 @@ index 10ba209..5d62fef 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13959,15 +21603,16 @@ index 10ba209..5d62fef 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -13981,49 +21626,41 @@ index 10ba209..5d62fef 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9182,10 +9228,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9182,9 +9231,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10992,7 +11047,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10992,7 +11045,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11005 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11050 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11048 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11098,7 +11153,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11098,7 +11151,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 11111 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 11156 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11154 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11376,6 +11431,15 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11376,6 +11429,15 @@ fi
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14039,7 +21676,7 @@ index 10ba209..5d62fef 100755
</span>  # Calculate toolexeclibdir
  # Also toolexecdir, though it's only used in toolexeclibdir
  case ${version_specific_libs} in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11585,6 +11649,10 @@ if test -z "${LIBSSP_USE_SYMVER_SUN_TRUE}" && test -z "${LIBSSP_USE_SYMVER_SUN_F
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11585,6 +11647,10 @@ if test -z "${LIBSSP_USE_SYMVER_SUN_TRUE}" && test -z "${LIBSSP_USE_SYMVER_SUN_F
</span>    as_fn_error $? "conditional \"LIBSSP_USE_SYMVER_SUN\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14051,7 +21688,7 @@ index 10ba209..5d62fef 100755
</span>  : "${CONFIG_STATUS=./config.status}"
  ac_write_fail=0
 diff --git libssp/configure.ac libssp/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f30f81c..90778e2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f30f81c54f6..90778e2355d 100644
</span> --- libssp/configure.ac
 +++ libssp/configure.ac
 @@ -165,6 +165,8 @@ AC_SUBST(enable_static)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14063,20 +21700,41 @@ index f30f81c..90778e2 100644
</span>  # Calculate toolexeclibdir
  # Also toolexecdir, though it's only used in toolexeclibdir
  case ${version_specific_libs} in
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/config/os/bsd/darwin/os_defines.h libstdc++-v3/config/os/bsd/darwin/os_defines.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f56f31ad2f5..5b611d32e0d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/config/os/bsd/darwin/os_defines.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/config/os/bsd/darwin/os_defines.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,11 +33,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    links to, so there's no need for weak-ness for that.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define _GLIBCXX_GTHREAD_USE_WEAK 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// On Darwin, in order to enable overriding of operator new and delete,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// GCC makes the definition of these functions weak, relies on the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// loader to implement weak semantics properly, and uses
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// -flat_namespace to work around the way that it doesn't.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// On Darwin, in order to enable overriding of operator new and delete, the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// ABI library exports a weak definition. The static linker will override this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// iff a user-provided implementation is given (providing that the user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// implementation is not itself a weak definition).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define _GLIBCXX_WEAK_DEFINITION __attribute__ ((__weak__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1080)
</span> diff --git libstdc++-v3/configure libstdc++-v3/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index c07e275..6d2edbc 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ccc23f1b352..8c15ae6f9bd 100755
</span> --- libstdc++-v3/configure
 +++ libstdc++-v3/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -786,6 +786,8 @@ GLIBCXX_HOSTED_TRUE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- glibcxx_compiler_shared_flag
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- glibcxx_compiler_pic_flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -788,6 +788,8 @@ glibcxx_compiler_pic_flag
</span>  glibcxx_lt_pic_flag
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ OS_IS_DARWIN_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OS_IS_DARWIN_TRUE
</span> +ENABLE_DARWIN_AT_RPATH_FALSE
 +ENABLE_DARWIN_AT_RPATH_TRUE
  enable_static
  enable_shared
  lt_host_flags
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -921,6 +923,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -923,6 +925,7 @@ with_pic
</span>  enable_fast_install
  with_gnu_ld
  enable_libtool_lock
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14084,16 +21742,26 @@ index c07e275..6d2edbc 100755
</span>  enable_hosted_libstdcxx
  enable_libstdcxx_verbose
  enable_libstdcxx_pch
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1608,6 +1611,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1610,6 +1613,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --disable-hosted-libstdcxx
                            only build freestanding C++ runtime support
    --disable-libstdcxx-verbose
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10364,6 +10369,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8526,7 +8532,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10366,6 +10372,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14110,8 +21778,9 @@ index c07e275..6d2edbc 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14119,15 +21788,16 @@ index c07e275..6d2edbc 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14141,49 +21811,41 @@ index c07e275..6d2edbc 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10381,10 +10427,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10383,9 +10432,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12191,7 +12246,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12193,7 +12246,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 12194 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12196 "configure"
</span> +#line 12249 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12297,7 +12352,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12299,7 +12352,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 12300 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12302 "configure"
</span> +#line 12355 "configure"
  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13179,6 +13234,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13181,6 +13234,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14200,8 +21862,9 @@ index c07e275..6d2edbc 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14209,15 +21872,16 @@ index c07e275..6d2edbc 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14231,38 +21895,31 @@ index c07e275..6d2edbc 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13196,12 +13292,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13198,12 +13294,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15578,6 +15687,14 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15580,6 +15684,14 @@ esac
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14275,63 +21932,63 @@ index c07e275..6d2edbc 100755
</span> +fi
 +
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if test "$enable_vtable_verify" = yes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   predep_objects_CXX="${predep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_start.o"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15981,7 +16098,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os_is_darwin=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case ${host_os} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15997,7 +16109,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
</span>    # Fake what AC_TRY_COMPILE does.
  
      cat > conftest.$ac_ext << EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 15984 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 16101 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16000 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16112 "configure"
</span>  int main()
  {
    typedef bool atomic_type;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16016,7 +16133,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16032,7 +16144,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
</span>      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 16019 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 16136 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16035 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16147 "configure"
</span>  int main()
  {
    typedef short atomic_type;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16051,7 +16168,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16067,7 +16179,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
</span>      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 16054 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 16171 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16070 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16182 "configure"
</span>  int main()
  {
    // NB: _Atomic_word not necessarily int.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16087,7 +16204,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16103,7 +16215,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
</span>      rm -f conftest*
  
      cat > conftest.$ac_ext << EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 16090 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 16207 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16106 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16218 "configure"
</span>  int main()
  {
    typedef long long atomic_type;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16243,7 +16360,7 @@ $as_echo "mutex" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16259,7 +16371,7 @@ $as_echo "mutex" >&6; }
</span>    # unnecessary for this test.
  
      cat > conftest.$ac_ext << EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 16246 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 16363 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16262 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16374 "configure"
</span>  int main()
  {
    _Decimal32 d1;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -16285,7 +16402,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16301,7 +16413,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
</span>    # unnecessary for this test.
  
    cat > conftest.$ac_ext << EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>--#line 16288 "configure"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 16405 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16304 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16416 "configure"
</span>  template<typename T1, typename T2>
    struct same
    { typedef T2 type; };
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -79038,6 +79155,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -79309,6 +79421,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span>    as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14339,11 +21996,11 @@ index c07e275..6d2edbc 100755
</span> +  as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
 +Usually this means the macro was only invoked conditionally." "$LINENO" 5
 +fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if test -z "${GLIBCXX_HOSTED_TRUE}" && test -z "${GLIBCXX_HOSTED_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   as_fn_error $? "conditional \"GLIBCXX_HOSTED\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${OS_IS_DARWIN_TRUE}" && test -z "${OS_IS_DARWIN_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   as_fn_error $? "conditional \"OS_IS_DARWIN\" was never defined.
</span>  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libstdc++-v3/configure.ac libstdc++-v3/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index e59bcdb..f3dda5a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dc0c61973d1..f9c9f959848 100644
</span> --- libstdc++-v3/configure.ac
 +++ libstdc++-v3/configure.ac
 @@ -99,6 +99,7 @@ AM_PROG_LIBTOOL
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14352,10 +22009,10 @@ index e59bcdb..f3dda5a 100644
</span>  AC_SUBST(enable_static)
 +AM_CONDITIONAL([ENABLE_DARWIN_AT_RPATH], [test x$enable_darwin_at_rpath = xyes])
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if test "$enable_vtable_verify" = yes; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   predep_objects_CXX="${predep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_start.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os_is_darwin=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case ${host_os} in
</span> diff --git libstdc++-v3/configure.host libstdc++-v3/configure.host
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index ec32980..da5b157 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ec32980aa0d..da5b1578d91 100644
</span> --- libstdc++-v3/configure.host
 +++ libstdc++-v3/configure.host
 @@ -234,11 +234,6 @@ case "${host_os}" in
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14371,10 +22028,10 @@ index ec32980..da5b157 100644
</span>      ;;
    darwin*)
 diff --git libstdc++-v3/src/Makefile.am libstdc++-v3/src/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9c3f4ac..016d68e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b83c222d51d..2ff635a7264 100644
</span> --- libstdc++-v3/src/Makefile.am
 +++ libstdc++-v3/src/Makefile.am
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -133,8 +133,13 @@ libstdc___la_DEPENDENCIES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -139,8 +139,13 @@ libstdc___la_DEPENDENCIES = \
</span>   $(top_builddir)/src/c++17/libc++17convenience.la \
        $(top_builddir)/src/c++20/libc++20convenience.la
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14390,10 +22047,10 @@ index 9c3f4ac..016d68e 100644
</span>  libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) $(lt_host_flags)
  
 diff --git libstdc++-v3/src/Makefile.in libstdc++-v3/src/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 4a06f6c..0dc6c96 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cef290c5d11..3676208223a 100644
</span> --- libstdc++-v3/src/Makefile.in
 +++ libstdc++-v3/src/Makefile.in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -546,8 +546,11 @@ libstdc___la_DEPENDENCIES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -553,8 +553,11 @@ libstdc___la_DEPENDENCIES = \
</span>   $(top_builddir)/src/c++17/libc++17convenience.la \
        $(top_builddir)/src/c++20/libc++20convenience.la
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14406,10 +22063,33 @@ index 4a06f6c..0dc6c96 100644
</span>  
  libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) $(lt_host_flags)
  @GLIBCXX_LDBL_ALT128_COMPAT_FALSE@@GLIBCXX_LDBL_COMPAT_TRUE@LTCXXCOMPILE64 = $(LTCXXCOMPILE)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/testsuite/lib/libstdc++.exp libstdc++-v3/testsuite/lib/libstdc++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 789d0fce549..b5efe1695fa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/testsuite/lib/libstdc++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/testsuite/lib/libstdc++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,9 +133,6 @@ proc libstdc++_init { testfile } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if ![info exists DEFAULT_CXXFLAGS] then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set DEFAULT_CXXFLAGS ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Host specific goo here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if { [string match "powerpc-*-darwin*" $target_triplet] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      append DEFAULT_CXXFLAGS " -multiply_defined suppress"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if { [string match "powerpc-ibm-aix*" $target_triplet] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       append DEFAULT_CXXFLAGS " -Wl,-bmaxdata:0x20000000"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span> diff --git libtool.m4 libtool.m4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index 17f8e5f..5452de0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 17f8e5f3074..1060b698168 100644
</span> --- libtool.m4
 +++ libtool.m4
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1005,7 +1005,7 @@ _LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[[89]]*|UNSET,*-darwin[[12]][[0123456789]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[[89]]*|UNSET,*-darwin[[12]][[0-9]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[[012]][[,.]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span> @@ -1039,6 +1039,45 @@ _LT_EOF
  m4_defun([_LT_DARWIN_LINKER_FEATURES],
  [
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14423,28 +22103,28 @@ index 17f8e5f..5452de0 100644
</span> +  # configuring can override the defaults for any system version that supports
 +  # them - they are, however, forced off for system versions without support.
 +  AC_ARG_ENABLE([darwin-at-rpath],
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+    AS_HELP_STRING([--enable-darwin-at-path],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AS_HELP_STRING([--enable-darwin-at-rpath],
</span> +      [install libraries with @rpath/library-name, requires rpaths to be added to executables]),
 +  [if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[[45678]]*|UNSET,rhapsody*|10.[[01234]][[,.]]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&AS_MESSAGE_LOG_FD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[[4-8]]*|UNSET,rhapsody*|10.[[0-4]][[,.]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  AC_MSG_WARN([Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)])
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
 +   fi],
 +  [case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[[45678]]*|UNSET,rhapsody*|10.[[01234]][[,.]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[[4-8]]*|UNSET,rhapsody*|10.[[0-4]][[,.]]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[[56789]]*|UNSET,darwin2*|10.1[[123456789]][[,.]]*|1[[123456789]].*[[,.]]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&AS_MESSAGE_LOG_FD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[[5-9]]*|UNSET,darwin2*|10.1[[1-9]][[,.]]*|1[[1-9]].*[[,.]]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      AC_MSG_NOTICE([@rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)])
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14456,47 +22136,32 @@ index 17f8e5f..5452de0 100644
</span>    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
    _LT_TAGVAR(hardcode_direct, $1)=no
    _LT_TAGVAR(hardcode_automatic, $1)=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1056,13 +1095,26 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1056,13 +1095,21 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&AS_MESSAGE_LOG_FD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&AS_MESSAGE_LOG_FD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>      m4_if([$1], [CXX],
  [   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  ],[])
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4203,6 +4255,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   [Compiler flag to prevent dynamic linking])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ])# _LT_COMPILER_PIC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+_LT_TAGVAR(enable_darwin_at_rpath, $1)=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # _LT_LINKER_SHLIBS([TAGNAME])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # ----------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -6441,7 +6494,6 @@ fi # test "$_lt_caught_CXX_error" != yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6441,7 +6488,6 @@ fi # test "$_lt_caught_CXX_error" != yes
</span>  AC_LANG_POP
  ])# _LT_LANG_CXX_CONFIG
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14505,7 +22170,7 @@ index 17f8e5f..5452de0 100644
</span>  # ---------------------------------
  # Figure out "hidden" library dependencies from verbose
 diff --git libvtv/configure libvtv/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index d64b4af..4280e3b 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d64b4af5c6b..3ce65ead30a 100755
</span> --- libvtv/configure
 +++ libvtv/configure
 @@ -640,6 +640,8 @@ VTV_CYGMIN_FALSE
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14525,16 +22190,26 @@ index d64b4af..4280e3b 100755
</span>  enable_cet
  with_gcc_major_version_only
  '
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1446,6 +1449,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1446,6 +1449,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-cet            enable Intel CET in target libraries [default=auto]
  
  Optional Packages:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10448,6 +10453,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8743,7 +8749,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10448,6 +10454,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14551,8 +22226,9 @@ index d64b4af..4280e3b 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14560,15 +22236,16 @@ index d64b4af..4280e3b 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14582,49 +22259,41 @@ index d64b4af..4280e3b 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10465,10 +10511,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10465,9 +10514,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12254,7 +12309,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12254,7 +12307,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12267 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12312 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12310 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12360,7 +12415,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12360,7 +12413,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12373 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12418 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12416 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13236,6 +13291,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13236,6 +13289,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>        darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14641,8 +22310,9 @@ index d64b4af..4280e3b 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14650,15 +22320,16 @@ index d64b4af..4280e3b 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14672,38 +22343,31 @@ index d64b4af..4280e3b 100755
</span>    archive_cmds_need_lc_CXX=no
    hardcode_direct_CXX=no
    hardcode_automatic_CXX=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13253,12 +13349,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13253,12 +13349,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>         if test "$lt_cv_apple_cc_single_mod" != "yes"; then
 -      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='\$rpath/\$soname'
</span> +      if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _lt_install_name='@rpath/\$soname'
</span> +      fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++      archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring${_lt_dsymutil}"
</span>        archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
      fi
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15099,16 +15208,6 @@ freebsd* | dragonfly*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15099,16 +15203,6 @@ freebsd* | dragonfly*)
</span>    esac
    ;;
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14720,7 +22384,7 @@ index d64b4af..4280e3b 100755
</span>  haiku*)
    version_type=linux
    need_lib_prefix=no
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15230,7 +15329,7 @@ linux*oldld* | linux*aout* | linux*coff*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15230,7 +15324,7 @@ linux*oldld* | linux*aout* | linux*coff*)
</span>  # project, but have not yet been accepted: they are GCC-local changes
  # for the time being.  (See
  # https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14729,7 +22393,7 @@ index d64b4af..4280e3b 100755
</span>    version_type=linux
    need_lib_prefix=no
    need_version=no
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15642,6 +15741,14 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15642,6 +15736,14 @@ esac
</span>  
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14744,7 +22408,7 @@ index d64b4af..4280e3b 100755
</span>  
  # For libtool versioning info, format is CURRENT:REVISION:AGE
  libtool_VERSION=1:0:0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15672,7 +15779,7 @@ case "$host" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15672,7 +15774,7 @@ case "$host" in
</span>      case "$enable_cet" in
        auto)
        # Check if target supports multi-byte NOPs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14753,7 +22417,7 @@ index d64b4af..4280e3b 100755
</span>   cet_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -fcf-protection"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -15987,6 +16094,10 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15987,6 +16089,10 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
</span>    as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14765,7 +22429,7 @@ index d64b4af..4280e3b 100755
</span>    as_fn_error $? "conditional \"VTV_CYGMIN\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git libvtv/configure.ac libvtv/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f3b937e..50aaadb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f3b937e4b10..50aaadbb3a3 100644
</span> --- libvtv/configure.ac
 +++ libvtv/configure.ac
 @@ -153,6 +153,7 @@ AM_PROG_LIBTOOL
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14777,7 +22441,7 @@ index f3b937e..50aaadb 100644
</span>  # For libtool versioning info, format is CURRENT:REVISION:AGE
  libtool_VERSION=1:0:0
 diff --git lto-plugin/configure lto-plugin/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index b820acc..8faa13c 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b820accfd65..f6c076de88a 100755
</span> --- lto-plugin/configure
 +++ lto-plugin/configure
 @@ -634,6 +634,8 @@ LTLIBOBJS
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14797,16 +22461,26 @@ index b820acc..8faa13c 100755
</span>  '
        ac_precious_vars='build_alias
  host_alias
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1430,6 +1433,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1430,6 +1433,9 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
  
  Optional Packages:
    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10275,6 +10280,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8569,7 +8575,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10275,6 +10281,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14823,8 +22497,9 @@ index b820acc..8faa13c 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14832,15 +22507,16 @@ index b820acc..8faa13c 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14854,49 +22530,41 @@ index b820acc..8faa13c 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10292,10 +10338,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10292,9 +10341,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12081,7 +12136,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12081,7 +12134,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12084 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12139 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12137 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12187,7 +12242,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12187,7 +12240,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 12190 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 12245 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12243 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12424,6 +12479,14 @@ CC="$lt_save_CC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12424,6 +12477,14 @@ CC="$lt_save_CC"
</span>  # Only expand once:
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14911,7 +22579,7 @@ index b820acc..8faa13c 100755
</span>  
  
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12670,6 +12733,10 @@ if test -z "${LTO_PLUGIN_USE_SYMVER_SUN_TRUE}" && test -z "${LTO_PLUGIN_USE_SYMV
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12670,6 +12731,10 @@ if test -z "${LTO_PLUGIN_USE_SYMVER_SUN_TRUE}" && test -z "${LTO_PLUGIN_USE_SYMV
</span>    as_fn_error $? "conditional \"LTO_PLUGIN_USE_SYMVER_SUN\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14923,7 +22591,7 @@ index b820acc..8faa13c 100755
</span>  : "${CONFIG_STATUS=./config.status}"
  ac_write_fail=0
 diff --git lto-plugin/configure.ac lto-plugin/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index bc5b618..3175962 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bc5b618a495..317596288b2 100644
</span> --- lto-plugin/configure.ac
 +++ lto-plugin/configure.ac
 @@ -88,6 +88,7 @@ AM_CONDITIONAL(LTO_PLUGIN_USE_SYMVER_GNU, [test "x$lto_plugin_use_symver" = xgnu
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14934,11 +22602,30 @@ index bc5b618..3175962 100644
</span>  ACX_LT_HOST_FLAGS
  AC_SUBST(target_noncanonical)
  AC_TYPE_INT64_T
<span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git zlib/Makefile.in zlib/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3f5102d1b87..80fe3b69116 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- zlib/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ zlib/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -353,6 +353,8 @@ datadir = @datadir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ datarootdir = @datarootdir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ docdir = @docdir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dvidir = @dvidir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie = @enable_host_pie@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_shared = @enable_host_shared@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exec_prefix = @exec_prefix@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host = @host@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_alias = @host_alias@
</span> diff --git zlib/configure zlib/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index f489f31..f7adce0 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f489f31bc70..6c76fccc68c 100755
</span> --- zlib/configure
 +++ zlib/configure
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -639,6 +639,8 @@ TARGET_LIBRARY_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -635,10 +635,14 @@ am__EXEEXT_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LTLIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TARGET_LIBRARY_FALSE
</span>  TARGET_LIBRARY_TRUE
  toolexeclibdir
  toolexecdir
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14947,24 +22634,30 @@ index f489f31..f7adce0 100755
</span>  CPP
  OTOOL64
  OTOOL
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -776,6 +778,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -776,8 +780,10 @@ with_pic
</span>  enable_fast_install
  with_gnu_ld
  enable_libtool_lock
 +enable_darwin_at_rpath
  with_toolexeclibdir
  enable_host_shared
<span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_host_pie
</span>  '
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1419,6 +1422,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ac_precious_vars='build_alias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_alias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1419,7 +1425,11 @@ Optional Features:
</span>    --enable-fast-install[=PKGS]
                            optimize for fast installation [default=yes]
    --disable-libtool-lock  avoid locking (might break parallel builds)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+  --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-darwin-at-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          install libraries with @rpath/library-name, requires
</span> +                          rpaths to be added to executables
    --enable-host-shared    build host code as shared libraries
<span style='display:block; white-space:pre;background:#e0ffe0;'>++  --enable-host-pie       build host code as PIE
</span>  
  Optional Packages:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -4169,7 +4174,7 @@ case "$host" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4169,7 +4179,7 @@ case "$host" in
</span>      case "$enable_cet" in
        auto)
        # Check if target supports multi-byte NOPs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14973,7 +22666,16 @@ index f489f31..f7adce0 100755
</span>   cet_save_CFLAGS="$CFLAGS"
        CFLAGS="$CFLAGS -fcf-protection"
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8908,6 +8913,47 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6929,7 +6939,7 @@ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # deployment target is forced to an earlier version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNSET,*-darwin[89]*|UNSET,*-darwin[12][0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8908,6 +8918,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>      darwin* | rhapsody*)
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14990,8 +22692,9 @@ index f489f31..f7adce0 100755
</span> +  enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
 +    # This is not supported before macOS 10.5 / Darwin9.
 +    case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  echo "WARNING: Darwin @rpath library names are incompatible with macOS versions earlier than 10.5 (rpaths disabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: Darwin @rpath library names are incompatible with OSX versions earlier than 10.5 (rpaths disabled)" >&2;}
</span> + enable_darwin_at_rpath=no
 +      ;;
 +    esac
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14999,15 +22702,16 @@ index f489f31..f7adce0 100755
</span> +else
 +  case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
 +    # As above, before 10.5 / Darwin9 this does not work.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+     UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     UNSET,darwin[4-8]*|UNSET,rhapsody*|10.[0-4][,.]*)
</span> +       enable_darwin_at_rpath=no
 +       ;;
 +
 +    # We cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
 +    # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
 +    # system executables (e.g. /bin/sh).  Force rpaths on for these systems.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      UNSET,darwin1[56789]*|UNSET,darwin2*|10.1[123456789][,.]*|1[123456789].*[,.]* )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "@rpath library names are needed on macOS versions later than 10.11 (rpaths enabled)" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNSET,darwin1[5-9]*|UNSET,darwin2*|10.1[1-9][,.]*|1[1-9].*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      { $as_echo "$as_me:${as_lineno-$LINENO}: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: @rpath library names are needed on macOS versions later than 10.11 (rpaths have been enabled)" >&6;}
</span> +      enable_darwin_at_rpath=yes
 +      ;;
 +    # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15021,49 +22725,41 @@ index f489f31..f7adce0 100755
</span>    archive_cmds_need_lc=no
    hardcode_direct=no
    hardcode_automatic=yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -8925,10 +8971,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8925,9 +8978,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span>    esac
    if test "$_lt_dar_can_shared" = "yes"; then
      output_verbose_link_cmd=func_echo_all
 -    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    _lt_install_name='\$rpath/\$soname'
</span> +    if test "x$enable_darwin_at_rpath" = "xyes"; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name @rpath/\$soname \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      _lt_install_name='@rpath/\$soname'
</span> +    fi
<span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name ${_lt_install_name} \$verstring ${_lt_dar_export_syms}${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
</span>  
    else
<span style='display:block; white-space:pre;background:#ffe0e0;'>-   ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10735,7 +10790,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10735,7 +10792,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 10748 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 10793 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10795 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -10841,7 +10896,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10841,7 +10898,7 @@ else
</span>    lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
    lt_status=$lt_dlunknown
    cat > conftest.$ac_ext <<_LT_EOF
 -#line 10854 "configure"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+#line 10899 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10901 "configure"
</span>  #include "confdefs.h"
  
  #if HAVE_DLFCN_H
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11078,6 +11133,14 @@ CC="$lt_save_CC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11078,6 +11135,14 @@ CC="$lt_save_CC"
</span>  # Only expand once:
  
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15078,7 +22774,41 @@ index f489f31..f7adce0 100755
</span>  
  # Find CPP now so that any conditional tests below won't do it and
  # thereby make the resulting definitions conditional.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -11708,6 +11771,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11524,15 +11589,31 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   multilib_arg=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-host-shared was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_host_shared+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  enableval=$enable_host_shared; PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_shared;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-host-pie was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_host_pie+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  enableval=$enable_host_pie;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_config_files="$ac_config_files Makefile"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat >confcache <<\_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11708,6 +11789,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
</span>    as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
  fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15090,7 +22820,7 @@ index f489f31..f7adce0 100755
</span>    as_fn_error $? "conditional \"TARGET_LIBRARY\" was never defined.
  Usually this means the macro was only invoked conditionally." "$LINENO" 5
 diff --git zlib/configure.ac zlib/configure.ac
<span style='display:block; white-space:pre;background:#ffe0e0;'>-index be1cfe2..2327d00 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index be1cfe29651..9501cdfea85 100644
</span> --- zlib/configure.ac
 +++ zlib/configure.ac
 @@ -64,6 +64,7 @@ GCC_CET_FLAGS(CET_FLAGS)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -15101,3 +22831,33 @@ index be1cfe2..2327d00 100644
</span>  
  # Find CPP now so that any conditional tests below won't do it and
  # thereby make the resulting definitions conditional.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -122,11 +123,26 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   multilib_arg=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(host-shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AS_HELP_STRING([--enable-host-shared],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          [build host code as shared libraries])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[PICFLAG=-fPIC], [PICFLAG=])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as shared libraries])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Enable --enable-host-pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(host-pie,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-host-pie],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          [build host code as PIE])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(enable_host_pie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_host_shared = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test x$enable_host_pie = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=-fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PICFLAG=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(PICFLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CONFIG_FILES([Makefile])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_OUTPUT
</span></pre><pre style='margin:0'>

</pre>