<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/7ee2cd25d59b4284509c15027a624a12198a4479">https://github.com/macports/macports-ports/commit/7ee2cd25d59b4284509c15027a624a12198a4479</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 7ee2cd25d59b4284509c15027a624a12198a4479
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Thu Jul 14 15:35:01 2022 +0100
<span style='display:block; white-space:pre;color:#404040;'> {lib}gcc10: Update to use Iain's fork via generated patchfiles
</span>---
lang/gcc10/Portfile | 56 +-
lang/gcc10/files/patch-darwin-gcc-10.4.0.diff | 20454 ++++++++++++++++++++++++
2 files changed, 20488 insertions(+), 22 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc10/Portfile b/lang/gcc10/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ccd24b906ab..c3669b61086 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/gcc10/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc10/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,7 +10,7 @@ PortGroup cltversion 1.0
</span> epoch 6
name gcc10
version 10.4.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span> platforms darwin
categories lang
maintainers nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,30 +35,21 @@ master_sites https://ftpmirror.gnu.org/gcc/gcc-${version}/ \
</span> ftp://gcc.gnu.org/pub/gcc/releases/gcc-${version}/ \
gnu:gcc/gcc-${version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Use specific patched version, taken from homebrew comment
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/gcc.rb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Branch from the Darwin maintainer of GCC with Apple Silicon support
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${os.arch} eq "arm" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- version 10.2.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- revision 3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- master_sites https://github.com/fxcoudert/gcc/archive
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- distname gcc-10-arm-20210220
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums rmd160 7ad0ba740d46554b5a5ccdfdc75f4401a76108b4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 53beed690e4e0355d972ad58917a11e01af1cfe67b2e7602ca1ef89c98417a67 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 118840250
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- subport libgcc10 { revision [ expr ${revision} + 2 ] }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- distname gcc-${version}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- use_xz yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- checksums rmd160 5095b725b8846a4946495f5415aab02c3352d763 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname gcc-${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_xz yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 5095b725b8846a4946495f5415aab02c3352d763 \
</span> sha256 c9297d5bcd7cb43f3dfc2fed5389e948c9312fd962ef6a4ce455cff963ebe4f1 \
size 75018092
<span style='display:block; white-space:pre;background:#ffe0e0;'>- subport libgcc10 { }
</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;'>+subport libgcc10 { revision [ expr ${revision} + 0 ] }
</span>
if { ${os.platform} eq "darwin" } {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Patch generated from https://github.com/iains/gcc-10-branch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # git diff --no-prefix releases/gcc-10.4.0 gcc-10-4-darwin-pre-r0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-darwin-gcc-${version}.diff
</span> # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92061
<span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-genconditions.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-genconditions.diff
</span> }
if { ${configure.build_arch} eq "i386" } {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -128,7 +119,7 @@ configure.args --enable-languages=[join ${gcc_configure_langs} ","] \
</span> --with-mpc=${prefix} \
--with-isl=${prefix} \
--with-zstd=${prefix} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- --enable-stage1-checking \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-checking=release \
</span> --disable-multilib \
--enable-lto \
--enable-libstdcxx-time \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -137,7 +128,8 @@ configure.args --enable-languages=[join ${gcc_configure_langs} ","] \
</span> --with-ld=${prefix}/bin/ld \
--with-ar=${prefix}/bin/ar \
--with-bugurl=https://trac.macports.org/newticket \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- --enable-host-shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-host-shared \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-darwin-extra-rpath=${prefix}/lib/libgcc
</span>
# see https://lists.macports.org/pipermail/macports-dev/2017-August/036209.html
# --disable-tls does not limit functionality
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -194,6 +186,26 @@ pre-configure {
</span>
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+variant stdlib_flag description {Enable stdlib command line flag to select c++ runtime} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enables support for specifying the c++ runtime via `-stdlib=` in a similar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # way to clang. For more details see the later comments in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg257385.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Note : This 'bakes' the libc++ include directory into gcc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # which is then used as the default search location when `-stdlib=libc++`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # is given. Therefore to have consistency across various OS versions, and to enable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # modern c++ standards, use a recent macports clang port to provide this.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.platform} eq "darwin" && ${os.major} < 11 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set mp_clang_ver 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set mp_clang_ver 14
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${subport} eq ${name}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_run-append port:clang-${mp_clang_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --with-gxx-libcxx-include-dir="${prefix}/libexec/llvm-${mp_clang_ver}/include/c++/v1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default_variants-append +stdlib_flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # https://trac.macports.org/ticket/29067
# https://trac.macports.org/ticket/29104
# https://trac.macports.org/ticket/47996
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/gcc10/files/patch-darwin-gcc-10.4.0.diff b/lang/gcc10/files/patch-darwin-gcc-10.4.0.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3fe524aad94
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/gcc10/files/patch-darwin-gcc-10.4.0.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,20454 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git Makefile.def Makefile.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3fa4259..a827428 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Makefile.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Makefile.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -46,7 +46,8 @@ host_modules= { module= fixincludes; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= flex; no_check_cross= true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= gas; bootstrap=true; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= gcc; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- extra_make_flags="$(EXTRA_GCC_FLAGS)"; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_make_flags="$(EXTRA_GCC_FLAGS)";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_configure_flags='--enable-pie-tools=@enable_pie_tools@'; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_modules= { module= gmp; lib_path=.libs; bootstrap=true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Work around in-tree gmp configure bug with missing flex.
</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;'>+@@ -643,6 +644,7 @@ languages = { language=brig; gcc-check-target=check-brig;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib-check-target=check-target-libhsail-rt; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ languages = { language=d; gcc-check-target=check-d;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lib-check-target=check-target-libphobos; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++languages = { language=jit; gcc-check-target=check-jit; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Toplevel bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bootstrap_stage = { id=1 ; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git Makefile.in Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0b06ac5..133fd5e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -112,6 +112,9 @@ GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If the build should make suitable code for shared host resources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_shared = @host_shared@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# If we should build compilers and supporting tools as PIE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_pie_tools = @enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Build programs are put under this directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BUILD_SUBDIR = @build_subdir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This is set by the configure script to the arguments to use when configuring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11541,7 +11544,7 @@ configure-gcc:
</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} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --target=${target_alias} --enable-pie-tools=@enable_pie_tools@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11576,7 +11579,8 @@ configure-stage1-gcc:
</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} \
</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;'>++ $(STAGE1_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage2-gcc maybe-configure-stage2-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11609,7 +11613,8 @@ configure-stage2-gcc:
</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} \
</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;'>++ $(STAGE2_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage3-gcc maybe-configure-stage3-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11642,7 +11647,8 @@ configure-stage3-gcc:
</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} \
</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;'>++ $(STAGE3_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stage4-gcc maybe-configure-stage4-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11675,7 +11681,8 @@ configure-stage4-gcc:
</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} \
</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;'>++ $(STAGE4_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageprofile-gcc maybe-configure-stageprofile-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11708,7 +11715,8 @@ configure-stageprofile-gcc:
</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} \
</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;'>++ $(STAGEprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagetrain-gcc maybe-configure-stagetrain-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11741,7 +11749,8 @@ configure-stagetrain-gcc:
</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} \
</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;'>++ $(STAGEtrain_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stagefeedback-gcc maybe-configure-stagefeedback-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11774,7 +11783,8 @@ configure-stagefeedback-gcc:
</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} \
</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;'>++ $(STAGEfeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautoprofile-gcc maybe-configure-stageautoprofile-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11807,7 +11817,8 @@ configure-stageautoprofile-gcc:
</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} \
</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;'>++ $(STAGEautoprofile_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PHONY: configure-stageautofeedback-gcc maybe-configure-stageautofeedback-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11840,7 +11851,8 @@ configure-stageautofeedback-gcc:
</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} \
</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;'>++ $(STAGEautofeedback_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-pie-tools=@enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @endif gcc-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;'>+@@ -55566,6 +55578,14 @@ check-gcc-d:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-d);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ check-d: check-gcc-d check-target-libphobos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.PHONY: check-gcc-jit check-jit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++check-gcc-jit:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ r=`${PWD_COMMAND}`; export r; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(HOST_EXPORTS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-jit);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++check-jit: check-gcc-jit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The gcc part of install-no-fixedincludes, which relies on an intimate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # knowledge of how a number of gcc internal targets (inter)operate. Delegate.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git Makefile.tpl Makefile.tpl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 194a2e9..4e797bd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Makefile.tpl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Makefile.tpl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -115,6 +115,9 @@ GCC_SHLIB_SUBDIR = @GCC_SHLIB_SUBDIR@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If the build should make suitable code for shared host resources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_shared = @host_shared@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# If we should build compilers and supporting tools as PIE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_pie_tools = @enable_pie_tools@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Build programs are put under this directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BUILD_SUBDIR = @build_subdir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This is set by the configure script to the arguments to use when configuring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git config.guess config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 97ad073..0fc11ed 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #! /bin/sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Attempt to guess a canonical system name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright 1992-2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright 1992-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-timestamp='2019-07-24'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++timestamp='2020-11-07'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; you can redistribute it and/or modify it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,7 +32,7 @@ timestamp='2019-07-24'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Please send patches to <config-patches@gnu.org>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-me=`echo "$0" | sed -e 's,.*/,,'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++me=$(echo "$0" | sed -e 's,.*/,,')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ usage="\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usage: $0 [OPTION]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@ version="\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GNU config.guess ($timestamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Originally written by Per Bothner.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Copyright 1992-2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Copyright 1992-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This is free software; see the source for copying conditions. There is NO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,9 +99,11 @@ tmp=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_cc_for_build() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # prevent multiple calls if $tmp is already set
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ test "$tmp" && return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ : "${TMPDIR=/tmp}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # shellcheck disable=SC2039
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -129,10 +131,10 @@ if test -f /.attbin/uname ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PATH=$PATH:/.attbin ; export PATH
</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;'>+-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$UNAME_SYSTEM" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Linux|GNU|GNU/*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -148,17 +150,15 @@ Linux|GNU|GNU/*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__dietlibc__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBC=dietlibc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #include <stdarg.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #ifdef __DEFINED_va_list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBC=musl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBC=gnu
</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;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # If ldd exists, use it to detect musl libc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if command -v ldd >/dev/null && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ldd --version 2>&1 | grep -q ^musl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- LIBC=musl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')"
</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;'>+@@ -177,19 +177,20 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Note: NetBSD doesn't particularly care about the vendor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # portion of the name. We always set it to "unknown".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sysctl="sysctl -n hw.machine_arch"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "/sbin/$sysctl" 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "/usr/sbin/$sysctl" 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo unknown)`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo unknown))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$UNAME_MACHINE_ARCH" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64eb) machine=aarch64_be-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ armeb) machine=armeb-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arm*) machine=arm-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sh3el) machine=shl-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sh3eb) machine=sh-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sh5el) machine=sh5le-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ earmv*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ machine="${arch}${endian}"-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -220,7 +221,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$UNAME_MACHINE_ARCH" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ earm*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr")
</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;'>+ # The OS release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -233,7 +234,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ release='-gnu'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2)
</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;'>+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -242,15 +243,15 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$machine-${os}${release}${abi-}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:Bitrig:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:OpenBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:LibertyBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:MidnightBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -274,6 +275,9 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:Sortix:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-unknown-sortix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *:Twizzler:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$UNAME_MACHINE"-unknown-twizzler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:Redox:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-unknown-redox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -283,17 +287,17 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ alpha:OSF1:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $UNAME_RELEASE in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *4.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *5.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}')
</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;'>+ # According to Compaq, /usr/sbin/psrinfo has been available on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # OSF/1 and Tru64 systems produced since 1995. I hope that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # covers most systems running today. This code pipes the CPU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # types through head -n 1, so we only detect the type of CPU 0.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$ALPHA_CPU_TYPE" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "EV4 (21064)")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_MACHINE=alpha ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -331,7 +335,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # A Tn.n version is a released field test version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # A Xn.n version is an unreleased experimental baselevel.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 1.2 uses "1.2" for uname -r.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exitcode=$?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ trap '' 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -365,7 +369,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if test "`(/bin/universe) 2>/dev/null`" = att ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "$( (/bin/universe) 2>/dev/null)" = att ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo pyramid-pyramid-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo pyramid-pyramid-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -378,17 +382,17 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo sparc-icl-nx6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case `/usr/bin/uname -p` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $(/usr/bin/uname -p) in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sparc) echo sparc-icl-nx7; exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ s390x:SunOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun4H:SunOS:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo i386-pc-auroraux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -399,7 +403,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If there is a compiler, see if it is configured for 64-bit objects.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This test works for both compilers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "$CC_FOR_BUILD" != no_compiler_found; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grep IS_64BIT_ARCH >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -407,30 +411,30 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SUN_ARCH=x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun4*:SunOS:6*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # According to config.sub, this is the proper way to canonicalize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # it's likely to be more like Solaris than SunOS4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun4*:SunOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case "`/usr/bin/arch -k`" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case "$(/usr/bin/arch -k)" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Series*|S4*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_RELEASE=`uname -v`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_RELEASE=$(uname -v)
</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;'>+ # Japanese Language versions have a version number like `4.1.3-JL'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun3*:SunOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo m68k-sun-sunos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun*:*:4.2BSD:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case "`/bin/arch`" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case "$(/bin/arch)" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo m68k-sun-sunos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -510,8 +514,8 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYSTEM_NAME=$("$dummy" "$dummyarg") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { echo "$SYSTEM_NAME"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo mips-mips-riscos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -538,11 +542,11 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AViiON:dgux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # DG/UX returns AViiON for all architectures
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_PROCESSOR=`/usr/bin/uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_PROCESSOR=$(/usr/bin/uname -p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [ "$TARGET_BINARY_INTERFACE"x = x ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ test "$TARGET_BINARY_INTERFACE"x = x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo m88k-dg-dgux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -566,17 +570,17 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo m68k-tektronix-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:IRIX*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86:AIX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo i386-ibm-aix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ia64:AIX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ -x /usr/bin/oslevel ] ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- IBM_REV=`/usr/bin/oslevel`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test -x /usr/bin/oslevel ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IBM_REV=$(/usr/bin/oslevel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -596,7 +600,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$SYSTEM_NAME"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -609,15 +613,15 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:AIX:*:[4567])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IBM_ARCH=rs6000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IBM_ARCH=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ -x /usr/bin/lslpp ] ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test -x /usr/bin/lslpp ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -645,14 +649,14 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo m68k-hp-bsd4.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9000/[34678]??:HP-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$UNAME_MACHINE" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9000/31?) HP_ARCH=m68000 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9000/[34]??) HP_ARCH=m68k ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9000/[678][0-9][0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ -x /usr/bin/getconf ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test -x /usr/bin/getconf; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$sc_cpu_version" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -664,7 +668,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac ;;
</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;'>+- if [ "$HP_ARCH" = "" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "$HP_ARCH" = ""; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sed 's/^ //' << EOF > "$dummy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -699,11 +703,11 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test -z "$HP_ARCH" && HP_ARCH=hppa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ "$HP_ARCH" = hppa2.0w ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "$HP_ARCH" = hppa2.0w
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -727,7 +731,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ia64:HP-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo ia64-hp-hpux"$HPUX_REV"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3050*:HI-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -757,7 +761,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { echo "$SYSTEM_NAME"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo unknown-hitachi-hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -777,7 +781,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo hppa1.0-hp-osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86:OSF1:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ -x /usr/sbin/sysversion ] ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test -x /usr/sbin/sysversion ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-unknown-osf1mk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-unknown-osf1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -826,14 +830,14 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5000:UNIX_System_V:4.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -846,25 +850,25 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arm:FreeBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_PROCESSOR=`uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_PROCESSOR=$(uname -p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | grep -q __ARM_PCS_VFP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:FreeBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_PROCESSOR=`/usr/bin/uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_PROCESSOR=$(/usr/bin/uname -p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$UNAME_PROCESSOR" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ amd64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_PROCESSOR=x86_64 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i386)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_PROCESSOR=i586 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*:CYGWIN*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-pc-cygwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -900,15 +904,15 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo x86_64-pc-cygwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ prep*:SunOS:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:GNU:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the GNU system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:GNU/*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # other systems with GNU libc and userland
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:Minix:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-unknown-minix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -921,7 +925,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ alpha:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV5) UNAME_MACHINE=alphaev5 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EV56) UNAME_MACHINE=alphaev56 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PCA56) UNAME_MACHINE=alphapca56 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1030,7 +1034,7 @@ EOF
</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;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mips64el:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1050,7 +1054,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ parisc:Linux:*:* | hppa:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Look for CPU level
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *) echo hppa-unknown-linux-"$LIBC" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1090,7 +1094,17 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x86_64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBCABI=$LIBC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "$CC_FOR_BUILD" != no_compiler_found; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ grep IS_X32 >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBCABI="$LIBC"x32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xtensa*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1130,7 +1144,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-pc-msdosdjgpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86:*:4.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1139,7 +1153,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86:*:5:[678]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case `/bin/uname -X | grep "^Machine"` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $(/bin/uname -X | grep "^Machine") in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *486*) UNAME_MACHINE=i486 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *Pentium) UNAME_MACHINE=i586 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1148,10 +1162,10 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86:*:3.2:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -f /usr/options/cb.name; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_REL=$(sed -n 's/.*Version //p' </usr/options/cb.name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && UNAME_MACHINE=i586
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1201,7 +1215,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OS_REL=''
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test -r /etc/.relid \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1212,7 +1226,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OS_REL='.3'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test -r /etc/.relid \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1245,7 +1259,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:SINIX-*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if uname -p 2>/dev/null >/dev/null ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_MACHINE=`(uname -p) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_MACHINE=$( (uname -p) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-sni-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo ns32k-sni-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1279,7 +1293,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo mips-sony-newsos6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ -d /usr/nec ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test -d /usr/nec; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo mips-nec-sysv"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo mips-unknown-sysv"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1327,8 +1341,11 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:Rhapsody:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arm64:Darwin:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo aarch64-apple-darwin"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:Darwin:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_PROCESSOR=`uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_PROCESSOR=$(uname -p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $UNAME_PROCESSOR in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unknown) UNAME_PROCESSOR=powerpc ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1341,7 +1358,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "$CC_FOR_BUILD" != no_compiler_found; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ grep IS_64BIT_ARCH >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1365,7 +1382,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_PROCESSOR=`uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_PROCESSOR=$(uname -p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$UNAME_PROCESSOR" = x86; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_PROCESSOR=i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_MACHINE=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1433,10 +1450,10 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo mips-sei-seiux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:DragonFly:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *:*VMS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- UNAME_MACHINE=`(uname -p) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNAME_MACHINE=$( (uname -p) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "$UNAME_MACHINE" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A*) echo alpha-dec-vms ; exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ I*) echo ia64-dec-vms ; exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1446,7 +1463,7 @@ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo i386-pc-xenix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86:skyos:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86:rdos:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$UNAME_MACHINE"-pc-rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1504,7 +1521,7 @@ main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define __ARCHITECTURE__ "m68k"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int version;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (version < 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1596,7 +1613,7 @@ main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { echo "$SYSTEM_NAME"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Apollos put the system type in the environment.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1624,6 +1641,12 @@ copies of config.guess and config.sub with the latest versions from:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++year=$(echo $timestamp | sed 's,-.*,,')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# shellcheck disable=SC2003
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cat >&2 <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If $0 has already been updated, send the following data and any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ information you think might be pertinent to config-patches@gnu.org to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1631,26 +1654,27 @@ provide the necessary information to handle your system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ config.guess timestamp = $timestamp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uname -m = `(uname -m) 2>/dev/null || echo unknown`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uname -r = `(uname -r) 2>/dev/null || echo unknown`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uname -s = `(uname -s) 2>/dev/null || echo unknown`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-uname -v = `(uname -v) 2>/dev/null || echo unknown`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++uname -m = $( (uname -m) 2>/dev/null || echo unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++uname -r = $( (uname -r) 2>/dev/null || echo unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++uname -s = $( (uname -s) 2>/dev/null || echo unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++uname -v = $( (uname -v) 2>/dev/null || echo unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/bin/uname -X = $( (/bin/uname -X) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-hostinfo = `(hostinfo) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/bin/universe = `(/bin/universe) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/bin/arch = `(/bin/arch) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++hostinfo = $( (hostinfo) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/bin/universe = $( (/bin/universe) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/bin/arch = $( (/bin/arch) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_MACHINE = "$UNAME_MACHINE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_RELEASE = "$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_SYSTEM = "$UNAME_SYSTEM"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_VERSION = "$UNAME_VERSION"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</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;'>+ exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git config.sub config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a318a46..c874b7a 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #! /bin/sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Configuration validation subroutine script.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright 1992-2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright 1992-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-timestamp='2019-06-30'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++timestamp='2020-11-07'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; you can redistribute it and/or modify it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@ timestamp='2019-06-30'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # It is wrong to echo any other type of specification.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-me=`echo "$0" | sed -e 's,.*/,,'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++me=$(echo "$0" | sed -e 's,.*/,,')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ usage="\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version="\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GNU config.sub ($timestamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Copyright 1992-2019 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Copyright 1992-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This is free software; see the source for copying conditions. There is NO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -124,28 +124,27 @@ case $1 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *-*-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=$field1-$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=$field3-$field4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=$field3-$field4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # parts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ maybe_os=$field2-$field3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $maybe_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nto-qnx* | linux-* | uclinux-uclibc* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | storm-chaos* | os2-emx* | rtmk-nova*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=$field1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=$maybe_os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=$maybe_os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ android-linux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=$field1-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux-android
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=linux-android
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=$field1-$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=$field3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=$field3
</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;'>+@@ -154,7 +153,7 @@ case $1 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $field1-$field2 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ decstation-3100)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=mips-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Second component is usually, but not always the OS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -162,7 +161,7 @@ case $1 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Prevent following clause from handling this valid os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun*os*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=$field1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Manufacturers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -175,11 +174,11 @@ case $1 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | microblaze* | sim | cisco \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | oki | wec | wrs | winbond)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=$field1-$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=$field1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=$field2
</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;'>+@@ -191,447 +190,451 @@ case $1 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $field1 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 386bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ a29khif)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ adobe68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68010-adobe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=scout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=scout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ alliant)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=fx80-alliant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ altos | altos3068)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-altos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ am29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=a29k-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ amdahl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=580-amdahl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ amiga)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ amigaos | amigados)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=amigaos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=amigaos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ amigaunix | amix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ apollo68)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-apollo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ apollo68bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-apollo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aros)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=aros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=aros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=aux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=aux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ balance)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=ns32k-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=dynix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=dynix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ blackfin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=bfin-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cegcc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=arm-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=cegcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=cegcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ convex-c1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=c1-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ convex-c2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=c2-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ convex-c32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=c32-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ convex-c34)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=c34-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ convex-c38)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=c38-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=j90-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crds | unos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-crds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ da30)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-da30
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ decstation | pmax | pmin | dec3100 | decstatn)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=mips-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delta88)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m88k-motorola
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dicos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=dicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=dicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ djgpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i586-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=msdosdjgpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=msdosdjgpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ebmon29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=ebmon
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=ebmon
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ es1800 | OSE68k | ose68k | ose | OSE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-ericsson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gmicro)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=tron-gmicro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ go32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=go32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=go32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ h8300hms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=h8300-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ h8300xray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=h8300-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=xray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=xray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ h8500hms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=h8500-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ harris)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m88k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hp300 | hp300hpux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=hpux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=hpux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hp300bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hppaosf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hppro)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i386mach)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-mach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=mach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=mach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ isi68 | isi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-isi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m68knommu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ magnum | m3230)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=mips-mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ merlin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=ns32k-utek
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mingw64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=x86_64-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=mingw64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=mingw64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mingw32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mingw32ce)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=arm-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=mingw32ce
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=mingw32ce
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ monitor)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-rom68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ morphos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=powerpc-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=morphos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=morphos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ moxiebox)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=moxie-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=moxiebox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=moxiebox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ msdos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=msdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=msdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ msys)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=msys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=msys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mvs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i370-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=mvs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=mvs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nacl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=le32-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=nacl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=nacl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ncr3000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i486-ncr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ netbsd386)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=netbsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=netbsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ netwinder)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=armv4l-rebel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ news | news700 | news800 | news900)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ news1000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68030-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ necv70)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=v70-nec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nh3000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=cxux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=cxux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nh[45]000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m88k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=cxux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=cxux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nindy960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i960-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=nindy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=nindy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mon960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i960-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=mon960
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=mon960
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nonstopux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=mips-compaq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=nonstopux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=nonstopux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os400)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=powerpc-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=os400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=os400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OSE68000 | ose68000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68000-ericsson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=os68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=os68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ paragon)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i860-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ parisc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=hppa-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ psp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_machine=mipsallegrexel-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=psp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pw32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i586-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=pw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=pw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rdos | rdos64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=x86_64-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rdos32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rom68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-rom68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sa29200)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sei)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=mips-sei
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=seiux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=seiux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sequent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sps7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ st2000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ stratus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i860-stratus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun2os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun2os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun3os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun3os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun4os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun4os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun4sol2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sun386 | sun386i | roadrunner)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sv1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=sv1-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ symmetry)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=dynix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=dynix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t3e)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=alphaev5-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t90)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=t90-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toad1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=pdp10-xkl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tpf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=s390x-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=tpf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=tpf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ udi29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ultra3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=a29k-nyu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sym1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sym1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ v810 | necv810)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=v810-nec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vaxv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=vax-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=vax-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=vms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=vms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vsta)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=vsta
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=vsta
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vxworks960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i960-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vxworks68)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=m68k-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vxworks29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=a29k-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xbox)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ymp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=ymp-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ basic_machine=$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=
</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;'>+@@ -683,17 +686,17 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bluegene*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=cnk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=cnk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ decsystem10* | dec10*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=pdp10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=tops10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=tops10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ decsystem20* | dec20*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=pdp10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delta | 3300 | motorola-3300 | motorola-delta \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | 3300-motorola | delta-motorola)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -703,7 +706,7 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dpx2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ encore | umax | mmax)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=ns32k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -712,7 +715,7 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elxsi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=elxsi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=elxsi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-bsd}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os:-bsd}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fx2800)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=i860
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -725,7 +728,7 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ h3050r* | hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=hppa1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -766,38 +769,38 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86v32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpu=`echo "$1" | sed -e 's/86.*/86/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cpu=$(echo "$1" | sed -e 's/86.*/86/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86v4*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpu=`echo "$1" | sed -e 's/86.*/86/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cpu=$(echo "$1" | sed -e 's/86.*/86/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86v)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpu=`echo "$1" | sed -e 's/86.*/86/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cpu=$(echo "$1" | sed -e 's/86.*/86/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i*86sol2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpu=`echo "$1" | sed -e 's/86.*/86/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cpu=$(echo "$1" | sed -e 's/86.*/86/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ j90 | j90-cray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=j90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-unicos}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os:-unicos}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ iris | iris4d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=sgi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $basic_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ irix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=irix4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=irix4
</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;'>+@@ -808,26 +811,26 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=atari
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ news-3600 | risc-news)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ next | m*-next)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=next
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $basic_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ openstep*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nextstep*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ns2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=nextstep2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=nextstep2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=nextstep3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=nextstep3
</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;'>+@@ -838,12 +841,12 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ op50n-* | op60c-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=oki
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pa-hitachi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pbd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=sparc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -880,12 +883,12 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sde)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=mipsisa32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=sde
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ simso-wrs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=sparclite
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tower | tower-32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -902,7 +905,7 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ w89k-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=winbond
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=proelf
</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;'>+ cpu=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -914,7 +917,7 @@ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ leon-*|leon[3-9]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=sparc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- vendor=`echo "$basic_machine" | sed 's/-.*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ vendor=$(echo "$basic_machine" | sed 's/-.*//')
</span><span style='display:block; white-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;'>+@@ -955,11 +958,11 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # some cases the only manufacturer, in others, it is the most popular.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ craynv-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-unicosmp}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os:-unicosmp}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c90-unknown | c90-cray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-unicos}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${Basic_os:-unicos}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fx80-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=alliant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1003,7 +1006,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dpx20-unknown | dpx20-bull)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=rs6000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-bosx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os:-bosx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Here we normalize CPU types irrespective of the vendor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1012,7 +1015,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ blackfin-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=bfin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c54x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=tic54x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1025,7 +1028,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ e500v[12]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=$os"spe"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os}"spe"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mips3*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=mips64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1035,7 +1038,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m68knommu-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=s12z
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1045,7 +1048,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ parisc-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=hppa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=i586
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1081,7 +1084,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=mipsisa64sb1el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sh5e[lb]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ spur-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=spur
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1099,13 +1102,16 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xscale-* | xscalee[bl]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arm64-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cpu=aarch64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Recognize the canonical CPU Types that limit and/or modify the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # company names they are paired with.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cr16-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crisv32-* | etraxfs*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=crisv32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1116,7 +1122,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=axis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crx-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ neo-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=neo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1138,16 +1144,12 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu=nsx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- s390-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpu=s390
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- s390x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpu=s390x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mipsallegrexel-sony)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cpu=mipsallegrexel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ vendor=sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tile*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=${os:-linux-gnu}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ basic_os=${basic_os:-linux-gnu}
</span><span style='display:block; white-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;'>+@@ -1164,7 +1166,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | am33_2.0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | amdgcn \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | arc | arceb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | arm | arm[lb]e | arme[lb] | armv* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | arm | arm[lb]e | arme[lb] | armv* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | avr | avr32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | asmjs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | ba \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1229,6 +1231,7 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | pyramid \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | riscv | riscv32 | riscv64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | rl78 | romp | rs6000 | rx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | s390 | s390x \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | score \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | sh | shl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1275,8 +1278,47 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Decode manufacturer-specific aliases for certain operating systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if [ x$os != x ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$basic_os != x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# set os.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $basic_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gnu/linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kernel=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os2-emx)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kernel=os2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nto-qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kernel=nto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo $basic_os | sed -e 's|nto-qnx|qnx|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # shellcheck disable=SC2162
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ IFS="-" read kernel os <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$basic_os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Default OS when just kernel was specified
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nto*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kernel=nto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo $basic_os | sed -e 's|nto|qnx|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kernel=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo $basic_os | sed -e 's|linux|gnu|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kernel=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$basic_os
</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;'>++# Now, normalize the OS (knowing we just have one component, it's not a kernel,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# etc.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # First match some system type aliases that might get confused
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # with valid system types.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1288,7 +1330,7 @@ case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=cnk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ solaris1 | solaris1.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo $os | sed -e 's|solaris1|sunos4|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo $os | sed -e 's|solaris1|sunos4|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ solaris)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1296,9 +1338,6 @@ case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unixware*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=sysv4.2uw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gnu/linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # es1800 is here to avoid being matched by es* (a different OS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ es1800*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1320,12 +1359,9 @@ case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=sco3.2v4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sco3.2.[4-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sco3.2v[4-9]* | sco5v6*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Don't forget version if it is 3.2v4 or newer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- scout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sco*v* | scout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Don't match below
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sco*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1334,79 +1370,26 @@ case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ psos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=psos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Now accept the basic system types.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # The portable systems comes first.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Each alternative MUST end in a * to match a version number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # sysv* is not here because it comes later, after sysvr4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | sym* | kopensolaris* | plan9* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | aos* | aros* | cloudabi* | sortix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | knetbsd* | mirbsd* | netbsd* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | chorusrdb* | cegcc* | glidix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | linux-newlib* | linux-musl* | linux-uclibc* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | uxpv* | beos* | mpeix* | udk* | moxiebox* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | interix* | uwin* | mks* | rhapsody* | darwin* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | openstep* | oskit* | conix* | pw32* | nonstopux* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | storm-chaos* | tops10* | tenex* | tops20* | its* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | os2* | vos* | palmos* | uclinux* | nucleus* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | morphos* | superux* | rtmk* | windiss* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | skyos* | haiku* | rdos* | toppers* | drops* | es* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | nsk* | powerunix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Remember, each alternative MUST END IN *, to match a version number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case $cpu in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- x86 | i*86)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=nto-$os
</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;'>++ os=qnx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- nto-qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- nto*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo $os | sed -e 's|nto|nto-qnx|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sim | xray | os68k* | v88r* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | windows* | osx | abug | netware* | os9* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- linux-dietlibc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux-dietlibc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo $os | sed -e 's|linux|linux-gnu|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lynx*178)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=lynxos178
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lynx*5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=lynxos5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ lynxos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # don't get caught up in next wildcard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lynx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=lynxos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- mac*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo "$os" | sed -e 's|mac|macos|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mac[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo "$os" | sed -e 's|mac|macos|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ opened*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=openedition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1415,10 +1398,10 @@ case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=os400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sunos5*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sunos6*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ wince*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=wince
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1452,7 +1435,7 @@ case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Preserve the version number of sinix5.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sinix5.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=`echo $os | sed -e 's|sinix|sysv|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=$(echo $os | sed -e 's|sinix|sysv|')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sinix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1475,18 +1458,12 @@ case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sysvr4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # This must come after sysvr4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sysv*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ose*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- zvmoe)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=zvmoe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dicos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=dicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1503,19 +1480,11 @@ case $os in
</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;'>+- nacl*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ios)
</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;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *-eabi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # No normalization, but not necessarily accepted, that comes below.
</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;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Here we handle the default operating systems that come with various machines.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1528,6 +1497,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # will signal an error saying that MANUFACTURER isn't an operating
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # system, and we'll never get to this point.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++kernel=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ score-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1539,7 +1509,8 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=riscix1.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arm*-rebel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kernel=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os=gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arm*-semi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=aout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1705,84 +1676,173 @@ case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ os=none
</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;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Now, validate our (potentially fixed-up) OS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Sometimes we do "kernel-abi", so those need to count as OSes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ musl* | newlib* | uclibc*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Likewise for "kernel-libc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ eabi | eabihf | gnueabi | gnueabihf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Now accept the basic system types.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # The portable systems comes first.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Each alternative MUST end in a * to match a version number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | hiux* | abug | nacl* | netware* | windows* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | os9* | macos* | osx* | ios* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | mpw* | magic* | mmixware* | mon960* | lnews* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | aos* | aros* | cloudabi* | sortix* | twizzler* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | udi* | lites* | ieee* | go32* | aux* | hcos* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | chorusrdb* | cegcc* | glidix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | midipix* | mingw32* | mingw64* | mint* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | interix* | uwin* | mks* | rhapsody* | darwin* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | openstep* | oskit* | conix* | pw32* | nonstopux* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | storm-chaos* | tops10* | tenex* | tops20* | its* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This one is extra strict with allowed versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Don't forget version if it is 3.2v4 or newer.
</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;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit 1
</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;'>++# As a final step for OS-related things, validate the OS-kernel combination
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# (given a valid OS), if there is a kernel.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $kernel-$os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uclinux-uclibc* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -dietlibc* | -newlib* | -musl* | -uclibc* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # These are just libc implementations, not actual OSes, and thus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # require a kernel.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kfreebsd*-gnu* | kopensolaris*-gnu*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nto-qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ os2-emx)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-eabi* | *-gnueabi*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Blank kernel with real OS is always fine.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit 1
</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;'>+ # Here we handle the case where we know the os, and the CPU type, but not the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # manufacturer. We pick the logical manufacturer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- riscix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $cpu-$os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-riscix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=acorn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sunos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-sunos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cnk*|-aix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-cnk* | *-aix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- beos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-beos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- hpux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-hpux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- mpeix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-mpeix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- unos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-unos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=crds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- dgux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-dgux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=dg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- luna*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-luna*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=omron
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- genix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-genix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=ns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- clix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-clix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=intergraph
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- mvs* | opened*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-mvs* | *-opened*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-os400*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- os400*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ s390-* | s390x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ptx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-ptx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- tpf*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-tpf*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- vxsim* | vxworks* | windiss*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-vxsim* | *-vxworks* | *-windiss*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- aux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-aux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- hms*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-hms*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- mpw* | macos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-mpw* | *-macos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=atari
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- vos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-vos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vendor=stratus
</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;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-echo "$cpu-$vendor-$os"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++echo "$cpu-$vendor-${kernel:+$kernel-}$os"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Local variables:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git config/gcc-plugin.m4 config/gcc-plugin.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8f27871..7ee342f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- config/gcc-plugin.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ config/gcc-plugin.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -91,14 +91,18 @@ AC_DEFUN([GCC_ENABLE_PLUGINS],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check that we can build shared objects with -fPIC -shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ saved_LDFLAGS="$LDFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ saved_CFLAGS="$CFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ saved_CXXFLAGS="$CXXFLAGS"
</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;'>+ CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$CFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS=`echo $CXXFLAGS | sed s/-mdynamic-no-pic//g`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$CXXFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$CFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$CXXFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS="$LDFLAGS -fPIC -shared"
</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;'>+@@ -113,6 +117,7 @@ AC_DEFUN([GCC_ENABLE_PLUGINS],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS="$saved_LDFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$saved_CFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$saved_CXXFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If plugin support had been requested but not available, fail.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x"$enable_plugin" = x"no" ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git config/mh-darwin config/mh-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b72835a..bb41127 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- config/mh-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ config/mh-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11,7 +11,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # non-bootstrapped compiler), later stages will be built by GCC which supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # the required flags.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# We cannot use mdynamic-no-pic when building shared host resources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# We cannot use mdynamic-no-pic when building shared host resources, or for PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# tool executables, which also enables host-shared.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ifeq (${host_shared},no)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BOOTSTRAP_TOOL_CAN_USE_MDYNAMIC_NO_PIC := $(shell \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git configure configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d8c29ba..3644107 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -682,6 +682,7 @@ get_gcc_base_ver
</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_libiberty_configure_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ stage1_languages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_pie_tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_linker_plugin_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_linker_plugin_configure_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -821,6 +822,7 @@ enable_lto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_linker_plugin_configure_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_linker_plugin_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_pie_tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_stage1_languages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_objc_gc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_target_bdw_gc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1542,6 +1544,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ additional flags for configuring and building linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ plugins [none]
</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-pie-tools build Position Independent Executables for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ compilers and other tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-stage1-languages[=all]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ choose additional languages to build during stage1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Mostly useful for compiler development
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6043,6 +6047,20 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</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;'>++case $target in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin2* | *-darwin1[5-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # For these versions, we default to using embedded rpaths.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" != "xno"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths"
</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;'>++ *-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # For these versions, we only use embedded rpaths on demand.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths"
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # GCC GRAPHITE dependency isl.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6279,11 +6297,62 @@ fi
</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; host_shared=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host in
</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;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: PIC code is required for the configured target, 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 target, 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 $host in
</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;'>++ 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;'>++# Check whether --enable-pie-tools was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Checked early because it can affect host make fragments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-pie-tools was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_pie_tools+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_pie_tools; enable_pie_tools=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$enable_pie_tools != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: aarch64-darwin hosts must use PIE; pie-tools setting ignored" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: WARNING: aarch64-darwin hosts must use PIE; pie-tools setting ignored" >&2;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_pie_tools=yes
</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;'>+- host_shared=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # PIE is the default for macOS 10.7+ so reflect that in the configure.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # However, we build 32b toolchains mdynamic-no-pic by default which is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # not compatible with PIE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x86_64-*-darwin1[1-9]* | *-*-darwin2*) enable_pie_tools=yes ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *) enable_pie_tools=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;'>++case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$enable_pie_tools = xyes && test x$host_shared != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: Darwin requires PIC code to implement PIE; host-shared enabled." >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$as_me: Darwin requires PIC code to implement PIE; host-shared enabled." >&6;}
</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;'>++
</span><span style='display:block; white-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;'>+ # By default, C and C++ are the only stage 1 languages.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ stage1_languages=,c,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git configure.ac configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4c75977..46b7cf4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1776,6 +1776,20 @@ AC_ARG_WITH(boot-ldflags,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$poststage1_libs" = ""; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ poststage1_ldflags="-static-libstdc++ -static-libgcc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $target in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin2* | *-darwin1[[5-9]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # For these versions, we default to using embedded rpaths.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" != "xno"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths"
</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;'>++ *-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # For these versions, we only use embedded rpaths on demand.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ poststage1_ldflags="$poststage1_ldflags -nodefaultrpaths"
</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;'>+ AC_SUBST(poststage1_ldflags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # GCC GRAPHITE dependency isl.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1866,8 +1880,55 @@ AC_SUBST(extra_linker_plugin_flags)
</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;'>+-[host_shared=$enableval], [host_shared=no])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[host_shared=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host in
</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;'>++ AC_MSG_WARN([PIC code is required for the configured target, 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 $host in
</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;'>++ esac])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-pie-tools was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Checked early because it can affect host make fragments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(pie-tools,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-pie-tools],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [build Position Independent Executables for the compilers and other tools])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[enable_pie_tools=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$enable_pie_tools != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AC_MSG_WARN([aarch64-darwin hosts must use PIE; pie-tools setting ignored])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_pie_tools=yes
</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 $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # PIE is the default for macOS 10.7+ so reflect that in the configure.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # However, we build 32b toolchains mdynamic-no-pic by default which is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # not compatible with PIE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x86_64-*-darwin1[[1-9]]* | *-*-darwin2*) enable_pie_tools=yes ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *) enable_pie_tools=no ;;
</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;'>++case $host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$enable_pie_tools = xyes && test x$host_shared != xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AC_MSG_NOTICE([Darwin requires PIC code to implement PIE; host-shared enabled.])
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(host_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST([enable_pie_tools])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # By default, C and C++ are the only stage 1 languages.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ stage1_languages=,c,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git contrib/compare-debug contrib/compare-debug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 22870cf..0430a16 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- contrib/compare-debug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ contrib/compare-debug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,9 +60,19 @@ trap 'rm -f "$1.$suf1" "$2.$suf2"' 0 1 2 15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case `uname -s` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Darwin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The strip command on darwin does not remove all debug info.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Fortunately, we can use ld to do it instead.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ld -S -r -no_uuid "$1" -o "$1.$suf1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ld -S -r -no_uuid "$2" -o "$2.$suf2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Fortunately, we can use ld to do it instead, but even ld on earlier
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system versions can be fussy about what it finds - make sure we use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # a ld that understands coalesced sections.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case `uname -r` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 8*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ld64 -S -r -no_uuid "$1" -o "$1.$suf1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ld64 -S -r -no_uuid "$2" -o "$2.$suf2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ld -S -r -no_uuid "$1" -o "$1.$suf1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ld -S -r -no_uuid "$2" -o "$2.$suf2"
</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;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp "$1" "$1.$suf1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/Makefile.in gcc/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5ac87c9..eb0d85b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -265,11 +265,15 @@ endif
</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;'>+
</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;'>++ifneq (@enable_pie_tools@,yes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Build and link the compilers and tools without PIE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ COMPILER += $(NO_PIE_CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Link with -no-pie since we compile the compiler with -fno-PIE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LINKER += $(NO_PIE_FLAG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# FIXME these need to be configured.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++COMPILER += -fPIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LINKER += -pie
</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;'>+ # Like LINKER, but use a mutex for serializing front end links.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ifeq (@DO_LINK_MUTEX@,true)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -402,6 +406,7 @@ ifeq ($(enable_plugin),yes)
</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;'>+ enable_host_shared = @enable_host_shared@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_default_pie = @enable_default_pie@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_as_accelerator = @enable_as_accelerator@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -671,6 +676,9 @@ build_tooldir = $(exec_prefix)/$(target_noncanonical)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Directory in which the compiler finds target-independent g++ includes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_gxx_include_dir = @gcc_gxx_include_dir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_gxx_include_dir_add_sysroot = @gcc_gxx_include_dir_add_sysroot@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Directory in which the compiler finds libc++ includes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_gxx_libcxx_include_dir = @gcc_gxx_libcxx_include_dir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_gxx_libcxx_include_dir_add_sysroot = @gcc_gxx_libcxx_include_dir_add_sysroot@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Directory to search for site-specific includes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ local_includedir = $(local_prefix)/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ includedir = $(prefix)/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1120,6 +1128,8 @@ LANG_MAKEFRAGS = @all_lang_makefrags@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Used by gcc/jit/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LD_VERSION_SCRIPT_OPTION = @ld_version_script_option@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LD_SONAME_OPTION = @ld_soname_option@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@DARWIN_RPATH = @rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_FALSE@DARWIN_RPATH = ${libdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Flags to pass to recursive makes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # CC is set by configure.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1167,6 +1177,7 @@ FLAGS_TO_PASS = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "prefix=$(prefix)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "local_prefix=$(local_prefix)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "gxx_include_dir=$(gcc_gxx_include_dir)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "gxx_libcxx_include_dir=$(gcc_gxx_libcxx_include_dir)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "build_tooldir=$(build_tooldir)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "gcc_tooldir=$(gcc_tooldir)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "bindir=$(bindir)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1853,9 +1864,12 @@ cs-tconfig.h: Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(SHELL) $(srcdir)/mkconfig.sh tconfig.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cs-tm.h: Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- TARGET_CPU_DEFAULT="$(target_cpu_default)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(SHELL) $(srcdir)/mkconfig.sh tm.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_FALSE@ TARGET_CPU_DEFAULT="$(target_cpu_default)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_FALSE@ HEADERS="$(tm_include_list)" DEFINES="$(tm_defines)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_FALSE@ $(SHELL) $(srcdir)/mkconfig.sh tm.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@ TARGET_CPU_DEFAULT="$(target_cpu_default)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@ HEADERS="$(tm_include_list)" DEFINES="$(tm_defines) DARWIN_AT_RPATH=1" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@ $(SHELL) $(srcdir)/mkconfig.sh tm.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cs-tm_p.h: Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TARGET_CPU_DEFAULT="" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2946,6 +2960,8 @@ PREPROCESSOR_DEFINES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -DGPLUSPLUS_LIBCXX_INCLUDE_DIR=\"$(gcc_gxx_libcxx_include_dir)\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -DGPLUSPLUS_LIBCXX_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_libcxx_include_dir_add_sysroot) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4015,6 +4031,9 @@ site.exp: ./config.status Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "set COMPAT_OPTIONS \"$(COMPAT_OPTIONS)\"" >> ./site.tmp; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else true; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ @if test "x@enable_darwin_at_rpath@" = "xyes" ; then \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "set ENABLE_DARWIN_AT_RPATH 1" >> ./site.tmp; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @echo "## All variables above are generated by configure. Do Not Edit ##" >> ./site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @cat ./site.tmp > site.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @cat site.bak | sed \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/aclocal.m4 gcc/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e208071..404ceb9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,6 +12,56 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # PARTICULAR PURPOSE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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:#e0ffe0;'>++# AM_CONDITIONAL -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1997-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# with or without modifications, as long as this notice is preserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# AM_CONDITIONAL(NAME, SHELL-CONDITION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# -------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Define a conditional.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_DEFUN([AM_CONDITIONAL],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AC_PREREQ([2.52])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST([$1_TRUE])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST([$1_FALSE])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_AM_SUBST_NOTMAKE([$1_TRUE])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_AM_SUBST_NOTMAKE([$1_FALSE])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++m4_define([_AM_COND_VALUE_$1], [$2])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if $2; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $1_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $1_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $1_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $1_FALSE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_CONFIG_COMMANDS_PRE(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AC_MSG_ERROR([[conditional "$1" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally.]])
</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;'>++# Copyright (C) 2006-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# with or without modifications, as long as this notice is preserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# _AM_SUBST_NOTMAKE(VARIABLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ---------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This macro is traced by Automake.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_DEFUN([_AM_SUBST_NOTMAKE])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# AM_SUBST_NOTMAKE(VARIABLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# --------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Public sister of _AM_SUBST_NOTMAKE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../libtool.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../ltoptions.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../ltsugar.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ada/Makefile.rtl gcc/ada/Makefile.rtl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 27c3428..e2f7c47 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ada/Makefile.rtl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ada/Makefile.rtl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2580,6 +2580,15 @@ ifeq ($(strip $(filter-out darwin%,$(target_os))),)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EH_MECHANISM=-gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Darwin 8 does not support rpaths / @rpath.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ifeq ($(strip $(filter-out darwin8%,$(target_os))),)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GNATLIB_INSTALL_PREFIX = '$(ADA_RTL_DSO_DIR)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GNATLIB_ADD_RPATHS =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GNATLIB_INSTALL_PREFIX = '@rpath'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GNATLIB_ADD_RPATHS = -nodefaultrpaths -Wl,-rpath,@loader_path/,-rpath,@loader_path/.. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -Wl,-rpath,@loader_path/../../../../
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GNATLIB_SHARED = gnatlib-shared-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GMEM_LIB = gmemlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBRARY_VERSION := $(LIB_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ada/adaint.c gcc/ada/adaint.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 595abf8..8d37928 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ada/adaint.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ada/adaint.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2391,7 +2391,10 @@ __gnat_number_of_cpus (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined (__linux__) || defined (__sun__) || defined (_AIX) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || defined (__APPLE__) || defined (__FreeBSD__) || defined (__OpenBSD__) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || defined (__DragonFly__) || defined (__NetBSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cores = (int) sysconf (_SC_NPROCESSORS_ONLN);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ifdef _SC_NPROCESSORS_ONLN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cores = (int) sysconf (_SC_NPROCESSORS_ONLN);
</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;'>+ #elif defined (__QNX__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cores = (int) _syspage_ptr->num_cpu;
</span><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 acbe2b8..903ef69 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;'>+@@ -655,6 +655,14 @@ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For unwind-pe.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS-ada/raise-gcc.o += -I$(srcdir)/../libgcc -DEH_MECHANISM_$(EH_MECHANISM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Under aarch64 darwin, we need to include the iOS signal trampoline.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ifeq ($(strip $(filter-out aarch64 arm64 darwin%,$(host_cpu) $(host_os))),)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EXTRA_HOST_OBJS=ada/sigtramp-ios.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ EXTRA_HOST_OBJS =
</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;'>+ ada/libgnat/s-excmac.o: ada/libgnat/s-excmac.ads ada/libgnat/s-excmac.adb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ada/libgnat/s-excmac.ads: $(srcdir)/ada/libgnat/s-excmac__$(EH_MECHANISM).ads
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -668,13 +676,13 @@ ada/libgnat/s-excmac.adb: $(srcdir)/ada/libgnat/s-excmac__$(EH_MECHANISM).adb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Needs to be built with CC=gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Since the RTL should be built with the latest compiler, remove the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # stamp target in the parent directory whenever gnat1 is rebuilt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gnat1$(exeext): $(TARGET_ADA_SRCS) $(GNAT1_OBJS) $(ADA_BACKEND) libcommon-target.a $(LIBDEPS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- +$(GCC_LLINK) -o $@ $(GNAT1_OBJS) $(ADA_BACKEND) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gnat1$(exeext): $(TARGET_ADA_SRCS) $(GNAT1_OBJS) $(ADA_BACKEND) $(EXTRA_HOST_OBJS) libcommon-target.a $(LIBDEPS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ +$(GCC_LLINK) -o $@ $(GNAT1_OBJS) $(ADA_BACKEND) $(EXTRA_HOST_OBJS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcommon-target.a $(LIBS) $(SYSLIBS) $(BACKENDLIBS) $(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(RM) stamp-gnatlib2-rts stamp-tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS) ggc-none.o libcommon-target.a $(LIBDEPS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- +$(GCC_LINK) -o $@ ada/b_gnatb.o $(GNATBIND_OBJS) ggc-none.o libcommon-target.a $(LIBS) $(SYSLIBS) $(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gnatbind$(exeext): ada/b_gnatb.o $(CONFIG_H) $(GNATBIND_OBJS) $(EXTRA_HOST_OBJS) ggc-none.o libcommon-target.a $(LIBDEPS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ +$(GCC_LINK) -o $@ ada/b_gnatb.o $(GNATBIND_OBJS) $(EXTRA_HOST_OBJS) ggc-none.o libcommon-target.a $(LIBS) $(SYSLIBS) $(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # use target-gcc target-gnatmake target-gnatbind target-gnatlink
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gnattools: $(GCC_PARTS) $(CONFIG_H) prefix.o force
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ada/gcc-interface/Makefile.in gcc/ada/gcc-interface/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fd676b2..03b288c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ada/gcc-interface/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ada/gcc-interface/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -787,21 +787,23 @@ gnatlib-shared-darwin:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(SO_OPTS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -Wl,-install_name,@rpath/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(MISCLIB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -Wl,-install_name,$(GNATLIB_INSTALL_PREFIX)/libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(GNATLIB_ADD_RPATHS) $(MISCLIB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -dynamiclib $(PICFLAG_FOR_TARGET) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(GNATRTL_TASKING_OBJS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(SO_OPTS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -Wl,-install_name,@rpath/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -Wl,-install_name,$(GNATLIB_INSTALL_PREFIX)/libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(GNATLIB_ADD_RPATHS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgnat$(soext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgnarl$(soext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cd $(RTSDIR); dsymutil libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cd $(RTSDIR); dsymutil libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cd $(RTSDIR); $(DSYMUTIL_FOR_TARGET) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cd $(RTSDIR); $(DSYMUTIL_FOR_TARGET) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gnatlib-shared:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(MAKE) $(FLAGS_TO_PASS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ada/gcc-interface/decl.c gcc/ada/gcc-interface/decl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8b221bc..60d389e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ada/gcc-interface/decl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ada/gcc-interface/decl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -170,7 +170,7 @@ gt_pch_nx (Entity_Id &)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_nx (Entity_Id *x, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (x, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (x, NULL, cookie);
</span><span style='display:block; white-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 dummy_type_hasher : ggc_cache_ptr_hash<tree_entity_vec_map>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ada/sigtramp-ios.c gcc/ada/sigtramp-ios.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index de04c1a..43276e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ada/sigtramp-ios.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ada/sigtramp-ios.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -71,6 +71,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* sigtramp stub providing unwind info for common registers. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__cplusplus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" {
</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;'>+ extern void __gnat_sigtramp_common
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (int signo, void *siginfo, void *sigcontext,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __sigtramphandler_t * handler);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -87,6 +91,10 @@ void __gnat_sigtramp (int signo, void *si, void *ucontext,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __gnat_sigtramp_common (signo, si, mcontext, handler);
</span><span style='display:block; white-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(__cplusplus)
</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;'>+ /* asm string construction helpers. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define STR(TEXT) #TEXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/builtins.def gcc/builtins.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fa8b064..f387b85 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/builtins.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/builtins.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -951,6 +951,8 @@ DEF_BUILTIN_STUB (BUILT_IN_ADJUST_TRAMPOLINE, "__builtin_adjust_trampoline")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEF_BUILTIN_STUB (BUILT_IN_INIT_DESCRIPTOR, "__builtin_init_descriptor")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEF_BUILTIN_STUB (BUILT_IN_ADJUST_DESCRIPTOR, "__builtin_adjust_descriptor")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEF_BUILTIN_STUB (BUILT_IN_NONLOCAL_GOTO, "__builtin_nonlocal_goto")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEF_BUILTIN_STUB (BUILT_IN_NESTED_PTR_CREATED, "__builtin_nested_func_ptr_created")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEF_BUILTIN_STUB (BUILT_IN_NESTED_PTR_DELETED, "__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;'>+ /* Implementing __builtin_setjmp. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEF_BUILTIN_STUB (BUILT_IN_SETJMP_SETUP, "__builtin_setjmp_setup")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/c-family/c-pch.c gcc/c-family/c-pch.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a2292f4..a90b306 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c-family/c-pch.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c-family/c-pch.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,7 +54,6 @@ struct c_pch_validity
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned char debug_info_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ signed char match[MATCH_SIZE];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void (*pch_init) (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t target_data_length;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -117,7 +116,6 @@ pch_init (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (v.match[i] == *pch_matching[i].flag_var);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- v.pch_init = &pch_init;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_validity = targetm.get_pch_validity (&v.target_data_length);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (fwrite (partial_pch, IDENT_LENGTH, 1, f) != 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -279,20 +277,6 @@ c_common_valid_pch (cpp_reader *pfile, const char *name, int fd)
</span><span style='display:block; white-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 the text segment was not loaded at the same address as it was
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- when the PCH file was created, function pointers loaded from the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- PCH will not be valid. We could in theory remap all the function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pointers, but no support for that exists at present.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Since we have the same executable, it should only be necessary to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- check one function. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (v.pch_init != &pch_init)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (cpp_get_options (pfile)->warn_invalid_pch)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- cpp_error (pfile, CPP_DL_WARNING,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "%s: had text segment at different address", name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 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;'>+ /* Check the target-specific validity data. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *this_file_data = xmalloc (v.target_data_length);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -393,7 +377,8 @@ c_common_no_more_pch (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (cpp_get_callbacks (parse_in)->valid_pch)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpp_get_callbacks (parse_in)->valid_pch = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- host_hooks.gt_pch_use_address (NULL, 0, -1, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *addr = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ host_hooks.gt_pch_use_address (addr, 0, -1, 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;'>+diff --git gcc/c-family/c.opt gcc/c-family/c.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c49da99..cc074e4 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;'>+@@ -2223,6 +2223,20 @@ std=iso9899:2018
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C ObjC Alias(std=c17)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Conform to the ISO 2017 C standard (published in 2018).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++stdlib=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Driver C++ ObjC++ Common Condition(ENABLE_STDLIB_OPTION) Var(flag_stdlib_kind) Joined Enum(stdlib_kind) RejectNegative Init(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-stdlib=[libstdc++|libc++] The standard library to be used for C++ headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++and runtime.
</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(stdlib_kind) Type(int)
</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(stdlib_kind) String(libstdc++) Value(1)
</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(stdlib_kind) String(libc++) Value(2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ traditional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Driver
</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-decl.c gcc/c/c-decl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8e24b52..2f8e4b9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/c/c-decl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/c/c-decl.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8706,8 +8706,8 @@ resort_field_decl_cmp (const void *x_p, const void *y_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree d1 = DECL_NAME (*x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree d2 = DECL_NAME (*y);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- resort_data.new_value (&d1, resort_data.cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- resort_data.new_value (&d2, resort_data.cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ resort_data.new_value (&d1, &d1, resort_data.cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ resort_data.new_value (&d2, &d2, resort_data.cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (d1 < d2)
</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;'>+diff --git gcc/calls.c gcc/calls.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 45c137c..fd22d2b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/calls.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/calls.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2310,7 +2310,8 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with those made by function.c. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* See if this argument should be passed by invisible reference. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- function_arg_info arg (type, argpos < n_named_args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ function_arg_info arg (type, argpos < n_named_args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ argpos == n_named_args - 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (pass_by_reference (args_so_far_pnt, arg))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const bool callee_copies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2485,6 +2486,7 @@ initialize_argument_information (int num_actuals ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reg_parm_stack_space,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ args[i].pass_on_stack ? 0 : args[i].partial,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ args_so_far,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fndecl, args_size, &args[i].locate);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef BLOCK_REG_PADDING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5215,6 +5217,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ argvec[count].reg != 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reg_parm_stack_space, 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ args_so_far,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ NULL_TREE, &args_size, &argvec[count].locate);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (argvec[count].reg == 0 || argvec[count].partial != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5306,6 +5309,7 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ argvec[count].reg != 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reg_parm_stack_space, argvec[count].partial,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ args_so_far,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ NULL_TREE, &args_size, &argvec[count].locate);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ args_size.constant += argvec[count].locate.size.constant;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (!argvec[count].locate.size.var);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/calls.h gcc/calls.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4ee4936..3c5fbad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/calls.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/calls.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,24 +35,43 @@ class function_arg_info
</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;'>+ function_arg_info ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- : type (NULL_TREE), mode (VOIDmode), named (false),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : type (NULL_TREE), mode (VOIDmode), named (false), last_named (false),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pass_by_reference (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;'>+ /* Initialize an argument of mode MODE, either before or after promotion. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function_arg_info (machine_mode mode, bool named)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- : type (NULL_TREE), mode (mode), named (named), pass_by_reference (false)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : type (NULL_TREE), mode (mode), named (named), last_named (false),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass_by_reference (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;'>++ function_arg_info (machine_mode mode, bool named, bool last_named)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : type (NULL_TREE), mode (mode), named (named), last_named (last_named),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass_by_reference (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;'>+ /* Initialize an unpromoted argument of type TYPE. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function_arg_info (tree type, bool named)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- : type (type), mode (TYPE_MODE (type)), named (named),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : type (type), mode (TYPE_MODE (type)), named (named), last_named (false),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pass_by_reference (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;'>++ /* Initialize an unpromoted argument of type TYPE. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ function_arg_info (tree type, bool named, bool last_named)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : type (type), mode (TYPE_MODE (type)), named (named),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ last_named (last_named), pass_by_reference (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;'>+ /* Initialize an argument with explicit properties. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function_arg_info (tree type, machine_mode mode, bool named)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- : type (type), mode (mode), named (named), pass_by_reference (false)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : type (type), mode (mode), named (named), last_named (false),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass_by_reference (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;'>++ /* Initialize an argument with explicit properties. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ function_arg_info (tree type, machine_mode mode, bool named, bool last_named)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : type (type), mode (mode), named (named), last_named (last_named),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pass_by_reference (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;'>+ /* Return true if the gimple-level type is an aggregate. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -105,6 +124,9 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "..."). See also TARGET_STRICT_ARGUMENT_NAMING. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int named : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* True if this is the last named argument. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int last_named : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* True if we have decided to pass the argument by reference, in which case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the function_arg_info describes a pointer to the original argument. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int pass_by_reference : 1;
</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 ec5235c..0afa0d1 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;'>+@@ -2044,6 +2044,10 @@ foffload-abi=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++foff-stack-trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Common RejectNegative Var(flag_off_stack_trampolines) Init(OFF_STACK_TRAMPOLINES_INIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Generate trampolines in executable memory rather than 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(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2592,6 +2596,10 @@ fstack-usage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Common RejectNegative Var(flag_stack_usage)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Output stack usage information on a per-function basis.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fstack-use-cumulative-args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Common RejectNegative Var(flag_stack_use_cumulative_args) Init(STACK_USE_CUMULATIVE_ARGS_INIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Use cumulative args-based stack layout hooks.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fstrength-reduce
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Common Ignore
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Does nothing. Preserved for backward compatibility.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2660,7 +2668,7 @@ Common Report Var(flag_tracer) Optimization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Perform superblock formation via tail duplication.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftrampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Common Report Var(flag_trampolines) Init(0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Common Report Var(flag_trampolines) Init(OFF_STACK_TRAMPOLINES_INIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ For targets that normally need trampolines for nested functions, always
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ generate them instead of using descriptors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config.gcc gcc/config.gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7fc8808..f430f63 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config.gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config.gcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -686,6 +686,20 @@ case ${target} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ macos_min=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def_ld64=85.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Tools hosted on earlier versions of Darwin constrained all object
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # alignment to be 2^15 or smaller. From Darwin11 (macOS 10.7) the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # alignment of non-common is allowed to be up to 2^28. Note that the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # larger alignment is permitted when targeting 10.6 from 10.7 so that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # the constraint only need be applied per host (and only if the host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # is Darwin).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${host} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*-darwin[4-9]* | *-*-darwin10*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=15U"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=28U"
</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;'>+ # Darwin 4 to 19 correspond to macOS 10.0 to 10.15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *-*-darwin[4-9]* | *-*-darwin1[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -722,7 +736,7 @@ case ${target} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_file="${tm_file} ${cpu_type}/darwin.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_p_file="${tm_p_file} darwin-protos.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- extra_options="${extra_options} darwin.opt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_options="${extra_options} rpath.opt darwin.opt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c_target_objs="${c_target_objs} darwin-c.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cxx_target_objs="${cxx_target_objs} darwin-c.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fortran_target_objs="darwin-f.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1062,6 +1076,23 @@ case ${target} in
</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;'>++# Defaults that need fixing.
</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;'>++ tm_defines="$tm_defines STACK_USE_CUMULATIVE_ARGS_INIT=1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm_defines="$tm_defines OFF_STACK_TRAMPOLINES_INIT=1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++*-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm_defines="$tm_defines STACK_USE_CUMULATIVE_ARGS_INIT=0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Currently, we do this for macOS 11 and above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm_defines="$tm_defines OFF_STACK_TRAMPOLINES_INIT=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;'>++ tm_defines="$tm_defines STACK_USE_CUMULATIVE_ARGS_INIT=0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm_defines="$tm_defines OFF_STACK_TRAMPOLINES_INIT=0"
</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;'>+ case ${target} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1100,6 +1131,11 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64-*-darwin* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm_file="${tm_file} aarch64/aarch64-errata.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-darwin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64*-*-freebsd*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config.host gcc/config.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 84f0433..3775850 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,7 +99,8 @@ case ${host} in
</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;'>+ case ${host} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- aarch64*-*-freebsd* | aarch64*-*-linux* | aarch64*-*-fuchsia*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64*-*-freebsd* | aarch64*-*-linux* | aarch64*-*-fuchsia* |\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64*-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case ${target} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64*-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_extra_gcc_objs="driver-aarch64.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -251,6 +252,10 @@ case ${host} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_extra_gcc_objs="${host_extra_gcc_objs} driver-mingw32.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_lto_plugin_soname=liblto_plugin-0.dll
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64*-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ out_host_hook_obj="${out_host_hook_obj} host-aarch64-darwin.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ host_xmake_file="${host_xmake_file} aarch64/x-darwin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i[34567]86-*-darwin* | x86_64-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_xmake_file="${host_xmake_file} i386/x-darwin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config.in gcc/config.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6de77ed..5086764 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,6 +49,19 @@
</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;'>++/* 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;'>++#ifndef USED_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DARWIN_ADD_RPATH
</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;'>++/* Should add an extra runpath directory */
</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 DARWIN_DO_EXTRA_RPATH
</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 to enable the use of a default assembler. */
</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 DEFAULT_ASSEMBLER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -230,6 +243,13 @@
</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 you build Position Independent Executables for the compilers and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ other tools. */
</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 ENABLE_PIE_TOOLS
</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 to enable plugin support. */
</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 ENABLE_PLUGIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -254,6 +274,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Define if you want runtime assertions enabled. This is a cheap check. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef ENABLE_RUNTIME_CHECKING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Define if the -stdlib= option should be enabled. */
</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 ENABLE_STDLIB_OPTION
</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 you want all operations on trees (the basic data structure of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ front ends) to be checked for dynamic type safety at runtime. This is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ moderately expensive. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1532,6 +1558,12 @@
</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 the PE linker has broken DWARF 5 support. */
</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_LD_BROKEN_PE_DWARF5
</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 linker supports --build-id. */
</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_LD_BUILDID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1599,6 +1631,12 @@
</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 the PE linker supports --disable-dynamicbase option. */
</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_LD_PE_DISABLE_DYNAMICBASE
</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 linker supports PIE option. */
</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_LD_PIE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2038,6 +2076,12 @@
</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 to 1 if ld64 supports '-platform_version'. */
</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 LD64_HAS_PLATFORM_VERSION
</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 to ld64 version. */
</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 LD64_VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/aarch64-builtins.c gcc/config/aarch64/aarch64-builtins.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d92157d..8dcb8a3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64-builtins.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64-builtins.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -493,6 +493,10 @@ enum aarch64_builtins
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AARCH64_MEMTAG_BUILTIN_SET_TAG,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AARCH64_MEMTAG_BUILTIN_GET_TAG,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AARCH64_MEMTAG_BUILTIN_END,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* OS-specific */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AARCH64_BUILTIN_CFSTRING,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AARCH64_BUILTIN_HUGE_VALQ,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AARCH64_BUILTIN_INFQ,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AARCH64_BUILTIN_MAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -609,6 +613,9 @@ tree aarch64_fp16_ptr_type_node = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree aarch64_bf16_type_node = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree aarch64_bf16_ptr_type_node = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Pointer to __float128 on Mach-O, where the 128b float is not long double. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++tree aarch64_float128_ptr_type_node = NULL_TREE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Wrapper around add_builtin_function. NAME is the name of the built-in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function, TYPE is the function type, and CODE is the function subcode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (relative to AARCH64_BUILTIN_GENERAL). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1125,6 +1132,40 @@ aarch64_init_bf16_types (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_bf16_ptr_type_node = build_pointer_type (aarch64_bf16_type_node);
</span><span style='display:block; white-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 the backend REAL_TYPE type supporting __float128 on Mach-O,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as well as the related built-ins. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_init_float128_types (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tree ftype, fndecl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Populate the float128 node if it is not already done so that the FEs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ know it is available. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (float128_type_node == NULL_TREE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ float128_type_node = make_node (REAL_TYPE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ TYPE_PRECISION (float128_type_node) = 128;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SET_TYPE_MODE (float128_type_node, TFmode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ layout_type (float128_type_node);
</span><span style='display:block; white-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_hooks.types.register_builtin_type (float128_type_node, "__float128");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_float128_ptr_type_node = build_pointer_type (float128_type_node);
</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 (float128_type_node, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fndecl = aarch64_general_add_builtin ("__builtin_huge_valq", ftype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AARCH64_BUILTIN_HUGE_VALQ);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ TREE_READONLY (fndecl) = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_builtin_decls[AARCH64_BUILTIN_HUGE_VALQ] = fndecl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fndecl = aarch64_general_add_builtin ("__builtin_infq", ftype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AARCH64_BUILTIN_INFQ);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ TREE_READONLY (fndecl) = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_builtin_decls[AARCH64_BUILTIN_INFQ] = fndecl;
</span><span style='display:block; white-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;'>+ /* Pointer authentication builtins that will become NOP on legacy platform.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Currently, these builtins are for internal use only (libgcc EH unwinder). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1280,8 +1321,9 @@ aarch64_general_init_builtins (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AARCH64_BUILTIN_SET_FPSR);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_init_fp16_types ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_init_bf16_types ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_init_float128_types ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (TARGET_SIMD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_init_simd_builtins ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1312,6 +1354,14 @@ aarch64_general_init_builtins (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_init_memtag_builtins ();
</span><span style='display:block; white-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;'>++aarch64_init_subtarget_builtins (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef SUBTARGET_INIT_BUILTINS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SUBTARGET_INIT_BUILTINS;
</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 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><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2174,6 +2224,15 @@ aarch64_general_fold_builtin (unsigned int fcode, tree type,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ VAR1 (UNOP, floatv4si, 2, v4sf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ VAR1 (UNOP, floatv2di, 2, v2df)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return fold_build1 (FLOAT_EXPR, type, args[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case AARCH64_BUILTIN_HUGE_VALQ:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case AARCH64_BUILTIN_INFQ:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_assert (n_args == 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ REAL_VALUE_TYPE inf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ real_inf (&inf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return build_real (type, inf);
</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;'>+ default:
</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;'>+diff --git gcc/config/aarch64/aarch64-c.c gcc/config/aarch64/aarch64-c.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fd08be4..040b87a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64-c.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64-c.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -360,4 +360,8 @@ aarch64_register_pragmas (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ targetm.check_builtin_call = aarch64_check_builtin_call;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c_register_pragma ("GCC", "aarch64", aarch64_pragma_aarch64);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef REGISTER_SUBTARGET_PRAGMAS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ REGISTER_SUBTARGET_PRAGMAS ();
</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;'>+diff --git gcc/config/aarch64/aarch64-protos.h gcc/config/aarch64/aarch64-protos.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 61e2ad5..525a6e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64-protos.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64-protos.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -108,6 +108,14 @@ enum aarch64_symbol_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SYMBOL_TLSLE24,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SYMBOL_TLSLE32,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SYMBOL_TLSLE48,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYMBOL_MO_SMALL_ABS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYMBOL_MO_SMALL_PCR,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYMBOL_MO_SMALL_GOT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYMBOL_MO_SMALL_TLS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYMBOL_MO_LARGE_ABS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYMBOL_MO_LARGE_PCR,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYMBOL_MO_LARGE_GOT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SYMBOL_MO_LARGE_TLS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SYMBOL_FORCE_TO_MEM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -493,6 +501,7 @@ void aarch64_post_cfi_startproc (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ poly_int64 aarch64_initial_elimination_offset (unsigned, unsigned);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int aarch64_get_condition_code (rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool aarch64_address_valid_for_prefetch_p (rtx, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bool aarch64_address_valid_for_unscaled_prefetch_p (rtx, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool aarch64_bitmask_imm (HOST_WIDE_INT val, machine_mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned HOST_WIDE_INT aarch64_and_split_imm1 (HOST_WIDE_INT val_in);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned HOST_WIDE_INT aarch64_and_split_imm2 (HOST_WIDE_INT val_in);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -641,6 +650,7 @@ void aarch64_expand_vector_init (rtx, rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_sve_expand_vector_init (rtx, rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_init_cumulative_args (CUMULATIVE_ARGS *, const_tree, rtx,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const_tree, unsigned, bool = false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void aarch64_init_cumulative_incoming_args (CUMULATIVE_ARGS *, const_tree, rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_init_expanders (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_init_simd_builtins (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_emit_call_insn (rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -716,6 +726,7 @@ void aarch64_override_options_internal (struct gcc_options *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *aarch64_general_mangle_builtin_type (const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void aarch64_general_init_builtins (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void aarch64_init_subtarget_builtins (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree aarch64_general_fold_builtin (unsigned int, tree, unsigned int, tree *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gimple *aarch64_general_gimple_fold_builtin (unsigned int, gcall *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtx aarch64_general_expand_builtin (unsigned int, tree, rtx, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/aarch64-sve-builtins.cc gcc/config/aarch64/aarch64-sve-builtins.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 336a1db..a0195bf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64-sve-builtins.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64-sve-builtins.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3908,7 +3908,7 @@ gt_pch_nx (function_instance *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inline void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gt_pch_nx (function_instance *, void (*) (void *, void *), void *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gt_pch_nx (function_instance *, gt_pointer_operator, 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/aarch64.c gcc/config/aarch64/aarch64.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 67c2f11..5b6847d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -287,8 +287,10 @@ static bool aarch64_vfp_is_call_or_return_candidate (machine_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const_tree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ machine_mode *, int *,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool *, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void aarch64_elf_asm_constructor (rtx, int) ATTRIBUTE_UNUSED;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void aarch64_elf_asm_destructor (rtx, int) ATTRIBUTE_UNUSED;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void aarch64_override_options_after_change (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool aarch64_vector_mode_supported_p (machine_mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int aarch64_address_cost (rtx, machine_mode, addr_space_t, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1570,6 +1572,9 @@ static const struct attribute_spec aarch64_attribute_table[] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { "Advanced SIMD type", 0, 0, false, true, false, true, NULL, NULL },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { "SVE type", 3, 3, false, true, false, true, NULL, NULL },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { "SVE sizeless type", 0, 0, false, true, false, true, NULL, NULL },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef SUBTARGET_ATTRIBUTE_TABLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SUBTARGET_ATTRIBUTE_TABLE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { NULL, 0, 0, false, false, false, false, NULL, 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;'>+@@ -2658,7 +2663,7 @@ aarch64_hard_regno_mode_ok (unsigned regno, machine_mode mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (known_le (GET_MODE_SIZE (mode), 8))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (known_le (GET_MODE_SIZE (mode), 16))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return (regno & 1) == 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return (regno & 1) == 0 || TARGET_MACHO; /* darwinpcs D.4 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (FP_REGNUM_P (regno))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2704,8 +2709,10 @@ static bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_takes_arguments_in_sve_regs_p (const_tree fntype)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CUMULATIVE_ARGS args_so_far_v;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* This does not apply to variadic functions, so all the (currently
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uncounted) arguments must be named. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_init_cumulative_args (&args_so_far_v, NULL_TREE, NULL_RTX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- NULL_TREE, 0, true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NULL_TREE, -1, true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cumulative_args_t args_so_far = pack_cumulative_args (&args_so_far_v);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (tree chain = TYPE_ARG_TYPES (fntype);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3113,6 +3120,7 @@ aarch64_load_symref_appropriately (rtx dest, rtx imm,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch (type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_SMALL_ABSOLUTE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case SYMBOL_MO_SMALL_PCR:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* In ILP32, the mode of dest can be either SImode or DImode. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rtx tmp_reg = dest;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3123,6 +3131,21 @@ aarch64_load_symref_appropriately (rtx dest, rtx imm,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (can_create_pseudo_p ())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmp_reg = gen_reg_rtx (mode);
</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;'>++ rtx sym, off;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ split_const (imm, &sym, &off);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Negative offsets don't work, whether by intention is TBD. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (INTVAL (off) < 0 || INTVAL (off) > 8 * 1024 * 1024)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ emit_move_insn (tmp_reg, gen_rtx_HIGH (mode, sym));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ emit_insn (gen_add_losym (dest, tmp_reg, sym));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* FIXME: add the SI option if/when we support ilp32. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ emit_insn (gen_adddi3 (dest, dest, off));
</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;'>++ /* else small enough positive offset is OK. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ emit_move_insn (tmp_reg, gen_rtx_HIGH (mode, copy_rtx (imm)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ emit_insn (gen_add_losym (dest, tmp_reg, imm));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3206,6 +3229,7 @@ aarch64_load_symref_appropriately (rtx dest, rtx imm,
</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;'>++ case SYMBOL_MO_SMALL_GOT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_SMALL_GOT_4G:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* In ILP32, the mode of dest can be either SImode or DImode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5315,6 +5339,7 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_SMALL_TLSIE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_SMALL_GOT_28K:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_SMALL_GOT_4G:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case SYMBOL_MO_SMALL_GOT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_TINY_GOT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_TINY_TLSIE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (const_offset != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5328,6 +5353,7 @@ aarch64_expand_mov_immediate (rtx dest, rtx imm)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* FALLTHRU */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_SMALL_ABSOLUTE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case SYMBOL_MO_SMALL_PCR:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_TINY_ABSOLUTE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_TLSLE12:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_TLSLE24:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5901,6 +5927,7 @@ aarch64_return_in_memory (const_tree type, const_tree fndecl ATTRIBUTE_UNUSED)
</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:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_vfp_is_call_candidate (cumulative_args_t pcum_v, machine_mode mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const_tree type, int *nregs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5910,6 +5937,7 @@ aarch64_vfp_is_call_candidate (cumulative_args_t pcum_v, machine_mode mode,
</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, NULL, pcum->silent_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;'>+ /* Given MODE and TYPE of a function argument, return the alignment in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bits. The idea is to suppress any stronger alignment requested by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5993,6 +6021,13 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</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;'>+ pcum->aapcs_arg_processed = true;
</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;'>++ /* Set suitable defaults for queries. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_boundary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = aarch64_function_arg_alignment (mode, type, &abi_break);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_padding = BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pure_scalable_type_info pst_info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (type && pst_info.analyze_registers (type))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6049,13 +6084,29 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* No frontends can create types with variable-sized modes, so we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ shouldn't be asked to pass or return them. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size = GET_MODE_SIZE (mode).to_constant ();
</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;'>++ /* Since we can pack things on the stack, we need the unrounded size. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_stack_bytes = size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size = ROUND_UP (size, UNITS_PER_WORD);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ allocate_ncrn = (type) ? !(FLOAT_TYPE_P (type)) : !FLOAT_MODE_P (mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool is_ha = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ allocate_nvrn = aarch64_vfp_is_call_candidate (pcum_v,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ type,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &nregs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We care if the value is a homogenous aggregate when laying out the stack,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ so use this call directly. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ allocate_nvrn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = aarch64_vfp_is_call_or_return_candidate (mode, type,
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (!sve_p || !allocate_nvrn);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* allocate_ncrn may be false-positive, but allocate_nvrn is quite reliable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6070,7 +6121,13 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!pcum->silent_p && !TARGET_FLOAT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_err_no_fpadvsimd (mode);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (nvrn + nregs <= NUM_FP_ARG_REGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && !arg.named)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->aapcs_nextnvrn = NUM_FP_ARG_REGS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ goto on_stack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (nvrn + nregs <= NUM_FP_ARG_REGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_nextnvrn = nvrn + nregs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!aarch64_composite_type_p (type, mode))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6094,6 +6151,7 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_reg = par;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_stack_bytes = 0;
</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;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6110,10 +6168,18 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* C6 - C9. though the sign and zero extension semantics are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ handled elsewhere. This is the case where the argument fits
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ entirely general registers. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (allocate_ncrn && (ncrn + nregs <= NUM_ARG_REGS))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (nregs == 0 || nregs == 1 || nregs == 2);
</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;'>++ && !arg.named)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->aapcs_nextncrn = NUM_ARG_REGS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ goto on_stack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* C.8 if the argument has an alignment of 16 then the NGRN is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rounded up to the next even number. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (nregs == 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6123,7 +6189,9 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ alignment nregs should be > 2 and therefore it should be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ passed by reference rather than value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && (aarch64_function_arg_alignment (mode, type, &abi_break)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- == 16 * BITS_PER_UNIT))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ == 16 * BITS_PER_UNIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Darwin PCS deletes rule C.8. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && !TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (abi_break && warn_psabi && currently_expanding_gimple_stmt)
</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;'>+@@ -6169,8 +6237,8 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_reg = par;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_nextncrn = ncrn + nregs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_stack_bytes = 0;
</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;'>+@@ -6180,10 +6248,87 @@ aarch64_layout_arg (cumulative_args_t pcum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The argument is passed on stack; record the needed number of words for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ this argument and align the total size if necessary. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ on_stack:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pcum->aapcs_stack_words = size / UNITS_PER_WORD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (aarch64_function_arg_alignment (mode, type, &abi_break)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- == 16 * BITS_PER_UNIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int align = aarch64_function_arg_alignment (mode, type, &abi_break);
</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;'>++ /* Darwin does not round up the allocation for smaller entities to 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bytes. It only requires the natural alignment for these.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ but we don't do this for:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * unnamed parms in variadic functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * complex types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * unions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * aggregates (except for homogeneous ones which are handles as the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enclosed type).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ each entry starts a new slot.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 16 byte entities are naturally aligned on the stack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ There was no darwinpcs for GCC 9, so neither the implementation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ change nor the warning should fire here (i.e. we do not need to check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if 16byte entities alter the stack size). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_checking_assert (arg.named == pcum->named_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_padding = BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!pcum->named_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || TREE_CODE (type) == COMPLEX_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (TREE_CODE (type) == RECORD_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && !is_ha && !SCALAR_FLOAT_MODE_P (pcum->aapcs_vfp_rmode))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || TREE_CODE (type) == UNION_TYPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->aapcs_stack_words = size / UNITS_PER_WORD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_sub_word_offset = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_sub_word_pos = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_boundary = MAX (align, PARM_BOUNDARY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!pcum->named_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_padding = PARM_BOUNDARY;
</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;'>++ /* Updated sub-word offset aligned for the new object.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ We are looking for the case that the new object will fit after some
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ existing object(s) in the same stack slot. In that case, we do not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ need to add any more stack space for it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int new_off
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = ROUND_UP (pcum->darwinpcs_sub_word_pos, align / BITS_PER_UNIT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (new_off >= UNITS_PER_WORD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* That exceeds a stack slot, start a new one. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_sub_word_offset = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_sub_word_pos = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ new_off = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* This is the end of the new object. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int new_pos = new_off + pcum->darwinpcs_stack_bytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (pcum->darwinpcs_sub_word_pos == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* New stack slot, just allocate one or more words, and note where
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the next arg will start. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->aapcs_stack_words = size / UNITS_PER_WORD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (new_pos <= UNITS_PER_WORD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Old stack slot, object starts at new_off and goes to new_pos, we do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ not add any stack space. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_sub_word_offset = new_off;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_sub_word_pos = new_pos;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_boundary = align;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (pcum->last_named_p && new_pos > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Round the last named arg to the start of the next stack slot. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (new_pos <= 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_padding = PARM_BOUNDARY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (new_pos <= 6)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_padding = 4 * BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (pcum->darwinpcs_sub_word_pos <= 7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_padding = 2 * BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</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;'>++ /* size was already rounded up to PARM_BOUNDARY. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->aapcs_stack_words = size / UNITS_PER_WORD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (align == 16 * BITS_PER_UNIT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int new_size = ROUND_UP (pcum->aapcs_stack_size, 16 / UNITS_PER_WORD);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (pcum->aapcs_stack_size != new_size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6236,7 +6381,28 @@ aarch64_init_cumulative_args (CUMULATIVE_ARGS *pcum,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_arg_processed = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_stack_words = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_stack_size = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_stack_bytes = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_sub_word_offset = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_sub_word_pos = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_boundary = BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_padding = BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* If we have been invoked for incoming args, then n_named will have been
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set to -1, but we should have a function decl - so pick up the named
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ count from that. If that fails, and we end up with -1, this effectively
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ corresponds to assuming that there is an arbitrary number of named
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ args. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_n_named = n_named;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (n_named == (unsigned)-1 && fndecl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tree fnt = TREE_TYPE (fndecl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fnt && TYPE_ARG_TYPES (fnt))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_n_named = list_length (TYPE_ARG_TYPES (fnt));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_n_args_processed = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->named_p = pcum->darwinpcs_n_named != 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->last_named_p = pcum->darwinpcs_n_named == 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->silent_p = silent_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->aapcs_vfp_rmode = VOIDmode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!silent_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && !TARGET_FLOAT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6276,8 +6442,10 @@ aarch64_function_arg_advance (cumulative_args_t pcum_v,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || pcum->pcs_variant == ARM_PCS_SVE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_layout_arg (pcum_v, arg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gcc_assert ((pcum->aapcs_reg != NULL_RTX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- != (pcum->aapcs_stack_words != 0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_n_args_processed++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_assert (TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (pcum->aapcs_reg != NULL_RTX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ != (pcum->aapcs_stack_words != 0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_arg_processed = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_ncrn = pcum->aapcs_nextncrn;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_nvrn = pcum->aapcs_nextnvrn;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6285,6 +6453,12 @@ aarch64_function_arg_advance (cumulative_args_t pcum_v,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_stack_size += pcum->aapcs_stack_words;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_stack_words = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pcum->aapcs_reg = NULL_RTX;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_boundary = BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->darwinpcs_arg_padding = BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->named_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = pcum->darwinpcs_n_args_processed < pcum->darwinpcs_n_named;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pcum->last_named_p
</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:#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;'>+@@ -6295,12 +6469,15 @@ aarch64_function_arg_regno_p (unsigned regno)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || (FP_REGNUM_P (regno) && regno < V0_REGNUM + NUM_FP_ARG_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;'>+-/* Implement FUNCTION_ARG_BOUNDARY. Every parameter gets at least
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- PARM_BOUNDARY bits of alignment, but will be given anything up
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- to STACK_BOUNDARY bits if the type requires it. This makes sure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- that both before and after the layout of each argument, the Next
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- Stacked Argument Address (NSAA) will have a minimum alignment of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 8 bytes. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implement FUNCTION_ARG_BOUNDARY.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if the type requires it. This makes sure that both before and after
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the layout of each argument, the Next Stacked Argument Address (NSAA)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ will have a minimum alignment of 8 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ For darwinpcs, this is only called to lower va_arg entries which are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ always aligned as for AAPCS64. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_function_arg_boundary (machine_mode mode, const_tree type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6308,11 +6485,114 @@ aarch64_function_arg_boundary (machine_mode mode, const_tree type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool abi_break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int alignment = aarch64_function_arg_alignment (mode, type,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &abi_break);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* This can only work for unnamed args. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ machine_mode comp_mode = VOIDmode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int nregs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool is_ha;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_vfp_is_call_or_return_candidate (mode, type, &comp_mode, &nregs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ &is_ha, /*silent*/true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (TREE_CODE (type) == COMPLEX_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (TREE_CODE (type) == RECORD_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && !is_ha && !SCALAR_FLOAT_MODE_P (comp_mode))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || TREE_CODE (type) == UNION_TYPE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return MIN (alignment, STACK_BOUNDARY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (abi_break & warn_psabi)
</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 MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
</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;'>++/* For Darwin, we want to use the arg boundary computed when laying out the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ function arg, to cope with items packed on the stack and the different
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rules applied to unnamed parms. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_function_arg_boundary_ca (machine_mode mode ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const_tree type ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cumulative_args_t ca ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool abi_break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int alignment = aarch64_function_arg_alignment (mode, type,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ &abi_break);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</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;'>++gcc_checking_assert (pcum->aapcs_arg_processed);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool named_p = pcum->darwinpcs_n_args_processed < pcum->darwinpcs_n_named;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_checking_assert (named_p == pcum->named_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ machine_mode comp_mode = VOIDmode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int nregs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool is_ha;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_vfp_is_call_or_return_candidate (mode, type, &comp_mode, &nregs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ &is_ha, /*silent*/true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool no_pack = (TREE_CODE (type) == COMPLEX_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (TREE_CODE (type) == RECORD_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && !is_ha && !SCALAR_FLOAT_MODE_P (comp_mode))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || TREE_CODE (type) == UNION_TYPE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool in_regs = (pcum->aapcs_reg != NULL_RTX);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((named_p && !no_pack) || in_regs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ; /* Leave the alignment as natural. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ alignment = MAX (alignment, PARM_BOUNDARY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_checking_assert (alignment == pcum->darwinpcs_arg_boundary);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return MIN (alignment, STACK_BOUNDARY);
</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;'>++ alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (abi_break & warn_psabi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ abi_break = MIN (MAX (abi_break, PARM_BOUNDARY), STACK_BOUNDARY);
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return alignment;
</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 TARGET_FUNCTION_ARG_ROUND_BOUNDARY_CA for darwinpcs which allows
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ non-standard passing of byte-aligned items [D.2]. This is done by pulling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the values out of the cumulative args struct. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static unsigned int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_function_arg_round_boundary_ca (machine_mode mode ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const_tree type ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cumulative_args_t ca)
</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;'>++gcc_checking_assert (pcum->aapcs_arg_processed);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool named_p = pcum->darwinpcs_n_args_processed < pcum->darwinpcs_n_named;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_checking_assert (named_p == pcum->named_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool last_named_p = pcum->darwinpcs_n_args_processed + 1 == pcum->darwinpcs_n_named;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_checking_assert (last_named_p == pcum->last_named_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned boundary = BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (last_named_p && pcum->darwinpcs_sub_word_pos > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Round the last named arg to the start of the next stack slot. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (pcum->darwinpcs_sub_word_pos <= 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ boundary = PARM_BOUNDARY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (pcum->darwinpcs_sub_word_pos <= 6)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ boundary = 4 * BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (pcum->darwinpcs_sub_word_pos <= 7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ boundary = 2 * BITS_PER_UNIT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (named_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Named args are naturally aligned, but with no rounding. */
</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;'>++ /* un-named args are rounded to fill slots. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ boundary = PARM_BOUNDARY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_checking_assert (boundary == pcum->darwinpcs_arg_padding);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 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;'>+ /* Implement TARGET_GET_RAW_RESULT_MODE and TARGET_GET_RAW_ARG_MODE. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9416,6 +9696,7 @@ aarch64_classify_address (struct aarch64_address_info *info,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* load literal: pc-relative constant pool entry. Only supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for SI mode or larger. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ info->type = ADDRESS_SYMBOLIC;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ info->offset = NULL_RTX;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!load_store_pair_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && GET_MODE_SIZE (mode).is_constant (&const_size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9443,7 +9724,9 @@ aarch64_classify_address (struct aarch64_address_info *info,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (GET_CODE (sym) == SYMBOL_REF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && offset.is_constant (&const_offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && (aarch64_classify_symbol (sym, const_offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- == SYMBOL_SMALL_ABSOLUTE))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ == SYMBOL_SMALL_ABSOLUTE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || aarch64_classify_symbol (sym, const_offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ == SYMBOL_MO_SMALL_PCR))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The symbol and offset must be aligned to the access size. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int align;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9493,6 +9776,55 @@ aarch64_address_valid_for_prefetch_p (rtx x, bool strict_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!res)
</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 ELF targets using GAS, we emit prfm unconditionally; GAS will alter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the instruction to pick the prfum form where possible (i.e. when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ offset is in the range -256..255) and fall back to prfm otherwise.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ We can reject cases where the offset exceeds the range usable by both
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ insns [-256..32760], or for offsets > 255 when the value is not divisible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ by 8.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ For Mach-O (Darwin) where the assembler uses the LLVM back end, that does
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ not yet do the substitution, so we must reject all prfum cases. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (addr.offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ HOST_WIDE_INT offs = INTVAL (addr.offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (offs < -256) /* Out of range for both prfum and prfm. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (offs > 32760) /* Out of range for prfm. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (offs & 0x07) /* We cannot use prfm. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (offs > 255) /* Out of range for prfum. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (TARGET_MACHO)
</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 (TARGET_MACHO && offs < 0)
</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;'>++ /* ... except writeback forms. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return addr.type != ADDRESS_REG_WB;
</span><span style='display:block; white-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 true if the address X is valid for a PRFUM instruction.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ STRICT_P is true if we should do strict checking with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_classify_address. */
</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;'>++aarch64_address_valid_for_unscaled_prefetch_p (rtx x, bool strict_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct aarch64_address_info addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* PRFUM accepts the same addresses as DImode, but constrained to a range
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -256..255. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool res = aarch64_classify_address (&addr, x, DImode, strict_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!res)
</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 (addr.offset && ((INTVAL (addr.offset) > 255)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (INTVAL (addr.offset) < -256)))
</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;'>+ /* ... except writeback forms. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return addr.type != ADDRESS_REG_WB;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10177,6 +10509,144 @@ sizetochar (int 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++output_macho_postfix_expr (FILE *file, rtx x, const char *postfix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char buf[256];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ restart:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ switch (GET_CODE (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case PC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ putc ('.', file);
</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 SYMBOL_REF:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (SYMBOL_REF_DECL (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ assemble_external (SYMBOL_REF_DECL (x));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ assemble_name (file, XSTR (x, 0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, "@%s", postfix);
</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 LABEL_REF:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = label_ref_label (x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Fall through. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case CODE_LABEL:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ASM_GENERATE_INTERNAL_LABEL (buf, "L", CODE_LABEL_NUMBER (x));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ assemble_name (file, buf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, "@%s", postfix);
</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 CONST_INT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x));
</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 CONST:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* This used to output parentheses around the expression,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ but that does not work on the 386 (either ATT or BSD assembler). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (file, XEXP (x, 0), postfix);
</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 CONST_WIDE_INT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We do not know the mode here so we have to use a round about
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ way to build a wide-int to get it printed properly. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ wide_int w = wide_int::from_array (&CONST_WIDE_INT_ELT (x, 0),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CONST_WIDE_INT_NUNITS (x),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CONST_WIDE_INT_NUNITS (x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * HOST_BITS_PER_WIDE_INT,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ print_decs (w, file);
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case CONST_DOUBLE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (CONST_DOUBLE_AS_INT_P (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We can use %d if the number is one word and positive. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (CONST_DOUBLE_HIGH (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, HOST_WIDE_INT_PRINT_DOUBLE_HEX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (unsigned HOST_WIDE_INT) CONST_DOUBLE_HIGH (x),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (unsigned HOST_WIDE_INT) CONST_DOUBLE_LOW (x));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (CONST_DOUBLE_LOW (x) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, HOST_WIDE_INT_PRINT_HEX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (unsigned HOST_WIDE_INT) CONST_DOUBLE_LOW (x));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, HOST_WIDE_INT_PRINT_DEC, CONST_DOUBLE_LOW (x));
</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;'>++ /* We can't handle floating point constants;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ PRINT_OPERAND must handle them. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_operand_lossage ("floating constant misused");
</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 CONST_FIXED:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, HOST_WIDE_INT_PRINT_DEC, CONST_FIXED_VALUE_LOW (x));
</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 PLUS:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Some assemblers need integer constants to appear last (eg masm). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (CONST_INT_P (XEXP (x, 0)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (file, XEXP (x, 1), postfix);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (INTVAL (XEXP (x, 0)) >= 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, "+");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_addr_const (file, XEXP (x, 0));
</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;'>++ output_macho_postfix_expr (file, XEXP (x, 0), postfix);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!CONST_INT_P (XEXP (x, 1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || INTVAL (XEXP (x, 1)) >= 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, "+");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_addr_const (file, XEXP (x, 1));
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case MINUS:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Avoid outputting things like x-x or x+5-x,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ since some assemblers can't handle that. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = simplify_subtraction (x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (GET_CODE (x) != MINUS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ goto restart;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (file, XEXP (x, 0), postfix);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (file, "-");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((CONST_INT_P (XEXP (x, 1)) && INTVAL (XEXP (x, 1)) >= 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || GET_CODE (XEXP (x, 1)) == PC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || GET_CODE (XEXP (x, 1)) == SYMBOL_REF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_addr_const (file, XEXP (x, 1));
</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;'>++ fputs (targetm.asm_out.open_paren, file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_addr_const (file, XEXP (x, 1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fputs (targetm.asm_out.close_paren, file);
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ZERO_EXTEND:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case SIGN_EXTEND:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case SUBREG:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TRUNCATE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_addr_const (file, XEXP (x, 0));
</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 UNSPEC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (XINT (x, 1) == UNSPEC_SALT_ADDR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (file, XVECEXP (x, 0, 0), postfix);
</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;'>++ /* FALLTHROUGH */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (targetm.asm_out.output_addr_const_extra (file, x))
</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;'>++ output_operand_lossage ("invalid expression as operand");
</span><span style='display:block; white-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;'>+ /* Print operand X to file F in a target specific manner according to CODE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ The acceptable formatting commands given by CODE are:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'c': An integer or symbol address without a preceding #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10245,6 +10715,12 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case 'K':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (f, x, "PAGEOFF");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case 'O':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (f, x, "GOTPAGEOFF");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case 'e':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x = unwrap_const_vec_duplicate (x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10565,7 +11041,7 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case 'A':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (GET_CODE (x) == HIGH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x = XEXP (x, 0);
</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;'>+ switch (aarch64_classify_symbolic_expression (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_SMALL_GOT_4G:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10596,9 +11072,29 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</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;'>+ output_addr_const (asm_out_file, x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // FIXME update classify symbolic expression to handle macho.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ switch (aarch64_classify_symbolic_expression (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case SYMBOL_MO_SMALL_PCR:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (asm_out_file, x, "PAGE");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// asm_fprintf (asm_out_file, "@PAGE;mopcr");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case SYMBOL_MO_SMALL_GOT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (asm_out_file, x, "GOTPAGE");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// asm_fprintf (asm_out_file, "@GOTPAGE;mosg");
</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;'>++ output_macho_postfix_expr (asm_out_file, x, "BLEAH");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// asm_fprintf (asm_out_file, "@BLEAH");
</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;'>++#endif
</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 'L':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch (aarch64_classify_symbolic_expression (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_SMALL_GOT_4G:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10636,10 +11132,12 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default:
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_addr_const (asm_out_file, x);
</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 'G':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ switch (aarch64_classify_symbolic_expression (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case SYMBOL_TLSLE24:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10648,6 +11146,7 @@ aarch64_print_operand (FILE *f, rtx x, int code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default:
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_addr_const (asm_out_file, x);
</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;'>+@@ -10795,8 +11294,14 @@ aarch64_print_address_internal (FILE *f, machine_mode mode, rtx x,
</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 ADDRESS_LO_SUM:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ asm_fprintf (f, "[%s, #", reg_names [REGNO (addr.base)]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ output_macho_postfix_expr (f, addr.offset, "PAGEOFF");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// output_addr_const (f, addr.offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asm_fprintf (f, "[%s, #:lo12:", reg_names [REGNO (addr.base)]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_addr_const (f, addr.offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asm_fprintf (f, "]");
</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;'>+@@ -11280,6 +11785,8 @@ aarch64_asm_output_labelref (FILE* f, const char *name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asm_fprintf (f, "%U%s", 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;'>++#if !TARGET_MACHO
</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;'>+ aarch64_elf_asm_constructor (rtx symbol, int priority)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11319,6 +11826,7 @@ aarch64_elf_asm_destructor (rtx symbol, int priority)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assemble_aligned_integer (POINTER_BYTES, symbol);
</span><span style='display:block; white-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;'>+ const char*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_output_casesi (rtx *operands)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13503,12 +14011,17 @@ aarch64_init_builtins ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_general_init_builtins ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_sve::init_builtins ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_init_subtarget_builtins ();
</span><span style='display:block; white-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 TARGET_FOLD_BUILTIN. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static tree
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_fold_builtin (tree fndecl, int nargs, tree *args, bool)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef SUBTARGET_FOLD_BUILTIN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tree res = SUBTARGET_FOLD_BUILTIN (fndecl, nargs, args, false))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return res;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int code = DECL_MD_FUNCTION_CODE (fndecl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int subcode = code >> AARCH64_BUILTIN_SHIFT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree type = TREE_TYPE (TREE_TYPE (fndecl));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15321,10 +15834,14 @@ initialize_aarch64_code_model (struct gcc_options *opts)
</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 AARCH64_CMODEL_LARGE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (opts->x_flag_pic)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We need to implement fPIC here (arm64_32 also accepts the large
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ model). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (opts->x_flag_pic)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sorry ("code model %qs with %<-f%s%>", "large",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ opts->x_flag_pic > 1 ? "PIC" : "pic");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (opts->x_aarch64_abi == AARCH64_ABI_ILP32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (opts->x_aarch64_abi == AARCH64_ABI_ILP32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sorry ("code model %qs not supported in ilp32 mode", "large");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_TINY_PIC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16224,7 +16741,9 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_SMALL_SPIC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_SMALL_PIC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_SMALL:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return SYMBOL_SMALL_ABSOLUTE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ? SYMBOL_MO_SMALL_PCR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : SYMBOL_SMALL_ABSOLUTE;
</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;'>+ gcc_unreachable ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16261,14 +16780,28 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_SMALL:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Same reasoning as the tiny code model, but the offset cap here is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1MB, allowing +/-3.9GB for the offset to the symbol. */
</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;'>++ if (TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Constant pool addresses are always TU-local and PC-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ relative. We indirect common, external and weak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ symbols (but weak only if not hidden). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!CONSTANT_POOL_ADDRESS_P (x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && (MACHO_SYMBOL_MUST_INDIRECT_P (x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || !aarch64_symbol_binds_local_p (x)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return SYMBOL_MO_SMALL_GOT;
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (SYMBOL_REF_WEAK (x) && !aarch64_symbol_binds_local_p (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return SYMBOL_FORCE_TO_MEM;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!(IN_RANGE (offset, -0x100000, 0x100000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || offset_within_block_p (x, offset)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return SYMBOL_FORCE_TO_MEM;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return SYMBOL_SMALL_ABSOLUTE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return TARGET_MACHO ? SYMBOL_MO_SMALL_PCR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : SYMBOL_SMALL_ABSOLUTE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_TINY_PIC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!aarch64_symbol_binds_local_p (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16277,10 +16810,25 @@ aarch64_classify_symbol (rtx x, HOST_WIDE_INT offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_SMALL_SPIC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_SMALL_PIC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if TARGET_MACHO
</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;'>++ /* Constant pool addresses are always TU-local and PC-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ relative. We indirect common, external and weak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ symbols (but weak only if not hidden). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!CONSTANT_POOL_ADDRESS_P (x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && (MACHO_SYMBOL_MUST_INDIRECT_P (x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || !aarch64_symbol_binds_local_p (x)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return SYMBOL_MO_SMALL_GOT;
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!aarch64_symbol_binds_local_p (x))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return (aarch64_cmodel == AARCH64_CMODEL_SMALL_SPIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ? SYMBOL_SMALL_GOT_28K : SYMBOL_SMALL_GOT_4G);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return SYMBOL_SMALL_ABSOLUTE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ? SYMBOL_SMALL_GOT_28K : SYMBOL_SMALL_GOT_4G);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return TARGET_MACHO ? SYMBOL_MO_SMALL_PCR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : SYMBOL_SMALL_ABSOLUTE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case AARCH64_CMODEL_LARGE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* This is alright even in PIC code as the constant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16410,7 +16958,10 @@ static GTY(()) tree va_list_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *__vr_top;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int __gr_offs;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int __vr_offs;
</span><span style='display:block; white-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;'>++ darwinpcs uses 'char *' for the va_list (in common with other platform
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ports). */
</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;'>+ aarch64_build_builtin_va_list (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16418,6 +16969,13 @@ aarch64_build_builtin_va_list (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree va_list_name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree f_stack, f_grtop, f_vrtop, f_groff, f_vroff;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* darwinpcs uses a simple char * for this. */
</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;'>++ va_list_type = build_pointer_type (char_type_node);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return va_list_type;
</span><span style='display:block; white-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 the type. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ va_list_type = lang_hooks.types.make_type (RECORD_TYPE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Give it the required name. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16489,6 +17047,13 @@ aarch64_expand_builtin_va_start (tree valist, rtx nextarg ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int vr_save_area_size = cfun->va_list_fpr_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int vr_offset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* darwinpcs uses the default, char * va_list impl. */
</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;'>++ std_expand_builtin_va_start (valist, nextarg);
</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;'>+ cum = &crtl->args.info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (cfun->va_list_gpr_size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gr_save_area_size = MIN ((NUM_ARG_REGS - cum->aapcs_ncrn) * UNITS_PER_WORD,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16579,6 +17144,9 @@ aarch64_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HOST_WIDE_INT size, rsize, adjust, align;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree t, u, cond1, cond2;
</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 std_gimplify_va_arg_expr (valist, type, pre_p, post_p);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ indirect_p = pass_va_arg_by_reference (type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (indirect_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ type = build_pointer_type (type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16763,8 +17331,18 @@ aarch64_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ field_ptr_t = double_ptr_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case E_TFmode:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- field_t = long_double_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- field_ptr_t = long_double_ptr_type_node;
</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;'>++ /* Darwin has __float128, and long double is the same as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ double. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ field_t = float128_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ field_ptr_t = aarch64_float128_ptr_type_node;
</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;'>++ field_t = long_double_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ field_ptr_t = long_double_ptr_type_node;
</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 E_HFmode:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ field_t = aarch64_fp16_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16834,6 +17412,9 @@ aarch64_setup_incoming_varargs (cumulative_args_t cum_v,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int gr_saved = cfun->va_list_gpr_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int vr_saved = cfun->va_list_fpr_size;
</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 default_setup_incoming_varargs (cum_v, arg, pretend_size, no_rtl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The caller has advanced CUM up to, but not beyond, the last named
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ argument. Advance a local copy of CUM past the last "real" named
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ argument, to find out how many registers are left over. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17620,6 +18201,12 @@ aarch64_autovectorize_vector_modes (vector_modes *modes, bool)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_mangle_type (const_tree type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* The darwinpcs ABI documents say that "__va_list" has to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mangled as char *. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && lang_hooks.types_compatible_p (CONST_CAST_TREE (type), va_list_type))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return "Pc";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The AArch64 ABI documents say that "__va_list" has to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mangled as if it is in the "std" namespace. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (lang_hooks.types_compatible_p (CONST_CAST_TREE (type), va_list_type))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17634,6 +18221,10 @@ aarch64_mangle_type (const_tree type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return "Dh";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* TFmode is __float128 for Darwin. */
</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;'>++ return "g";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Mangle AArch64-specific internal types. TYPE_NAME is non-NULL_TREE for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ builtin types. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (TYPE_NAME (type) != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19492,7 +20083,9 @@ aarch64_declare_function_name (FILE *stream, const char* name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_asm_output_variant_pcs (stream, fndecl, name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Don't forget the type directive for ELF. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef ASM_OUTPUT_TYPE_DIRECTIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASM_OUTPUT_TYPE_DIRECTIVE (stream, name, "function");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASM_OUTPUT_LABEL (stream, name);
</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;'>+@@ -19527,12 +20120,17 @@ aarch64_print_patchable_function_entry (FILE *file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Implement ASM_OUTPUT_DEF_FROM_DECLS. Output .variant_pcs for aliases. */
</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_asm_output_alias (FILE *stream, const tree decl, const tree target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64_asm_output_alias (FILE *stream, const tree decl,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const tree target ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *name = XSTR (XEXP (DECL_RTL (decl), 0), 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef ASM_OUTPUT_DEF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *value = IDENTIFIER_POINTER (target);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_asm_output_variant_pcs (stream, decl, name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef ASM_OUTPUT_DEF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASM_OUTPUT_DEF (stream, name, value);
</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_EXTERNAL. Output .variant_pcs for undefined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20156,6 +20754,16 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span><span style='display:block; white-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_assert (CONST_INT_P (info.u.mov.value));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned HOST_WIDE_INT value = UINTVAL (info.u.mov.value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We have signed chars which can result in a sign-extended 8bit value
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ which is then emitted as an unsigned hex value, and the LLVM back end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ assembler rejects that as being too big. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (TARGET_MACHO && (known_eq (GET_MODE_BITSIZE (info.elt_mode), 8)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned HOST_WIDE_INT mask = (1U << GET_MODE_BITSIZE (info.elt_mode))-1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ value &= 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;'>+ if (which == AARCH64_CHECK_MOV)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20164,16 +20772,16 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ? "msl" : "lsl");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (lane_count == 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ snprintf (templ, sizeof (templ), "%s\t%%d0, " HOST_WIDE_INT_PRINT_HEX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- mnemonic, UINTVAL (info.u.mov.value));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mnemonic, value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (info.u.mov.shift)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ snprintf (templ, sizeof (templ), "%s\t%%0.%d%c, "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HOST_WIDE_INT_PRINT_HEX ", %s %d", mnemonic, lane_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- element_char, UINTVAL (info.u.mov.value), shift_op,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ element_char, value, shift_op,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ info.u.mov.shift);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ snprintf (templ, sizeof (templ), "%s\t%%0.%d%c, "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HOST_WIDE_INT_PRINT_HEX, mnemonic, lane_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- element_char, UINTVAL (info.u.mov.value));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ element_char, value);
</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;'>+@@ -20182,12 +20790,12 @@ aarch64_output_simd_mov_immediate (rtx const_vector, unsigned width,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (info.u.mov.shift)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ snprintf (templ, sizeof (templ), "%s\t%%0.%d%c, #"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HOST_WIDE_INT_PRINT_DEC ", %s #%d", mnemonic, lane_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- element_char, UINTVAL (info.u.mov.value), "lsl",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ element_char, value, "lsl",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ info.u.mov.shift);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ snprintf (templ, sizeof (templ), "%s\t%%0.%d%c, #"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HOST_WIDE_INT_PRINT_DEC, mnemonic, lane_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- element_char, UINTVAL (info.u.mov.value));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ element_char, value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return templ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22820,12 +23428,12 @@ aarch64_libgcc_floating_mode_supported_p (scalar_float_mode 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;'>+ /* Implement TARGET_SCALAR_MODE_SUPPORTED_P - return TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if MODE is HFmode, and punt to the generic implementation otherwise. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_scalar_mode_supported_p (scalar_mode mode)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return (mode == HFmode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return (mode == HFmode || (mode == TFmode && TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ? true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ : default_scalar_mode_supported_p (mode));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23516,19 +24124,37 @@ aarch64_sls_emit_shared_blr_thunks (FILE *out_file)
</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 char *name = indirect_symbol_names[regnum];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- switch_to_section (get_named_section (decl, NULL, 0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* If the target uses a unique section for this switch to it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (DECL_SECTION_NAME (decl))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ switch_to_section (get_named_section (decl, NULL, 0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ switch_to_section (text_section);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASM_OUTPUT_ALIGN (out_file, 2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- targetm.asm_out.globalize_label (out_file, name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!TARGET_MACHO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ targetm.asm_out.globalize_label (out_file, name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef ASM_OUTPUT_TYPE_DIRECTIVE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ASM_OUTPUT_TYPE_DIRECTIVE (out_file, name, "function");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</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;'>++#ifdef ASM_WEAKEN_DECL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (DECL_WEAK (decl))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ASM_WEAKEN_DECL (out_file, decl, name, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ targetm.asm_out.globalize_decl_name (out_file, decl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Only emits if the compiler is configured for an assembler that can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ handle visibility directives. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ targetm.asm_out.assemble_visibility (decl, VISIBILITY_HIDDEN);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ASM_OUTPUT_TYPE_DIRECTIVE (out_file, name, "function");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASM_OUTPUT_LABEL (out_file, name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aarch64_sls_emit_function_stub (out_file, regnum);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Use the most conservative target to ensure it can always be used by any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function in the translation unit. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ asm_fprintf (out_file, "\tdsb\tsy\n\tisb\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef ASM_DECLARE_FUNCTION_SIZE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ASM_DECLARE_FUNCTION_SIZE (out_file, name, decl);
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23627,6 +24253,15 @@ aarch64_run_selftests (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef TARGET_ASM_ALIGNED_SI_OP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_ASM_ALIGNED_SI_OP "\t.word\t"
</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_ASM_UNALIGNED_HI_OP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_ASM_UNALIGNED_HI_OP "\t.short\t"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_ASM_UNALIGNED_SI_OP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_ASM_UNALIGNED_SI_OP "\t.long\t"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_ASM_UNALIGNED_DI_OP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_ASM_UNALIGNED_DI_OP "\t.quad\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;'>+ #undef TARGET_ASM_CAN_OUTPUT_MI_THUNK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_ASM_CAN_OUTPUT_MI_THUNK \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hook_bool_const_tree_hwi_hwi_const_tree_true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23713,6 +24348,12 @@ aarch64_run_selftests (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef TARGET_FUNCTION_ARG_BOUNDARY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_FUNCTION_ARG_BOUNDARY aarch64_function_arg_boundary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_FUNCTION_ARG_BOUNDARY_CA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_FUNCTION_ARG_BOUNDARY_CA aarch64_function_arg_boundary_ca
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_FUNCTION_ARG_ROUND_BOUNDARY_CA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_FUNCTION_ARG_ROUND_BOUNDARY_CA aarch64_function_arg_round_boundary_ca
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef TARGET_FUNCTION_ARG_PADDING
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_FUNCTION_ARG_PADDING aarch64_function_arg_padding
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24037,7 +24678,7 @@ aarch64_libgcc_floating_mode_supported_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The architecture reserves bits 0 and 1 so use bit 2 for descriptors. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS AARCH64_CUSTOM_FUNCTION_TEST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef TARGET_HARD_REGNO_NREGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_HARD_REGNO_NREGS aarch64_hard_regno_nregs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/aarch64.h gcc/config/aarch64/aarch64.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5114884..86068d4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,6 +57,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_SIMD (!TARGET_GENERAL_REGS_ONLY && AARCH64_ISA_SIMD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_FLOAT (!TARGET_GENERAL_REGS_ONLY && AARCH64_ISA_FP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* If this is non-zero then generated code of the object format, ABI and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ assembler syntax used by Darwin (Mach-O) platforms. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_MACHO 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define UNITS_PER_WORD 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define UNITS_PER_VREG 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -134,6 +138,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Heap alignment (same as BIGGEST_ALIGNMENT and STACK_BOUNDARY). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define MALLOC_ABI_ALIGNMENT 128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We will and with this value to test if a custom function descriptor needs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a static chain. The function boundary must the adjusted so that the bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ this represents is no longer part of the address. 0 Disables the custom
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ function descriptors. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define AARCH64_CUSTOM_FUNCTION_TEST 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Defined by the ABI */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WCHAR_TYPE "unsigned int"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define WCHAR_TYPE_SIZE 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -939,6 +949,24 @@ typedef struct
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aapcs_reg == NULL_RTX. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int aapcs_stack_size; /* The total size (in words, per 8 byte) of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ stack arg area so far. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* In the darwinpcs, items smaller than one word are packed onto the stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ naturally aligned. Unnamed parameters passed in a variadic call are,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ however, aligned the same way as the AAPCS64. This means that we need to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pad the last named arg to the next parm boundary (and hence notice when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ we are processing that arg). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int darwinpcs_stack_bytes; /* If the argument is passed on the stack, this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the byte-size. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int darwinpcs_sub_word_offset;/* This is the offset of this arg within a word
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ when placing smaller items for darwinpcs. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int darwinpcs_sub_word_pos; /* The next byte available within the word for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ darwinpcs. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned darwinpcs_arg_boundary; /* The computed argument boundary. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned darwinpcs_arg_padding; /* The computed argument padding. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned darwinpcs_n_named; /* Number of named arguments. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned darwinpcs_n_args_processed; /* Processed so far. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool named_p; /* Is this arg named? */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool last_named_p; /* Is this the last named arg? */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool silent_p; /* True if we should act silently, rather than
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ raise an error for invalid calls. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } CUMULATIVE_ARGS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1219,8 +1247,13 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ASM_CPU_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MCPU_TO_MARCH_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef 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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define EXTRA_SPECS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- { "asm_cpu_spec", ASM_CPU_SPEC }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { "asm_cpu_spec", ASM_CPU_SPEC }, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SUBTARGET_EXTRA_SPECS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ASM_OUTPUT_POOL_EPILOGUE aarch64_asm_output_pool_epilogue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1234,6 +1267,10 @@ extern tree aarch64_fp16_ptr_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree aarch64_bf16_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern tree aarch64_bf16_ptr_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* A pointer to the user-visible __float128 (on Mach-O). Defined in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64-builtins.c. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern GTY(()) tree aarch64_float128_ptr_type_node;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The generic unwind code in libgcc does not initialize the frame pointer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ So in order to unwind a function using a frame pointer, the very first
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function that is unwound must save the frame pointer. That way the frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/aarch64.md gcc/config/aarch64/aarch64.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 552aed3..2b02f04 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -282,6 +282,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNSPEC_TAG_SPACE ; Translate address to MTE tag address space.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNSPEC_LD1RO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNSPEC_SALT_ADDR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNSPEC_MACHOPIC_OFFSET
</span><span style='display:block; white-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_c_enum "unspecv" [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -827,6 +828,37 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "load_4")]
</span><span style='display:block; white-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 "prefetch_unscaled"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [(prefetch (match_operand:DI 0 "aarch64_unscaled_prefetch_operand" "Du")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (match_operand:QI 1 "const_int_operand" "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (match_operand:QI 2 "const_int_operand" ""))]
</span><span style='display:block; white-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 * pftype[2][4] =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {"prfum\\tPLDL1STRM, %0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "prfum\\tPLDL3KEEP, %0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "prfum\\tPLDL2KEEP, %0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "prfum\\tPLDL1KEEP, %0"},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {"prfum\\tPSTL1STRM, %0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "prfum\\tPSTL3KEEP, %0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "prfum\\tPSTL2KEEP, %0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "prfum\\tPSTL1KEEP, %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;'>++ int locality = INTVAL (operands[2]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_assert (IN_RANGE (locality, 0, 3));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* PRFUM accepts the same addresses as a 64-bit LDR so wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the address into a DImode MEM so that aarch64_print_operand knows
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ how to print it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ operands[0] = gen_rtx_MEM (DImode, operands[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return pftype[INTVAL(operands[1])][locality];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [(set_attr "type" "load_4")]
</span><span style='display:block; white-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 "trap"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(trap_if (const_int 1) (const_int 8))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2355,38 +2387,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alus_shift_imm")]
</span><span style='display:block; white-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 "*adds_mul_imm_<mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (reg:CC_NZ CC_REGNUM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (compare:CC_NZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:GPI (mult:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:QI 2 "aarch64_pwr_2_<mode>" "n"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 3 "register_operand" "r"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:GPI (mult:GPI (match_dup 1) (match_dup 2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_dup 3)))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "adds\\t%<w>0, %<w>3, %<w>1, lsl %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alus_shift_imm")]
</span><span style='display:block; white-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 "*subs_mul_imm_<mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (reg:CC_NZ CC_REGNUM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (compare:CC_NZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 2 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:QI 3 "aarch64_pwr_2_<mode>" "n")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:GPI (match_dup 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI (match_dup 2) (match_dup 3))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "subs\\t%<w>0, %<w>1, %<w>2, lsl %p3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alus_shift_imm")]
</span><span style='display:block; white-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 "*adds_<optab><ALLX:mode>_<GPI:mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set (reg:CC_NZ CC_REGNUM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (compare:CC_NZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2397,7 +2397,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (plus:GPI (ANY_EXTEND:GPI (match_dup 1)) (match_dup 2)))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "adds\\t%<GPI:w>0, %<GPI:w>2, %<GPI:w>1, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "adds\\t%<GPI:w>0, %<GPI:w>2, %w1, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alus_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2411,7 +2411,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (minus:GPI (match_dup 1) (ANY_EXTEND:GPI (match_dup 2))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "subs\\t%<GPI:w>0, %<GPI:w>1, %<GPI:w>2, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "subs\\t%<GPI:w>0, %<GPI:w>1, %w2, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alus_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2429,7 +2429,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_dup 2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_dup 3)))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "adds\\t%<GPI:w>0, %<GPI:w>3, %<GPI:w>1, <su>xt<ALLX:size> %2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "adds\\t%<GPI:w>0, %<GPI:w>3, %w1, <su>xt<ALLX:size> %2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alus_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2447,47 +2447,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (ashift:GPI (ANY_EXTEND:GPI (match_dup 2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_dup 3))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "subs\\t%<GPI:w>0, %<GPI:w>1, %<GPI:w>2, <su>xt<ALLX:size> %3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alus_ext")]
</span><span style='display:block; white-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 "*adds_<optab><mode>_multp2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (reg:CC_NZ CC_REGNUM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (compare:CC_NZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:GPI (ANY_EXTRACT:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 4 "register_operand" "rk"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:GPI (ANY_EXTRACT:GPI (mult:GPI (match_dup 1) (match_dup 2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_dup 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_dup 4)))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_is_extend_from_extract (<MODE>mode, operands[2], operands[3])"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "adds\\t%<w>0, %<w>4, %<w>1, <su>xt%e3 %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alus_ext")]
</span><span style='display:block; white-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 "*subs_<optab><mode>_multp2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (reg:CC_NZ CC_REGNUM)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (compare:CC_NZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:GPI (match_operand:GPI 4 "register_operand" "rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (ANY_EXTRACT:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:GPI (match_dup 4) (ANY_EXTRACT:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI (match_dup 1) (match_dup 2))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_dup 3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_is_extend_from_extract (<MODE>mode, operands[2], operands[3])"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "subs\\t%<w>0, %<w>4, %<w>1, <su>xt%e3 %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "subs\\t%<GPI:w>0, %<GPI:w>1, %w2, <su>xt<ALLX:size> %3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alus_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2548,22 +2508,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_shift_imm")]
</span><span style='display:block; white-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 "*add_mul_imm_<mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:GPI (mult:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:QI 2 "aarch64_pwr_2_<mode>" "n"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 3 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "add\\t%<w>0, %<w>3, %<w>1, lsl %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_shift_imm")]
</span><span style='display:block; white-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 "*add_<optab><ALLX:mode>_<GPI:mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set (match_operand:GPI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (plus:GPI (ANY_EXTEND:GPI (match_operand:ALLX 1 "register_operand" "r"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:GPI 2 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "add\\t%<GPI:w>0, %<GPI:w>2, %<GPI:w>1, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "add\\t%<GPI:w>0, %<GPI:w>2, %w1, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2585,7 +2535,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand 2 "aarch64_imm3" "Ui3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:GPI 3 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "add\\t%<GPI:w>0, %<GPI:w>3, %<GPI:w>1, <su>xt<ALLX:size> %2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "add\\t%<GPI:w>0, %<GPI:w>3, %w1, <su>xt<ALLX:size> %2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2602,57 +2552,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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 "*add_<optab><ALLX:mode>_mult_<GPI:mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:GPI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:GPI (mult:GPI (ANY_EXTEND:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:ALLX 1 "register_operand" "r"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 3 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "add\\t%<GPI:w>0, %<GPI:w>3, %<GPI:w>1, <su>xt<ALLX:size> %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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_extend version of above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "*add_<optab><SHORT:mode>_mult_si_uxtw"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:DI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (zero_extend:DI (plus:SI (mult:SI (ANY_EXTEND:SI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:SHORT 1 "register_operand" "r"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:SI 3 "register_operand" "r"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "add\\t%w0, %w3, %w1, <su>xt<SHORT:size> %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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 "*add_<optab><mode>_multp2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:GPI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:GPI (ANY_EXTRACT:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 4 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_is_extend_from_extract (<MODE>mode, operands[2], operands[3])"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "add\\t%<w>0, %<w>4, %<w>1, <su>xt%e3 %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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_extend version of above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "*add_<optab>si_multp2_uxtw"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:DI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (zero_extend:DI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:SI (ANY_EXTRACT:SI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:SI (match_operand:SI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:SI 4 "register_operand" "r"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_is_extend_from_extract (SImode, operands[2], operands[3])"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "add\\t%w0, %w4, %w1, <su>xt%e3 %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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_expand "add<mode>3_carryin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set (match_operand:GPI 0 "register_operand")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (plus:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2833,7 +2732,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ operands[3] = GEN_INT (aarch64_uxt_size (INTVAL(operands[2]),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ INTVAL (operands[3])));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return \"add\t%<w>0, %<w>4, %<w>1, uxt%e3 %2\";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return \"add\t%<w>0, %<w>4, %w1, uxt%e3 %2\";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2854,38 +2753,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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 "*add_uxt<mode>_multp2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:GPI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:GPI (and:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 4 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_uxt_size (exact_log2 (INTVAL (operands[2])), INTVAL (operands[3])) != 0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- operands[3] = GEN_INT (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- INTVAL (operands[3])));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return \"add\t%<w>0, %<w>4, %<w>1, uxt%e3 %p2\";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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_extend version of above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "*add_uxtsi_multp2_uxtw"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:DI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (zero_extend:DI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (plus:SI (and:SI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:SI (match_operand:SI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:SI 4 "register_operand" "r"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_uxt_size (exact_log2 (INTVAL (operands[2])), INTVAL (operands[3])) != 0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- operands[3] = GEN_INT (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- INTVAL (operands[3])));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return \"add\t%w0, %w4, %w1, uxt%e3 %p2\";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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 "subsi3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set (match_operand:SI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (minus:SI (match_operand:SI 1 "register_operand" "rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3289,37 +3156,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_shift_imm")]
</span><span style='display:block; white-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 "*sub_mul_imm_<mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:GPI (match_operand:GPI 3 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:QI 2 "aarch64_pwr_2_<mode>" "n"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "sub\\t%<w>0, %<w>3, %<w>1, lsl %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_shift_imm")]
</span><span style='display:block; white-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_extend version of above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "*sub_mul_imm_si_uxtw"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:DI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (zero_extend:DI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:SI (match_operand:SI 3 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:SI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:SI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:QI 2 "aarch64_pwr_2_si" "n")))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "sub\\t%w0, %w3, %w1, lsl %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_shift_imm")]
</span><span style='display:block; white-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 "*sub_<optab><ALLX:mode>_<GPI:mode>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set (match_operand:GPI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (minus:GPI (match_operand:GPI 1 "register_operand" "rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (ANY_EXTEND:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:ALLX 2 "register_operand" "r"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "sub\\t%<GPI:w>0, %<GPI:w>1, %<GPI:w>2, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "sub\\t%<GPI:w>0, %<GPI:w>1, %w2, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3342,7 +3185,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:ALLX 2 "register_operand" "r"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand 3 "aarch64_imm3" "Ui3"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "sub\\t%<GPI:w>0, %<GPI:w>1, %<GPI:w>2, <su>xt<ALLX:size> %3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "sub\\t%<GPI:w>0, %<GPI:w>1, %w2, <su>xt<ALLX:size> %3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3359,34 +3202,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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 "*sub_<optab><mode>_multp2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:GPI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:GPI (match_operand:GPI 4 "register_operand" "rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (ANY_EXTRACT:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_is_extend_from_extract (<MODE>mode, operands[2], operands[3])"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "sub\\t%<w>0, %<w>4, %<w>1, <su>xt%e3 %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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_extend version of above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "*sub_<optab>si_multp2_uxtw"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:DI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (zero_extend:DI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:SI (match_operand:SI 4 "register_operand" "rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (ANY_EXTRACT:SI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:SI (match_operand:SI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const_int 0)))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_is_extend_from_extract (SImode, operands[2], operands[3])"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "sub\\t%w0, %w4, %w1, <su>xt%e3 %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; The hardware description is op1 + ~op2 + C.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; = op1 + (-op2 + 1) + (1 - !C)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; = op1 - op2 - 1 + 1 - !C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3621,7 +3436,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ operands[3] = GEN_INT (aarch64_uxt_size (INTVAL (operands[2]),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ INTVAL (operands[3])));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return \"sub\t%<w>0, %<w>4, %<w>1, uxt%e3 %2\";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return \"sub\t%<w>0, %<w>4, %w1, uxt%e3 %2\";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3642,38 +3457,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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 "*sub_uxt<mode>_multp2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:GPI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:GPI (match_operand:GPI 4 "register_operand" "rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (and:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),INTVAL (operands[3])) != 0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- operands[3] = GEN_INT (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- INTVAL (operands[3])));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return \"sub\t%<w>0, %<w>4, %<w>1, uxt%e3 %p2\";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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_extend version of above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "*sub_uxtsi_multp2_uxtw"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:DI 0 "register_operand" "=rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (zero_extend:DI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (minus:SI (match_operand:SI 4 "register_operand" "rk")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (and:SI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (mult:SI (match_operand:SI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 2 "aarch64_pwr_imm3" "Up3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand 3 "const_int_operand" "n")))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),INTVAL (operands[3])) != 0"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- operands[3] = GEN_INT (aarch64_uxt_size (exact_log2 (INTVAL (operands[2])),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- INTVAL (operands[3])));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return \"sub\t%w0, %w4, %w1, uxt%e3 %p2\";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_ext")]
</span><span style='display:block; white-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_expand "abs<mode>2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(match_operand:GPI 0 "register_operand")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:GPI 1 "register_operand")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3786,28 +3569,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_shift_imm")]
</span><span style='display:block; white-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 "*neg_mul_imm_<mode>2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (neg:GPI (mult:GPI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:QI 2 "aarch64_pwr_2_<mode>" "n"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "neg\\t%<w>0, %<w>1, lsl %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_shift_imm")]
</span><span style='display:block; white-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_extend version of above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_insn "*neg_mul_imm_si2_uxtw"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set (match_operand:DI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (zero_extend:DI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (neg:SI (mult:SI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:SI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_operand:QI 2 "aarch64_pwr_2_si" "n")))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "neg\\t%w0, %w1, lsl %p2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [(set_attr "type" "alu_shift_imm")]
</span><span style='display:block; white-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 "mul<mode>3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set (match_operand:GPI 0 "register_operand" "=r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (mult:GPI (match_operand:GPI 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4068,7 +3829,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:ALLX 0 "register_operand" "r"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:GPI 1 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "cmp\\t%<GPI:w>1, %<GPI:w>0, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "cmp\\t%<GPI:w>1, %w0, <su>xt<ALLX:size>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alus_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4080,7 +3841,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand 1 "aarch64_imm3" "Ui3"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:GPI 2 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "cmp\\t%<GPI:w>2, %<GPI:w>0, <su>xt<ALLX:size> %1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "cmp\\t%<GPI:w>2, %w0, <su>xt<ALLX:size> %1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alus_ext")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4636,7 +4397,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:QI 2 "aarch64_shift_imm_<mode>" "n"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:GPI 3 "register_operand" "r")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "<logical>\\t%<w>0, %<w>3, %<w>1, ror (<sizen> - %2)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "<logical>\\t%<w>0, %<w>3, %<w>1, ror #(<sizen> - %2)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "logic_shift_imm")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4661,7 +4422,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:QI 2 "aarch64_shift_imm_si" "n"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:SI 3 "register_operand" "r"))))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "<logical>\\t%w0, %w3, %w1, ror (32 - %2)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "<logical>\\t%w0, %w3, %w1, ror #(32 - %2)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "logic_shift_imm")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6774,7 +6535,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (lo_sum:P (match_operand:P 1 "register_operand" "r")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand 2 "aarch64_valid_symref" "S")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "add\\t%<w>0, %<w>1, :lo12:%c2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { return TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ? "add\\t%<w>0, %<w>1, %K2;momd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : "add\\t%<w>0, %<w>1, :lo12:%c2";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "alu_imm")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6785,7 +6549,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_operand:PTR 2 "aarch64_valid_symref" "S")))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNSPEC_GOTSMALLPIC))]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "ldr\\t%<w>0, [%1, #:got_lo12:%c2]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { return TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ? "ldr\\t%<w>0, [%1, %O2];momd"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : "ldr\\t%<w>0, [%1, #:got_lo12:%c2]";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [(set_attr "type" "load_<ldst_sz>")]
</span><span style='display:block; white-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/config/aarch64/aarch64.opt gcc/config/aarch64/aarch64.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1b3d942..feec59a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/aarch64.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/aarch64.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -152,6 +152,13 @@ Enum(aarch64_abi) String(ilp32) Value(AARCH64_ABI_ILP32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EnumValue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Enum(aarch64_abi) String(lp64) Value(AARCH64_ABI_LP64)
</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(aarch64_abi) String(darwinpcs) Value(AARCH64_ABI_LP64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++m64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Target RejectNegative Alias(mabi=, darwinpcs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++On Darwin for compatibility with other platform variants.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mpc-relative-literal-loads
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Target Report Save Var(pcrelative_literal_loads) Init(2) Save
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PC relative literal loads.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/constraints.md gcc/config/aarch64/constraints.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 98c1f41..ef57d19 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/constraints.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/constraints.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -474,6 +474,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ An address valid for a prefetch instruction."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_test "aarch64_address_valid_for_prefetch_p (op, true)"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(define_address_constraint "Du"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "@internal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ An address valid for a prefetch instruction with an unscaled offset."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (match_test "aarch64_address_valid_for_unscaled_prefetch_p (op, true)"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define_constraint "vgb"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "@internal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A constraint that matches an immediate offset valid for SVE LD1B
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/darwin.h gcc/config/aarch64/darwin.h
</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 0000000..2a855c1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,280 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Target definitions for Arm64/Aarch64 running on macOS/iOS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Copyright The GNU Toolchain Authors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Contributed by Iain Sandoe.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This file is part of GCC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++it under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC is distributed in the hope that it will be useful,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GNU General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++<http://www.gnu.org/licenses/>. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Enable Mach-O bits in generic Aarch64 code. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_MACHO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_MACHO 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_ARM64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* FIXME FIXME FIXME - these are mostly guesses right now. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* FIXME: this is only used in generic code in darwin.c. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_64BIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_64BIT 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef PTRDIFF_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define PTRDIFF_TYPE "long int"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* NOTE that arm64_32 is a valid thing and corresponds to darwinpcs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ and TARGET_ILP32, but we are not implementing that for now. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_OS_CPP_BUILTINS() \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ do { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin_define ("__LITTLE_ENDIAN__"); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin_define ("__arm64"); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin_define ("__arm64__"); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ darwin_cpp_builtins (pfile); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } while (0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* In Darwin's arm64 ABI, chars are signed, for consistency with other Darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ architectures. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DEFAULT_SIGNED_CHAR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DEFAULT_SIGNED_CHAR 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef LONG_DOUBLE_TYPE_SIZE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LONG_DOUBLE_TYPE_SIZE 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Disable custom function descriptors on Darwin, it breaks ABI. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef AARCH64_CUSTOM_FUNCTION_TEST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define AARCH64_CUSTOM_FUNCTION_TEST 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Non-PIE executables are forbidden by the aarch64-darwin security model;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ remove the option from link-lines since they just produce a warning from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ld64 and are then ignored anyway. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DARWIN_NOPIE_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_NOPIE_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++" %<no-pie %<fno-pie %<fno-PIE "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Hack alert - we want the exported cas etc. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef LIB_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LIB_SPEC "%{!static:-lSystem} -lgcc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Force the default endianness and ABI flags onto the command line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ in order to make the other specs easier to write. Match clang in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ silently ignoring mdynamic-no-pic */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DRIVER_SELF_SPECS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DRIVER_SELF_SPECS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{mbig-endian:%eDarwin platforms do not support big-endian arm64}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{!mlittle-endian:-mlittle-endian} " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{mabi=ilp32:%eSorry, support for Darwin ilp32 arm64 is not implemented} " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{!mabi=*:-mabi=lp64} " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++" %<mdynamic-no-pic* " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MCPU_MTUNE_NATIVE_SPECS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SUBTARGET_DRIVER_SELF_SPECS
</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. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef CC1_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CC1_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{!mkernel:%{!static:-fPIC}} " DARWIN_CC1_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef ASM_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_SPEC "-arch %(darwin_arch) "\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ASM_OPTIONS " %{static} " ASM_MMACOSX_VERSION_MIN_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef ENDFILE_SPEC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ENDFILE_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " " TM_DESTRUCTOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* The arch is known as 'arm64' by the system tools. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_ARCH_SPEC "arm64"
</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;'>++ { "darwin_arch", DARWIN_ARCH_SPEC }, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { "darwin_crt2", "" }, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { "darwin_subarch", DARWIN_ARCH_SPEC },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_ASM_FILE_END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_ASM_FILE_END darwin_file_end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* For now, we do not give global entities any extra alignment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ TODO: determine if we should for some optimisation level. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DATA_ALIGNMENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DATA_ALIGNMENT(EXP, ALIGN) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AARCH64_EXPAND_ALIGNMENT (false, EXP, ALIGN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Darwin binds locally for PIC code (the default) without which
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ we lose many in-lineing opportunities. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_BINDS_LOCAL_P
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_BINDS_LOCAL_P darwin_binds_local_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Define the syntax of pseudo-ops, labels and comments. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Support for -falign-* switches. Use .p2align to ensure that code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sections are padded with NOP instructions, rather than zeros. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE, LOG, MAX_SKIP) \
</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;'>++ if ((LOG) != 0) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((MAX_SKIP) == 0) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf ((FILE), "\t.p2align %d\n", (int) (LOG)); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf ((FILE), "\t.p2align %d,,%d\n", \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (int) (LOG), (int) (MAX_SKIP)); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } while (0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* HAVE_GAS_MAX_SKIP_P2ALIGN */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* String containing the assembler's comment-starter. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_COMMENT_START ";"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Define the syntax of pseudo-ops, labels and comments. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LPREFIX "L"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Assembler pseudos to introduce constants of various size. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_BYTE "\t.byte\t"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_SHORT "\t.word\t"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_LONG "\t.long\t"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_QUAD "\t.quad\t"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* darwinpcs reserves X18. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef FIXED_REGISTERS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FIXED_REGISTERS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 0, 0, 0, /* R0 - R7 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 0, 0, 0, /* R8 - R15 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 1, 0, 0, 0, 0, 0, /* R16 - R23 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 1, 0, 1, /* R24 - R30, SP */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 0, 0, 0, /* V0 - V7 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 0, 0, 0, /* V8 - V15 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 0, 0, 0, /* V16 - V23 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 0, 0, 0, /* V24 - V31 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 1, 1, 1, 1, /* SFP, AP, CC, VG */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 0, 0, 0, /* P0 - P7 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0, 0, 0, 0, 0, 0, 0, 0, /* P8 - P15 */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 1, 1 /* FFR and FFRT */ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Although we cannot use executable stack, we still need to assign
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a static chain regnum. At the moment using R16 (IP0) is available. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef STATIC_CHAIN_REGNUM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define STATIC_CHAIN_REGNUM R16_REGNUM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SUBTARGET_ENCODE_SECTION_INFO darwin_encode_section_info
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (TARGET_64BIT) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_pcrel) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fputs (ASM_LONG, FILE); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ assemble_name (FILE, XSTR (ADDR, 0)); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fputs ("@GOT-.", FILE); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ goto DONE; \
</span><span style='display:block; white-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;'>++ if (ENCODING == ASM_PREFERRED_EH_DATA_FORMAT (2, 1)) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_unreachable (); /* no 32b support yet.*/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /*darwin_non_lazy_pcrel (FILE, ADDR);*/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ goto DONE; \
</span><span style='display:block; white-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;'>++/* Darwin x86 assemblers support the .ident directive. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_ASM_OUTPUT_IDENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Darwin has experimental support for section anchors on aarch64*; it is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ not enabled by default (the -fsection-anchors is required). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_ASM_OUTPUT_ANCHOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_ASM_OUTPUT_ANCHOR darwin_asm_output_anchor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_USE_ANCHORS_FOR_SYMBOL_P
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_USE_ANCHORS_FOR_SYMBOL_P darwin_use_anchors_for_symbol_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef DARWIN_SECTION_ANCHORS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_SECTION_ANCHORS 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Pull in the stuff common to all Darwin-based platforms. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define C_COMMON_OVERRIDE_OPTIONS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ do { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SUBTARGET_C_COMMON_OVERRIDE_OPTIONS; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } while (0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We do not have a definition for a tiny (or large) code model so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ far.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Section anchors are (probably) not useful with ld64 atom model so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ default them off - this can be overridden by the user at present.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdynamic-no-pic is silently ignored by clang (and not applicable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ to this port). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef SUBTARGET_OVERRIDE_OPTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SUBTARGET_OVERRIDE_OPTIONS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ do { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (global_options.x_aarch64_cmodel_var == AARCH64_CMODEL_TINY) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sorry ("code model %qs is not supported on Darwin platforms", \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "tiny"); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!global_options_set.x_flag_section_anchors) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ flag_section_anchors = 0; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ target_flags &= ~MASK_MACHO_DYNAMIC_NO_PIC; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } while (0); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SUBSUBTARGET_OVERRIDE_OPTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef SUBTARGET_INIT_BUILTINS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SUBTARGET_INIT_BUILTINS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ do { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64_builtin_decls[AARCH64_BUILTIN_CFSTRING] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = darwin_init_cfstring_builtins ((AARCH64_BUILTIN_CFSTRING << AARCH64_BUILTIN_SHIFT) | AARCH64_BUILTIN_GENERAL); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } while(0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Darwin on Arm64 uses dwarf-2. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef DARWIN_PREFER_DWARF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# undef PREFERRED_DEBUGGING_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
</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 REGISTER_SUBTARGET_PRAGMAS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define REGISTER_SUBTARGET_PRAGMAS() DARWIN_REGISTER_TARGET_PRAGMAS()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES darwin_set_default_type_attributes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* FIXME: CHECK Define the shadow offset for asan. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef SUBTARGET_SHADOW_OFFSET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SUBTARGET_SHADOW_OFFSET (HOST_WIDE_INT_1 << 44)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* First available SYMBOL flag bit for use by subtargets. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SYMBOL_FLAG_SUBT_DEP (SYMBOL_FLAG_MACH_DEP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef ASM_OUTPUT_DEF_FROM_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef CLEAR_INSN_CACHE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CLEAR_INSN_CACHE(beg, end) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extern void sys_icache_invalidate(void *start, size_t len); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sys_icache_invalidate ((beg), (size_t)((end)-(beg)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/darwinpcs.md gcc/config/aarch64/darwinpcs.md
</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 0000000..1238c6b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/darwinpcs.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,456 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The Darwin ABI (darwinpcs) for AArch64 (Arm64) Mach-O
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## Introduction.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This describes the Darwin PCS (darwinpcs) as implemented in GCC-12.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Base information is taken from:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[1] [ARM IHI 0055B : AAPCS64 (current through AArch64 ABI release 1.0, dated 22nd May 2013)](http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055b/IHI0055B_aapcs64.pdf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[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><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## Terminology
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**Darwin** is the kernel used for macOS (10/OSX and 11) and iOS (all versions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++so far).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**Mach-O** is the file format used for object files and DSOs, including executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++on Darwin platforms (to some extent, the two names are interchangeable in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++describing rules applicable to a back end).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The `AArch64` port for Darwin is known as `arm64` (`arm64` is synonymous with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`aarch64` for Darwin in GCC). There is an ILP32 variant, `arm64_32` (not yet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++considered in detail or handled by these branches).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++There are two main technical sections
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* Part 1 which describes the darwinpcs deviations from AAPCS64.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ This is a primarily cross-reference between [2] and [1].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* Part 2 contains additional pertinent information.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Some is recorded in [2] but most is determined from generic Darwin/Mach-O
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rules and the implementation [3].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* Part 3 describes the deviations from darwinpcs present in GCC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GCC implements some features not available ib the host tools which are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ based on LLVM/clang.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GCC does not yet (as of GCC-12.1) support all parts of the darwinpcs as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ written here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**Note** Since a macOS or iOS system is built with a toolchain based on [3],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++that sets the de facto ABI. Therefore, the ABI as implemented by the XCode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++version appropriate to a given OS release shall take precedence over version(s)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++described in the referenced documents in the event of discrepancy.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## PART 1 - AAPCS64 and darwinpcs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Outline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Darwin PCS Differences from AAPCS64.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The intent of these notes are to match the differences described in [2] against
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the section numbers and rule designations of [1] since the AArch64 port code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++uses the rule designations in comments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The organisation of these notes is by section heading of [1].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[2] Refers to the darwinpcs as "iOS" which was the first Darwin OS variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++implementing it, however it is stated (albeit unofficially?) that Arm64 macOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++will adopt the same ABI and is expected to be able to execute iOS executables.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++So, for the present, 'iOS' is considered to be equivalent to 'macOS'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(generically 'Darwin').
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++In the text from [2] the expression "generic procedure call standard" refers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to the AAPCS64 [1].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Darwin PCS rules are designated `D.N` below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### AAPCS64 Section 1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++No amendments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### AAPCS64 Section 2.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++No amendments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### AAPCS64 Section 3.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++No amendments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The darwinpcs is non-conforming with the aapcs64 in the areas described below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### AAPCS64 Section 4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++No amendments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++but note:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* Darwin's `char` and `wchar_t` are both signed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* Where applicable, the `__fp16 type` is `IEEE754-2008` format.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### AAPCS64 Section 5.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++5.1 Machine Registers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++5.1.1 General-purpose Registers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Darwin reserves `x18` as the platform register (as permitted).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++5.2 Processes, Memory and the Stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++5.2.3 The Frame Pointer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++From [2] : The frame pointer register (x29) must always address a valid frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++record, although some functions—such as leaf functions or tail calls—may elect
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++not to create an entry in this list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This corresponds to the first bullet and is conforming. It implies that Darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++should warn if the user tries to use an option that omits the FP.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++5.4 Parameter Passing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++5.4.2 Parameter Passing Rules
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`D.1` From [2] : Empty struct types are ignored for parameter-passing purposes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This behavior applies to the GNU extension in C and, where permitted by the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++language, in C++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++It is noted that this might not correspond to any specific rule - but,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++presumably, needs to be applied in marshalling arguments.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`D.2` From [2] : In the generic procedure call standard, all function arguments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++passed on the stack consume slots in multiples of 8 bytes. In iOS, this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++requirement is dropped, and values consume only the space required. Padding
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++is still inserted on the stack to satisfy arguments’ alignment requirements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`D.3` From [2] : The general ABI specifies that it is the callee’s responsibility
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to sign or zero-extend arguments having fewer than 32 bits, and that unused bits
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++in a register are unspecified. In iOS, however, the caller must perform such
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extensions, up to 32 bits. This apparently conflicts with the `D.2` above and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++thus can only be applied to values passed in registers?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(notwithstanding C rules for widening).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`D.4` From [2] : The generic procedure call standard requires that arguments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++with 16-byte alignment passed in integer registers begin at an even-numbered
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++xN, skipping a previous odd-numbered xN if necessary. The iOS ABI drops this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++requirement.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#### Variadic Functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++From [2]:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The iOS ABI for functions that take a variable number of arguments is entirely
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++different from the generic version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Stages A and B of the generic procedure call standard are performed as usual.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++in particular, even variadic aggregates larger than 16 bytes are passed via a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++reference to temporary memory allocated by the caller. After that, the fixed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++arguments are allocated to registers and stack slots as usual in iOS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The NSRN(*sic*) (?NSAA was intended?) is then rounded up to the next multiple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++of 8 bytes, and each variadic argument is assigned to the appropriate number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++of 8-byte stack slots.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The C language requires arguments smaller than int to be promoted before a call,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++but beyond that, unused bytes on the stack are not specified by the darwinpcs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(see section 7) As a result of this change, the type va_list is an alias for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char * rather than for the struct type specified in the generic PCS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++It is also not in the std namespace when compiling C++ code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#### Stage A
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++No Changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#### Stage B
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++No changes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#### Stage C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Insert C.6.5 `D.3`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++If the argument is an Integral or Pointer Type, the size of the argument is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++less than 4 bytes and the NGRN is less than 8, the argument is sign or zero-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extended as appropriate to 4 bytes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++C.8 Delete rule per `D.4`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++C.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`D.2` Amend to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The NSAA is rounded up to Natural Alignment of the argument’s type.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++C.14 Delete rule per `D.2`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++From the observations section:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"Both before and after the layout of each argument, then NSAA will have a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ minimum alignment of 8." This no longer applies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### AAPCS64 Section 6.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++No changes (noting that the `__fp16` type is `IEEE754-2008` format.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### AAPCS64 Section 7.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++7.1 Data Types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++7.1.1 Arithmetic Types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Table 3 is amended thus.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++| C/C++ Type | Machine Type | Notes |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++| --- | --- | --- |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++| char | signed byte | compatible with other Darwin variants |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++| wchar_t | int | ditto |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**The size of long double (and by implication the _Imaginary and _Complex C99
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++variants) is set to be the same as double.**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++We need to consider **_very_** carefully how to handle this. The current
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(64bit) long double is mangled as 'e' by the clang toolchain.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++7.1.4 Additional Types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Table 5 is amended to reflect the different variadic function rules.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`D.6` The type `va_list` is an alias for `char *`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`D.7` The `va_list` type is _not_ presented in `std::` for C++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++7.2 Argument Passing Conventions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Possibly, might require adjustment for `D.3`?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## PART 2 - Other platform information
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Additional comments from [2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#### Red Zone
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The ARM64 iOS red zone consists of the 128 bytes immediately below the stack
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++modify these bytes during exceptions. User-mode programs can rely on them not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to change unexpectedly, and can potentially make use of the space for local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++variables.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++In some circumstances, this approach can save an sp-update instruction on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++function entry and exit.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++At present, it seems, that there's no port using a red zone for AArch64, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++there's no implementation - so this optimisation opportunity will be unused
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++at least initially. TODO.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#### Divergences from the Generic C++ ABI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The generic ARM64 C++ ABI is specified in C++ Application Binary Interface
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Standard for the ARM 64-bit architecture, which is in turn based on the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Itanium C++ ABI used by many UNIX-like systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Some sections are ELF-specific and not applicable to the underlying object
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++format used by iOS. There are, however, some significant differences from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++these specifications in iOS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++##### Name Mangling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++When compiling C++ code, types get incorporated into the names of functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++in a process referred to as “mangling.” The iOS ABI differs from the generic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++specification in the following small ways.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Because `va_list` is an alias for `char *`, it is mangled in the same way—as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`Pc` instead of `St9__va_list` (Section 7).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++NEON vector types are mangled in the same way as their 32-bit ARM counterparts,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rather than using the 64-bit scheme. For example, iOS uses `17__simd128_int32_t`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++instead of the generic `11__Int32x4_t`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++##### Other Itanium Divergences
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++In the generic ABI, empty structs are treated as aggregates with a single byte
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++member for parameter passing. In iOS, however, they are ignored unless they
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++have a nontrivial destructor or copy-constructor. If they do have such
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++functions, they are considered as aggregates with one byte member in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++generic manner.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++As with the ARM 32-bit C++ ABI, iOS requires the complete-object (C1) and base-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++object (C2) constructors to return this to their callers. Similarly, the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++complete object (D1) and base object (D2) destructors return this. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++requirement is not made by the generic ARM64 C++ ABI.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++In the generic C++ ABI, array cookies change their size and alignment according
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to the type being allocated. As with the 32-bit ARM, iOS provides a fixed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++layout of two size_t words, with no extra alignment requirements.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++In iOS, object initialization guards are nominally `uint64_t` rather than
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`int64_t`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This affects the prototypes of the functions `__cxa_guard_acquire`,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`__cxa_guard_release` and `__cxa_guard_abort`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++In the generic ARM64 ABI, function pointers whose type differ only in being
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern "C" or extern "C++" are interchangeable. This is not the case in iOS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Undocumented items
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* The platform ABI contains provisions for the swift language, but since GCC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++has no swift FE there's no need to implement them (it might be wise to ensure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++that any reserved registers are handled appropriately tho)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* Darwin user-space code is PIC (2) = fPIC (so nominally 'large' but the code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++model is not modified by the PIC setting [I think FIXME: check]).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FIXME: ??? I'm not clear about kernel mode at present.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The following symbol kinds always have a GOT indirection for Mach-O-pic.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* undefined external
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* weak [not hidden]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* common
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FIXME: check other rules for GOT indirections.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Darwin code models
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* TINY is _not_ supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* SMALL supported (DEFAULT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* LARGE supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AFAICT, Darwin's large model is PIC (with perhaps a very limited number of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ modes)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ However large+PIC is stated to be unimplemented in the current aarch64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ backend so that's a TODO.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FIXME: ??? I'm not clear about kernel mode at present.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Darwin arm64 TLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Darwin has a single TLS model (not attempting to implement in the short-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++term). It's closest to ELF xxxxxxx FIXME: which one?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Generic Darwin/Mach-O Comments for people familiar with ELF.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* does _not_ support strong symbol aliases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* does support weak symbol aliases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* supports visibility - default and hidden.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* Has a "for linker only" symbol visibility.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Such symbols are visible to the static linker (`ld64`), but not externally.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ These are used to support the Mach-O "subsections_by_symbol" linker mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (default for > 10years). Any symbol that is not 'global' and does not begin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ with 'L' (the local symbol designation) is counted as 'linker visible'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * does _not_ support 'static' code in the user space
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Everything needs to be invoked using the dynamic linker (`dyld`). There is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ neither crt0.o nor a static edition of libc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Some versions of Darwin have used 'static' code for kernel modules.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FIXME: ??? what is the kernel model here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Darwin Relocations and Assembler syntax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* `Mach-O` for `Arm64` uses a reduced set of relocations c.f. the ELF set.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ There are only 11 entries but the relocation format allows for multiple sizes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(1, 2, 4, 8) where that's appropriate, and for ancillary data (e.g. a scale),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++so the actual number of permutations is larger.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* Generally, Darwin supports relocations of the form A - B + signed const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ A must be known (i.e. defined in the current TU).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++* `Mach-O` for `Arm64` has postfix assembler syntax.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Where there's an assembly language representation for the relocation type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ it appears after the name (e.g. `foo@PAGE` in contrast to the ELF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ `:got:foo`).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#### Relocs list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++For pointers (no source representation).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_UNSIGNED = 0`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Must be followed by an `ARM64_RELOC_UNSIGNED`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_SUBTRACTOR = 1`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++A B/BL instruction with 26-bit displacement.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(no source representation)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_BRANCH26 = 2`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PC-rel distance to page of target [adrp].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`foo@PAGE`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_PAGE21 = 3`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Offset within page, scaled by r_length [add imm, ld/st].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`foo@PAGEOFF`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_PAGEOFF12 = 4`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PC-rel distance to page of GOT slot [adrp].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`foo@GOTPAGE`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_GOT_LOAD_PAGE21 = 5`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Offset within page of GOT slot, scaled by r_length [add imm, ld/st].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`foo@GOTPAGEOFF`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_GOT_LOAD_PAGEOFF12 = 6`
</span><span style='display:block; white-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 pointers to GOT slots.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(4 and 8 byte versions)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`foo@GOT`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_POINTER_TO_GOT = 7`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++PC-rel distance to page of TLVP slot [adrp].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`foo@TVLPPAGE`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_TLVP_LOAD_PAGE21 = 8`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Offset within page of TLVP slot, scaled by r_length [add imm, ld/st].
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`foo@TVLPPAGEOFF`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_TLVP_LOAD_PAGEOFF12 = 9`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Must be followed by `ARM64_RELOC_PAGE21` or `ARM64_RELOC_PAGEOFF12`.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(no source representation)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The addend is a signed 24bit quantity (+/- 8M range).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++`ARM64_RELOC_ADDEND = 10`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## PART 2 - GCC-12 deviations from the PCS and supporting information.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### D.3 is not yet supported (github issue #74)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GCC promotes in the callee not the caller.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Support for nested functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GCC provides nested functions which are used overtly from C but also to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ implement some parts of Ada and Fortran.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ This requires assigning a register to act as the STATIC CHAIN.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ For GCC-12 this is X16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Support for nested function trampolines is provided by a heap-based table.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++### Support for __float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ The darwinpcs has no provision for a 128bit float type.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GCC-12 supports IEEE741 128bit float values by sof-float.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ The ABI used for __float128 matches that for AAPCS64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++## End.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/falkor-tag-collision-avoidance.c gcc/config/aarch64/falkor-tag-collision-avoidance.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a96a332..a119e2b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/falkor-tag-collision-avoidance.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/falkor-tag-collision-avoidance.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -740,7 +740,7 @@ dump_insn_list (const rtx &t, const insn_info_list_t &insn_info,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *unused ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (dump_file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fprintf (dump_file, "Tag 0x%lx ::\n", INTVAL (t));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (dump_file, "Tag 0x%lx ::\n", (long unsigned int)INTVAL (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 < insn_info.length (); i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dump_insn_slim (dump_file, insn_info[i]->insn);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/host-aarch64-darwin.c gcc/config/aarch64/host-aarch64-darwin.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 0000000..d70f2df
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/host-aarch64-darwin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* aarch64/arm64-darwin host-specific hook definitions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Copyright The GNU Toolchain Authors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This file is part of GCC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC is free software; you can redistribute it and/or modify it under
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the terms of the GNU General Public License as published by the Free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Software Foundation; either version 3, or (at your option) any later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GCC is distributed in the hope that it will be useful, but WITHOUT ANY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++WARRANTY; without even the implied warranty of MERCHANTABILITY or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++<http://www.gnu.org/licenses/>. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define IN_TARGET_CODE 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "config.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "system.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "coretypes.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "hosthooks.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "hosthooks-def.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "config/host-darwin.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Darwin doesn't do anything special for arm64/aarch64 hosts; this file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exists just to include the generic config/host-darwin.h. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/predicates.md gcc/config/aarch64/predicates.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1754b1e..36e5b19 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/aarch64/predicates.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/predicates.md
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -235,21 +235,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (and (match_code "const_int")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_test "IN_RANGE (UINTVAL (op), 0, 0xffffff)")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_predicate "aarch64_pwr_imm3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (and (match_code "const_int")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_test "INTVAL (op) != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- && (unsigned) exact_log2 (INTVAL (op)) <= 4")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_predicate "aarch64_pwr_2_si"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (and (match_code "const_int")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_test "INTVAL (op) != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- && (unsigned) exact_log2 (INTVAL (op)) < 32")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-(define_predicate "aarch64_pwr_2_di"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (and (match_code "const_int")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (match_test "INTVAL (op) != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- && (unsigned) exact_log2 (INTVAL (op)) < 64")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define_predicate "aarch64_mem_pair_offset"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (and (match_code "const_int")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_test "aarch64_offset_7bit_signed_scaled_p (mode, INTVAL (op))")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -270,9 +255,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define_predicate "aarch64_prefetch_operand"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_test "aarch64_address_valid_for_prefetch_p (op, false)"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(define_predicate "aarch64_unscaled_prefetch_operand"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (match_test "aarch64_address_valid_for_unscaled_prefetch_p (op, false)"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define_predicate "aarch64_valid_symref"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (match_code "const, symbol_ref, label_ref")
</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;'>++ rtx x = op;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rtx offset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ split_const (x, &x, &offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (GET_CODE (x) == CONST)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = XEXP (x, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (GET_CODE (x) == UNSPEC && XINT (x, 1) == UNSPEC_SALT_ADDR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = XVECEXP (x, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (SYMBOL_REF_P (x) && INTVAL (offset) < 0)
</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 (aarch64_classify_symbolic_expression (op)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ != SYMBOL_FORCE_TO_MEM);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ })
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/t-aarch64-darwin gcc/config/aarch64/t-aarch64-darwin
</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 0000000..a8bfcff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/t-aarch64-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Machine description for AArch64 architecture.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This file is part of GCC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC is free software; you can redistribute it and/or modify it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC is distributed in the hope that it will be useful, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# <http://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB1ASMSRC = aarch64/lib1funcs.asm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB1ASMFUNCS = _aarch64_sync_cache_range
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# FIXME - figure out what multilib provisions we should make for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# a) arm64e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# b) arm64_32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/aarch64/x-darwin gcc/config/aarch64/x-darwin
</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 0000000..6d788d5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/aarch64/x-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,3 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++host-aarch64-darwin.o : $(srcdir)/config/aarch64/host-aarch64-darwin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(COMPILE) $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(POSTCOMPILE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/avr/avr.c gcc/config/avr/avr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 61168ed..f1153a5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/avr/avr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/avr/avr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10221,10 +10221,9 @@ avr_output_bss_section_asm_op (const void *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Unnamed section callback for progmem*.data sections. */
</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;'>+-avr_output_progmem_section_asm_op (const void *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++avr_output_progmem_section_asm_op (const char *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fprintf (asm_out_file, "\t.section\t%s,\"a\",@progbits\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (const char*) data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (asm_out_file, "\t.section\t%s,\"a\",@progbits\n", data);
</span><span style='display:block; white-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/config/darwin-driver.c gcc/config/darwin-driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f96af2c..085b8ff 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin-driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin-driver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -144,7 +144,7 @@ darwin_find_version_from_kernel (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (sysctl (osversion_name, ARRAY_SIZE (osversion_name), osversion,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &osversion_len, NULL, 0) == -1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "sysctl for kern.osversion failed: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "%<sysctl%> for %<kern.osversion%> failed: %m");
</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;'>+@@ -183,7 +183,7 @@ darwin_find_version_from_kernel (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return new_flag;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ parse_failed:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "couldn%'t understand kern.osversion %q.*s",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "could not understand %<kern.osversion%> %q.*s",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (int) osversion_len, osversion);
</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;'>+@@ -223,7 +223,7 @@ darwin_default_min_version (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *checked = validate_macosx_version_min (new_flag);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (checked == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "could not understand version %s", new_flag);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "could not understand version %qs", new_flag);
</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;'>+ new_flag = xstrndup (checked, strlen (checked));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -268,10 +268,13 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool seenX86_64 = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool seenPPC = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool seenPPC64 = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool seenArm64 = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool seenM32 = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool seenM64 = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool appendM32 = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool appendM64 = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *vers_string = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool seen_version_min = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool seen_sysroot_p = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -296,8 +299,14 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ seenPPC = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (!strcmp ((*decoded_options)[i].arg, "ppc64"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ seenPPC64 = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (!strcmp ((*decoded_options)[i].arg, "arm64"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ seenArm64 = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ; /* We accept the option, but don't need to act on it. */
</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;'>+- error ("this compiler does not support %s",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ error ("this compiler does not support %qs",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (*decoded_options)[i].arg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Now we've examined it, drop the -arch arg. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (*decoded_options_count > i) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -309,7 +318,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --*decoded_options_count;
</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 !DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case OPT_m32:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ seenM32 = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -317,6 +326,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case OPT_m64:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ seenM64 = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</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;'>+ case OPT_mmacosx_version_min_:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ seen_version_min = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -359,53 +369,75 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Turn -arch xxxx into the appropriate -m32/-m64 flag.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If the User tried to specify multiple arch flags (which is possible with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ some Darwin compilers) warn that this mode is not supported by this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- compiler (and ignore the arch flags, which means that the default multi-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- lib will be generated). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ compiler. We take arch specifiers that agree with the default multilib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as the first choice and reject others. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* TODO: determine if these warnings would better be errors. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if DARWIN_X86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (seenPPC || seenPPC64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "this compiler does not support PowerPC (arch flags ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "this compiler does not support PowerPC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " (%<-arch%> option ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (seenArm64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "this compiler does not support Arm64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " (%<-arch%> option ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (seenX86)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (seenX86_64 || seenM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "%s conflicts with i386 (arch flags ignored)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (seenX86_64? "x86_64": "m64"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else if (! seenM32) /* Add -m32 if the User didn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *op = (seenX86_64? "-arch x86_64": "-m64");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "%qs conflicts with %<-arch i386%> (%qs ignored)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op, op);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (! seenM32) /* Add -m32 if the User didn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ appendM32 = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (seenX86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (seenX86 || seenM32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "%s conflicts with x86_64 (arch flags ignored)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (seenX86? "i386": "m32"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else if (! seenM64) /* Add -m64 if the User didn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (seenM32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "%<-m32%> conflicts with %<-arch x86_64%>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " (%<-m32%> ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (! seenM64) /* Add -m64 if the User didn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ appendM64 = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif DARWIN_PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (seenX86 || seenX86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "this compiler does not support X86 (arch flags ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "this compiler does not support x86"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " (%<-arch%> option ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (seenArm64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "this compiler does not support Arm64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " (%<-arch%> option ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (seenPPC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (seenPPC64 || seenM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "%s conflicts with ppc (arch flags ignored)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (seenPPC64? "ppc64": "m64"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else if (! seenM32) /* Add -m32 if the User didn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *op = (seenPPC64? "-arch ppc64": "-m64");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "%qs conflicts with %<-arch ppc%> (%qs ignored)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op, op);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (! seenM32) /* Add -m32 if the User didn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ appendM32 = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (seenPPC64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (seenPPC || seenM32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- warning (0, "%s conflicts with ppc64 (arch flags ignored)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- (seenPPC? "ppc": "m32"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else if (! seenM64) /* Add -m64 if the User didn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (seenM32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "%<-m32%> conflicts with %<-arch ppc64%>"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " (%<-m32%> ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (! seenM64) /* Add -m64 if the User didn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ appendM64 = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (seenPPC || seenPPC64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "this compiler does not support PowerPC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " (%<-arch%> option ignored)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (seenX86 || seenX86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ warning (0, "this compiler does not support x86"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " (%<-arch%> option ignored)");
</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 there is nothing else on the command line, do not add sysroot etc. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (*decoded_options_count <= 1)
</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;'>++#if !DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (appendM32 || appendM64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ++*decoded_options_count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -415,6 +447,7 @@ darwin_driver_init (unsigned int *decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ generate_option (appendM32 ? OPT_m32 : OPT_m64, NULL, 1, CL_DRIVER,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &(*decoded_options)[*decoded_options_count - 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;'>+ if (!seen_sysroot_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/darwin.c gcc/config/darwin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 20d89a1..ee90aa0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -42,6 +42,7 @@ along with GCC; see the file COPYING3. If not see
</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 "langhooks.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "targhooks.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "toplev.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "lto-section-names.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "intl.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -115,7 +116,7 @@ static bool ld_init_term_start_labels = false;
</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;'>+@@ -131,7 +132,7 @@ int emit_aligned_common = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DIRECTIVE is as for output_section_asm_op. */
</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;'>+-output_objc_section_asm_op (const void *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++output_objc_section_asm_op (const char *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static bool been_here = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -909,9 +910,6 @@ machopic_legitimize_pic_address (rtx orig, machine_mode mode, rtx reg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ emit_move_insn (reg, pic);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pic = reg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- emit_use (gen_rtx_REG (Pmode, PIC_OFFSET_TABLE_REGNUM));
</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 (lra_in_progress && HARD_REGISTER_P (pic))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ df_set_regs_ever_live (REGNO (pic), true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -980,9 +978,6 @@ machopic_legitimize_pic_address (rtx orig, machine_mode mode, rtx reg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ emit_move_insn (reg, pic);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pic = reg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- emit_use (pic_offset_table_rtx);
</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 (lra_in_progress && HARD_REGISTER_P (pic))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ df_set_regs_ever_live (REGNO (pic), true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -994,21 +989,21 @@ machopic_legitimize_pic_address (rtx orig, machine_mode mode, rtx reg)
</span><span style='display:block; white-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 (GET_CODE (pic_ref) != REG)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (reg != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- emit_move_insn (reg, pic_ref);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return reg;
</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;'>+- return force_reg (mode, 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;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (reg != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ emit_move_insn (reg, pic_ref);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return reg;
</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;'>++ return force_reg (mode, 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;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</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;'>++ 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;'>+ else if (GET_CODE (orig) == PLUS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && (GET_CODE (XEXP (orig, 0)) == MEM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1055,6 +1050,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;'>+@@ -1210,6 +1206,7 @@ machopic_finish (FILE *asm_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> (asm_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;'>+@@ -2553,7 +2550,6 @@ darwin_emit_common (FILE *fp, const char *name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rounded = (size + (align-1)) & ~(align-1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ l2align = floor_log2 (align);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gcc_assert (l2align <= L2_MAX_OFILE_ALIGNMENT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in_section = comm_section;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* We mustn't allow multiple public symbols to share an address when using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2704,6 +2700,10 @@ darwin_asm_output_aligned_decl_common (FILE *fp, tree decl, const char *name,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef DEBUG_DARWIN_MEM_ALLOCATORS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (fp, "# adcom: %s (%d,%d) decl=0x0\n", name, (int)size, (int)align);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Common variables are limited to a maximum alignment of 2^15. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (align > 32768)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ error_at (UNKNOWN_LOCATION, "common variables must have an alignment"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " of 32678 or less");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin_emit_common (fp, name, size, align);
</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;'>+@@ -2731,7 +2731,7 @@ fprintf (fp, "# adcom: %s (%lld,%d) ro %d cst %d stat %d com %d pub %d"
</span><span style='display:block; white-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 shouldn't be messing with this if the decl has a section name. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gcc_assert (DECL_SECTION_NAME (decl) == NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_checking_assert (DECL_SECTION_NAME (decl) == NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* We would rather not have to check this here - but it seems that we might
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ be passed a decl that should be in coalesced space. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2760,10 +2760,16 @@ fprintf (fp, "# adcom: %s (%lld,%d) ro %d cst %d stat %d com %d pub %d"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ l2align = floor_log2 (align / BITS_PER_UNIT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check we aren't asking for more aligment than the platform allows. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gcc_assert (l2align <= L2_MAX_OFILE_ALIGNMENT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_checking_assert (l2align <= L2_MAX_OFILE_ALIGNMENT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (TREE_PUBLIC (decl) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- darwin_emit_common (fp, name, size, align);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Common variables are limited to a maximum alignment of 2^15. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (l2align > 15)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ error_at (DECL_SOURCE_LOCATION (decl), "common variables must have"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " an alignment of 32678 or less");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ darwin_emit_common (fp, name, size, align);
</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;'>+ darwin_emit_local_bss (fp, decl, name, size, l2align);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3044,7 +3050,12 @@ darwin_file_end (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (asm_out_file, "\t.long\t0\n\t.long\t%u\n", 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;'>++#if !DARWIN_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ machopic_finish (asm_out_file);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_checking_assert (!machopic_indirections);
</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 (flag_apple_kext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* These sections are only used for kernel code. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3634,18 +3645,21 @@ darwin_rename_builtins (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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Implementation for the TARGET_LIBC_HAS_FUNCTION hook. */
</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_libc_has_function (enum function_class fn_class)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (fn_class == function_sincos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fn_class == function_sincos && darwin_macosx_version_min)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return (strverscmp (darwin_macosx_version_min, "10.9") >= 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if DARWIN_PPC && SUPPORT_DARWIN_LEGACY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (fn_class == function_c99_math_complex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || fn_class == function_c99_misc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return (TARGET_64BIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- || strverscmp (darwin_macosx_version_min, "10.3") >= 0);
</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;'>++ || (darwin_macosx_version_min &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ strverscmp (darwin_macosx_version_min, "10.3") >= 0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return default_libc_has_function (fn_class);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hashval_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/darwin.h gcc/config/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e6b8ee1..6baf65d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -42,6 +42,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;'>+ #define DARWIN_X86 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_PPC 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_ARM64 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define OBJECT_FORMAT_MACHO 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Suppress g++ attempt to link in the math library automatically. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define MATH_LIBRARY ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -275,13 +278,17 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_RDYNAMIC "%{rdynamic:%nrdynamic is not supported}"
</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;'>+-/* FIXME: we should check that the linker supports the -pie and -no_pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Code built with mdynamic-no-pic does not support PIE/PIC, so we disallow
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ these combinations; we also ensure that the no_pie option is passed to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ld64 on system versions that default to PIE when mdynamic-no-pic is given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ FIXME: we should check that the linker supports the -pie and -no_pie.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ options. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_PIE_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "%{pie|fpie|fPIE:\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %{mdynamic-no-pic: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %n'-mdynamic-no-pic' overrides '-pie', '-fpie' or '-fPIE'; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- :%:version-compare(>= 10.5 mmacosx-version-min= -pie) }} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ :%:version-compare(>= 10.5 mmacosx-version-min= -pie) }; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mdynamic-no-pic:%:version-compare(>= 10.7 mmacosx-version-min= -no_pie) } "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_NOPIE_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "%{no-pie|fno-pie|fno-PIE: \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -290,6 +297,31 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_CC1_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "%<dynamic %<dynamiclib %<force_cpusubtype_ALL "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* When we are using embedded runpaths DARWIN_AT_RPATH is set. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_RPATH_LINK \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{!r:%{!nostdlib:%{!nodefaultrpaths:%(darwin_rpaths)}}}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_SHARED_LIBGCC "-lgcc_s.1.1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_RPATH_LINK " %<nodefaultrpaths "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_SHARED_LIBGCC \
</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;'>++ %:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w) "
</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 might elect to add a path even when this compiler does not use embedded
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ run paths, so that we can use libraries from an alternate compiler that is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ using embedded runpaths. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if DARWIN_DO_EXTRA_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define DARWIN_EXTRA_RPATH \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++"%{!r:%{!nostdlib:%{!nodefaultrpaths:\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ %:version-compare(>= 10.5 mmacosx-version-min= -rpath) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ %:version-compare(>= 10.5 mmacosx-version-min= " DARWIN_ADD_RPATH ") \
</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;'>++# define DARWIN_EXTRA_RPATH ""
</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;'>+ #define SUBSUBTARGET_OVERRIDE_OPTIONS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ do { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin_override_options (); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -381,7 +413,9 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DARWIN_NOPIE_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DARWIN_RDYNAMIC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DARWIN_NOCOMPACT_UNWIND \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- "}}}}}}} %<pie %<no-pie %<rdynamic "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ DARWIN_EXTRA_RPATH \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ DARWIN_RPATH_LINK \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "}}}}}}} %<pie %<no-pie %<rdynamic %<X %<rpath %<nodefaultrpaths "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Spec that controls whether the debug linker is run automatically for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ a link step. This needs to be done if there is a source file on the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -489,7 +523,7 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Otherwise, we just link the shared version of gcc_s.1.1 and pick up
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exceptions:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * 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:#e0ffe0;'>+- is no shared version on the system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ is no shared unwinder version on the system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * from 10.3.9 to 10.5, from /usr/lib/libgcc_s.1.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * from 10.6 onwards, from libSystem.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -502,8 +536,7 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %:version-compare(!> 10.6 mmacosx-version-min= -lgcc_eh) \
</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= -lgcc_s.1.1) \
</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_SHARED_LIBGCC " \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %:version-compare(!> 10.3.9 mmacosx-version-min= -lgcc_eh) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \
</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;'>+@@ -538,7 +571,8 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { "darwin_crt2", DARWIN_CRT2_SPEC }, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { "darwin_crt3", DARWIN_CRT3_SPEC }, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { "darwin_dylib1", DARWIN_DYLIB1_SPEC }, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- { "darwin_bundle1", DARWIN_BUNDLE1_SPEC },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { "darwin_bundle1", DARWIN_BUNDLE1_SPEC }, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { "darwin_rpaths", DARWIN_RPATH_SPEC },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DARWIN_CRT1_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "%:version-compare(!> 10.5 mmacosx-version-min= -lcrt1.o) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -564,6 +598,17 @@ extern GTY(()) int darwin_ms_struct;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "%{!static:%:version-compare(< 10.6 mmacosx-version-min= -lbundle1.o) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %{fgnu-tm: -lcrttms.o}}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* A default rpath, that picks up dependent libraries installed in the same
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ director as one being loaded. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_RPATH_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "%:version-compare(>= 10.5 mmacosx-version-min= -rpath) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ %:version-compare(>= 10.5 mmacosx-version-min= @loader_path) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ %P "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DARWIN_RPATH_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;'>+ #ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Emit macosx version (but only major). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ASM_MMACOSX_VERSION_MIN_SPEC \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -859,13 +904,12 @@ int darwin_label_is_anonymous_local_objc_name (const char *name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ((LOG) != 0) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (FILE, "\t%s\t%d\n", ALIGN_ASM_OP, (LOG))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* The maximum alignment which the object file format can support in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- bits. For Mach-O, this is 2^15 bytes. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* The maximum alignment which the object file format can support in bits
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ which depends on the OS version and whether the object is a common
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ variable. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef MAX_OFILE_ALIGNMENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define MAX_OFILE_ALIGNMENT (0x8000 * 8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define L2_MAX_OFILE_ALIGNMENT 15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define MAX_OFILE_ALIGNMENT ((1U << L2_MAX_OFILE_ALIGNMENT) * 8U)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* These are the three variants that emit referenced blank space. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/darwin.opt gcc/config/darwin.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 55b6897..db4553b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/darwin.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/darwin.opt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -237,6 +237,10 @@ nodefaultexport
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Driver RejectNegative
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Do not add a default symbol exports to modules or dynamic libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++nodefaultrpaths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Driver RejectNegative
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Do not add default run paths (for the compiler library directories) to executables, modules or dynamic libraries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nofixprebinding
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Driver RejectNegative
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (Obsolete after 10.3.9) Set MH_NOPREFIXBINDING, in an executable.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/host-darwin.c gcc/config/host-darwin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c862935..c9aaea2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/host-darwin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/host-darwin.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,61 +20,164 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "config.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "system.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "coretypes.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "options.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "diagnostic-core.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "config/host-darwin.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Yes, this is really supposed to work. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* This allows for a pagesize of 16384, which we have on Darwin20, but should
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- continue to work OK for pagesize 4096 which we have on earlier versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- The size is 1 (binary) Gb. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static char pch_address_space[65536*16384] __attribute__((aligned (16384)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Return the address of the PCH address space, if the PCH will fit in it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <errno.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* For Darwin (macOS only) platforms, without ASLR (PIE) enabled on the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ binaries, the following VM addresses are expected to be available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NOTE, that for aarch64, ASLR is always enabled - but the VM address
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mentioned below is available (at least on Darwin20).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ The spaces should all have 512Mb available c.f. PCH files for large
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ C++ or Objective-C in the range of 150Mb for 64b hosts.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ We also try to steer clear of places already used for sanitizers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ If the allocation fails at the 'ideal' address, we go with what the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ kernel provides (there is more likelihood that we will need to relocate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ on read in). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define PAGE_SZ 4096
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__x86_64) && defined(__LP64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define TRY_EMPTY_VM_SPACE 0x180000000000ULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__x86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define TRY_EMPTY_VM_SPACE 0x00006fe00000ULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__i386)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define TRY_EMPTY_VM_SPACE 0x00006fe00000ULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__POWERPC__) && defined(__LP64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define TRY_EMPTY_VM_SPACE 0x180000000000ULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__POWERPC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define TRY_EMPTY_VM_SPACE 0x00006fe00000ULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__aarch64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# undef PAGE_SZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define PAGE_SZ 16384
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define TRY_EMPTY_VM_SPACE 0x180000000000ULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# error "unknown Darwin target"
</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;'>++/* Try to map a known position in the VM. The current PCH implementation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ can adjust values at write-time, but not at read-time thus we need to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pick up the same position when reading as we got at write-time. */
</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_gt_pch_get_address (size_t sz, int fd ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++darwin_gt_pch_get_address (size_t sz, int fd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (sz <= sizeof (pch_address_space))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return pch_address_space;
</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;'>++ /* First try with the constraint that we really want this address... */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *addr = mmap ((void *)TRY_EMPTY_VM_SPACE, sz, PROT_READ | PROT_WRITE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_PRIVATE | MAP_FIXED, fd, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (addr != (void *) MAP_FAILED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ munmap (addr, sz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* This ought to be the only alternative to failure, but there are comments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ that suggest some versions of mmap can be buggy and return a different
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (addr == (void *) TRY_EMPTY_VM_SPACE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* OK try to find a space without the constraint. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ addr = mmap ((void *) TRY_EMPTY_VM_SPACE, sz, PROT_READ | PROT_WRITE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_PRIVATE, fd, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We return whatever the kernel gave us. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (addr != (void *) MAP_FAILED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Unmap the area before returning. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ munmap (addr, sz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Otherwise, try again but put some arbitrary buffer space first. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t buffer_size = 64 * 1024 * 1024;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *buffer = mmap (0, buffer_size, PROT_NONE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_PRIVATE | MAP_ANON, -1, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ addr = mmap ((void *)TRY_EMPTY_VM_SPACE, sz, PROT_READ | PROT_WRITE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_PRIVATE, fd, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (buffer != (void *) MAP_FAILED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ munmap (buffer, buffer_size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* If we failed this time, that means there is *no* large enough free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ space. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (addr == (void *) MAP_FAILED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ error ("PCH memory not available %m");
</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;'>++ munmap (addr, sz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return addr;
</span><span style='display:block; white-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 ADDR and SZ for validity, and deallocate (using munmap) that part of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pch_address_space beyond SZ. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Try to mmap the PCH file at ADDR for SZ bytes at OFF offset in the file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ If we succeed return 1, if we cannot mmap the desired address, then we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fail with -1. */
</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;'>+-darwin_gt_pch_use_address (void *addr, size_t sz, int fd, size_t off)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++darwin_gt_pch_use_address (void *&addr, size_t sz, int fd, size_t off)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const size_t pagesize = getpagesize();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- void *mmap_result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- int ret;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *mapped_addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We're called with size == 0 if we're not planning to load a PCH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ file at all. This allows the hook to free any static space that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ we might have allocated at link time. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (sz == 0)
</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;'>+- gcc_assert ((size_t)pch_address_space % pagesize == 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- && sizeof (pch_address_space) % pagesize == 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = (addr == pch_address_space && sz <= sizeof (pch_address_space));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (! ret)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sz = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_checking_assert (!(off % PAGE_SZ));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* Round the size to a whole page size. Normally this is a no-op. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- sz = (sz + pagesize - 1) / pagesize * pagesize;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Try to map the file with MAP_PRIVATE and FIXED. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mapped_addr = mmap (addr, sz, PROT_READ | PROT_WRITE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_PRIVATE | MAP_FIXED, fd, (off_t) off);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (munmap (pch_address_space + sz, sizeof (pch_address_space) - sz) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fatal_error (input_location, "couldn%'t unmap pch_address_space: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Hopefully, we succeed. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (mapped_addr == addr)
</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;'>+- if (ret)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* In theory, the only alternative to success for MAP_FIXED should be FAILED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ however, there are some buggy earlier implementations that could return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ an address. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (mapped_addr != (void *) MAP_FAILED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ munmap (mapped_addr, sz);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Try to map the file with MAP_PRIVATE but let the kernel move it. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mapped_addr = mmap (addr, sz, PROT_READ | PROT_WRITE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_PRIVATE, fd, (off_t) off);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Hopefully, we succeed. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (mapped_addr != (void *) MAP_FAILED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- mmap_result = mmap (addr, sz,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fd, off);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ addr = mapped_addr;
</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;'>+- /* The file might not be mmap-able. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ret = mmap_result != (void *) MAP_FAILED;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Try to make an anonymous private mmap at the desired location in case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the problem is in mapping the file. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mapped_addr = mmap (addr, sz, PROT_READ | PROT_WRITE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_PRIVATE | MAP_ANON, -1, (off_t)0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* If this fails, we are out of ideas (and maybe memory). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (mapped_addr == (void *) MAP_FAILED)
</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;'>++ addr = mapped_addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (lseek (fd, off, SEEK_SET) == (off_t) -1)
</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;'>++ while (sz)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ssize_t nbytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* Sanity check for broken MAP_FIXED. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gcc_assert (!ret || mmap_result == addr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nbytes = read (fd, addr, MIN (sz, (size_t) -1 >> 1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (nbytes <= 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ addr = (char *) addr + nbytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sz -= nbytes;
</span><span style='display:block; white-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 ret;
</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;'>+diff --git gcc/config/host-darwin.h gcc/config/host-darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fe65908..7c9852f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/host-darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/host-darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,7 +18,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <http://www.gnu.org/licenses/>. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void * darwin_gt_pch_get_address (size_t sz, int fd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern int darwin_gt_pch_use_address (void *addr, size_t sz, int fd,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern int darwin_gt_pch_use_address (void *&addr, size_t sz, int fd,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t off);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HOST_HOOKS_GT_PCH_GET_ADDRESS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/host-hpux.c gcc/config/host-hpux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae3a559..969c0b7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/host-hpux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/host-hpux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,7 +24,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "hosthooks-def.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void *hpux_gt_pch_get_address (size_t, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static int hpux_gt_pch_use_address (void *, size_t, int, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int hpux_gt_pch_use_address (void *&, size_t, int, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HOST_HOOKS_GT_PCH_GET_ADDRESS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define HOST_HOOKS_GT_PCH_GET_ADDRESS hpux_gt_pch_get_address
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -78,7 +78,7 @@ hpux_gt_pch_get_address (size_t size, int fd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ little else we can do given the current PCH implementation. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-hpux_gt_pch_use_address (void *base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++hpux_gt_pch_use_address (void *&base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/host-linux.c gcc/config/host-linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2687254..6381e85 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/host-linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/host-linux.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -181,7 +181,7 @@ linux_gt_pch_get_address (size_t size, int fd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ little else we can do given the current PCH implementation. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-linux_gt_pch_use_address (void *base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++linux_gt_pch_use_address (void *&base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -204,24 +204,22 @@ linux_gt_pch_use_address (void *base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ addr = mmap (base, size, PROT_READ | PROT_WRITE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (addr != base)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (addr != (void *) MAP_FAILED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- munmap (addr, size);
</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;'>++ if (addr == (void *) MAP_FAILED)
</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;'>+ if (lseek (fd, offset, SEEK_SET) == (off_t)-1)
</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;'>++ base = addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ssize_t nbytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- nbytes = read (fd, base, MIN (size, (size_t)-1 >> 1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nbytes = read (fd, addr, MIN (size, (size_t)-1 >> 1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (nbytes <= 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- base = (char *) base + nbytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ addr = (char *) addr + nbytes;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size -= nbytes;
</span><span style='display:block; white-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/config/host-netbsd.c gcc/config/host-netbsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2f486be..0dd91ab 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/host-netbsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/host-netbsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,7 +66,7 @@ netbsd_gt_pch_get_address (size_t size, int fd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapping the data at BASE, -1 if we couldn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-netbsd_gt_pch_use_address (void *base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++netbsd_gt_pch_use_address (void *&base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/host-openbsd.c gcc/config/host-openbsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index da068c4..aa524e2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/host-openbsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/host-openbsd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -66,7 +66,7 @@ openbsd_gt_pch_get_address (size_t size, int fd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapping the data at BASE, -1 if we couldn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-openbsd_gt_pch_use_address (void *base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++openbsd_gt_pch_use_address (void *&base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/host-solaris.c gcc/config/host-solaris.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d133c6e..249dbd4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/host-solaris.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/host-solaris.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -105,7 +105,7 @@ sol_gt_pch_get_address (size_t size, int fd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapping the data at BASE, -1 if we couldn't. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-sol_gt_pch_use_address (void *base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++sol_gt_pch_use_address (void *&base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/i386/darwin.h gcc/config/i386/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2afec45..777d235 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/i386/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/i386/darwin.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -331,3 +331,15 @@ along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ = darwin_init_cfstring_builtins ((unsigned) (IX86_BUILTIN_CFSTRING)); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin_rename_builtins (); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } while(0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef CLEAR_INSN_CACHE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define CLEAR_INSN_CACHE(beg, end) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extern void sys_icache_invalidate(void *start, size_t len); \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sys_icache_invalidate ((beg), (size_t)((end)-(beg)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Disable custom function descriptors for Darwin when we have off-stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ trampolines. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef X86_CUSTOM_FUNCTION_TEST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define X86_CUSTOM_FUNCTION_TEST \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (!flag_off_stack_trampolines && !flag_trampolines) ? 1 : 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/i386/host-mingw32.c gcc/config/i386/host-mingw32.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 250fef5..85ab47c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/i386/host-mingw32.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/i386/host-mingw32.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,7 +32,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void * mingw32_gt_pch_get_address (size_t, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static int mingw32_gt_pch_use_address (void *, size_t, int, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int mingw32_gt_pch_use_address (void *&, size_t, int, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static size_t mingw32_gt_pch_alloc_granularity (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HOST_HOOKS_GT_PCH_GET_ADDRESS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -118,7 +118,7 @@ mingw32_gt_pch_get_address (size_t size, int)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if the memory is allocated but the data not loaded, return 1 if done. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-mingw32_gt_pch_use_address (void *addr, size_t size, int fd,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++mingw32_gt_pch_use_address (void *&addr, size_t size, int fd,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void * mmap_addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/i386/i386.c gcc/config/i386/i386.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 80486f8..4b808e0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/i386/i386.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/i386/i386.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23399,7 +23399,7 @@ ix86_run_selftests (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_HARD_REGNO_SCRATCH_OK ix86_hard_regno_scratch_ok
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef TARGET_CUSTOM_FUNCTION_DESCRIPTORS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_CUSTOM_FUNCTION_DESCRIPTORS X86_CUSTOM_FUNCTION_TEST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_ADDR_SPACE_ZERO_ADDRESS_VALID ix86_addr_space_zero_address_valid
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/i386/i386.h gcc/config/i386/i386.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4540cd9..d8489fc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/i386/i386.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/i386/i386.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -906,6 +906,12 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Minimum allocation boundary for the code of a function. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FUNCTION_BOUNDARY 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We will and with this value to test if a custom function descriptor needs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a static chain. The function boundary must the adjusted so that the bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ this represents is no longer part of the address. 0 Disables the custom
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ function descriptors. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define X86_CUSTOM_FUNCTION_TEST 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* C++ stores the virtual bit in the lowest bit of function pointers. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define TARGET_PTRMEMFUNC_VBIT_LOCATION ptrmemfunc_vbit_in_pfn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/pa/pa.c gcc/config/pa/pa.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e3e4711..d4ed8bc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/pa/pa.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/pa/pa.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9982,7 +9982,7 @@ pa_arg_partial_bytes (cumulative_args_t cum_v, const function_arg_info &arg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ to the default text subspace. */
</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;'>+-som_output_text_section_asm_op (const void *data ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++som_output_text_section_asm_op (const char *data ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (TARGET_SOM);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (TARGET_GAS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10026,7 +10026,7 @@ som_output_text_section_asm_op (const void *data ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sections. This function is only used with SOM. */
</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;'>+-som_output_comdat_data_section_asm_op (const void *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++som_output_comdat_data_section_asm_op (const char *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in_section = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_section_asm_op (data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/config/rs6000/rs6000.c gcc/config/rs6000/rs6000.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 24696ed..79a1dfa 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/config/rs6000/rs6000.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/config/rs6000/rs6000.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19753,7 +19753,7 @@ rs6000_ms_bitfield_layout_p (const_tree record_type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* A get_unnamed_section callback, used for switching to toc_section. */
</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;'>+-rs6000_elf_output_toc_section_asm_op (const void *data ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rs6000_elf_output_toc_section_asm_op (const char *data ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_ELFv2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && TARGET_MINIMAL_TOC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20457,7 +20457,7 @@ rs6000_xcoff_asm_globalize_label (FILE *stream, const char *name)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ points to the section string variable. */
</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;'>+-rs6000_xcoff_output_readonly_section_asm_op (const void *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rs6000_xcoff_output_readonly_section_asm_op (const char *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (asm_out_file, "\t.csect %s[RO],%s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(const char *const *) directive,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20467,7 +20467,7 @@ rs6000_xcoff_output_readonly_section_asm_op (const void *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Likewise for read-write sections. */
</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;'>+-rs6000_xcoff_output_readwrite_section_asm_op (const void *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rs6000_xcoff_output_readwrite_section_asm_op (const char *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (asm_out_file, "\t.csect %s[RW],%s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(const char *const *) directive,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20475,7 +20475,7 @@ rs6000_xcoff_output_readwrite_section_asm_op (const void *directive)
</span><span style='display:block; white-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;'>+-rs6000_xcoff_output_tls_section_asm_op (const void *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rs6000_xcoff_output_tls_section_asm_op (const char *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (asm_out_file, "\t.csect %s[TL],%s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *(const char *const *) directive,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20485,7 +20485,7 @@ rs6000_xcoff_output_tls_section_asm_op (const void *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* A get_unnamed_section callback, used for switching to toc_section. */
</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;'>+-rs6000_xcoff_output_toc_section_asm_op (const void *data ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rs6000_xcoff_output_toc_section_asm_op (const char *data ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (TARGET_MINIMAL_TOC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/configure gcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 53c27db..3e43bc4 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -633,6 +633,7 @@ 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;'>+ 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_pie_tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_default_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PICFLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -674,6 +675,8 @@ host_xm_defines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_xm_include_list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_xm_file_list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_exeext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gcc_gxx_libcxx_include_dir_add_sysroot
</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_gxx_include_dir_add_sysroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_gxx_include_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_config_arguments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -733,6 +736,8 @@ ORIGINAL_PLUGIN_LD_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_cv_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ORIGINAL_AS_FOR_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_cv_as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ objdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -931,6 +936,7 @@ with_native_system_header_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_build_sysroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_sysroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gxx_include_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++with_gxx_libcxx_include_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_cpp_install_dir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_generated_files_in_srcdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -987,6 +993,8 @@ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++with_darwin_extra_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_gold
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_plugin_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1016,6 +1024,7 @@ with_linker_hash_style
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_diagnostics_color
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_diagnostics_urls
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_default_pie
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_pie_tools
</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;'>+@@ -1717,6 +1726,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-ld[=ARG] build ld [ARG={default,yes,no}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-gold[=ARG] build gold [ARG={default,yes,no}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-gnu-indirect-function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1770,6 +1781,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libquadmath-support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ disable libquadmath support for Fortran
</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-pie-tools build Position Independent Executables for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ compilers and other tools
</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;'>+@@ -1784,6 +1797,8 @@ Optional Packages:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-sysroot[=DIR] search for usr/lib, usr/include, et al, within DIR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-gxx-include-dir=DIR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ specifies directory to put g++ header files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --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;'>+ --with-cpp-install-dir=DIR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ install the user visible C preprocessor in DIR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (relative to PREFIX) as well as PREFIX/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1822,6 +1837,9 @@ Optional Packages:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-pic try to use only PIC/non-PIC objects [default=use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ both]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
</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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ provided by the compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-plugin-ld=[ARG] specify the plugin linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-glibc-version=M.N
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ assume GCC used with glibc version M.N or later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3714,6 +3732,52 @@ elif test "${with_sysroot+set}" = set; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</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;'>++# Configuration for an alternate set of C++ headers.
</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;'>++# Specify the alternate g++ header file directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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;'>++no) ;;
</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;'>++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 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;'>++gcc_gxx_libcxx_include_dir_add_sysroot=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "#define ENABLE_STDLIB_OPTION 1" >>confdefs.h
</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;'>++ $as_echo "#define ENABLE_STDLIB_OPTION 0" >>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:#e0ffe0;'>++# ??? This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
</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${enable_version_specific_runtime_libs} = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_include_dir='${libsubdir}/libc++_include/c++/v1'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ libcxx_incdir='libc++_include/c++/$(version)/v1'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$host != x$target; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ libcxx_incdir="$target_alias/$libcxx_incdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_include_dir="\$(libsubdir)/\$(libsubdir_to_prefix)$libcxx_incdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test "${with_sysroot+set}" = set; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_without_sysroot=`expr "${gcc_gxx_libcxx_include_dir}" : "${with_sysroot}"'\(.*\)'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "${gcc_gxx_libcxx_without_sysroot}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_include_dir="${gcc_gxx_libcxx_without_sysroot}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_include_dir_add_sysroot=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</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 --with-cpp_install_dir was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${with_cpp_install_dir+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15532,7 +15596,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;'>+@@ -17237,6 +17301,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17254,9 +17361,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -19053,7 +19164,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 19056 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 19167 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19159,7 +19270,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 19162 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 19273 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20035,6 +20146,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20052,12 +20206,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -22418,6 +22580,35 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>++DARWIN_DO_EXTRA_RPATH=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --with-darwin-extra-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${with_darwin_extra_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ withval=$with_darwin_extra_rpath; 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;'>++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 DARWIN_DO_EXTRA_RPATH $DARWIN_DO_EXTRA_RPATH
</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:#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 DARWIN_ADD_RPATH "$DARWIN_ADD_RPATH"
</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:#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;'>+@@ -23856,6 +24047,8 @@ _ACEOF
</span><span style='display:block; white-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 we have .[us]leb128, and support symbol arithmetic with it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Older versions of GAS and some non-GNU assemblers, have a bugs handling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# these directives, even when they appear to accept them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .sleb128 and .uleb128" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo_n "checking assembler for .sleb128 and .uleb128... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if ${gcc_cv_as_leb128+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23873,7 +24066,9 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ L1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .uleb128 1280
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .sleb128 -1010
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-L2:' > conftest.s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++L2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .uleb128 0x8000000000000000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++' > conftest.s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ac_try='$gcc_cv_as $gcc_cv_as_flags -o conftest.o conftest.s >&5'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (eval $ac_try) 2>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23881,22 +24076,22 @@ L2:' > conftest.s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test $ac_status = 0; }; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # GAS versions before 2.11 do not support uleb128,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # despite appearing to.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # ??? There exists an elf-specific test that will crash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # the assembler. Perhaps it's better to figure out whether
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # arbitrary sections are supported and try the test.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if echo "$as_ver" | grep GNU > /dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- as_vers=`echo $as_ver | sed -n \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- as_major=`expr "$as_vers" : '\([0-9]*\)'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- as_minor=`expr "$as_vers" : '[0-9]*\.\([0-9]*\)'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if test $as_major -eq 2 && test $as_minor -lt 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else gcc_cv_as_leb128=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;'>++if test "x$gcc_cv_objdump" != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if $gcc_cv_objdump -s conftest.o 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | grep '04800a8e 78808080 80808080 808001' >/dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_cv_as_leb128=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test "x$gcc_cv_otool" != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if $gcc_cv_otool -d conftest.o 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | grep '04 80 0a 8e 78 80 80 80 80 80 80 80 80 80 01' >/dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_cv_as_leb128=yes
</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;'>++ # play safe, assume the assembler is broken.
</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:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "configure: failed program was" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat conftest.s >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29311,6 +29506,7 @@ if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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;'>+
</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;'>+@@ -29334,9 +29530,12 @@ $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 236; then
</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;'>++ if test "$gcc_cv_ld64_major" -ge 512; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_cv_ld64_platform_version=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If the version was not specified, try to find it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker version" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29355,6 +29554,15 @@ $as_echo_n "checking linker for -export_dynamic support... " >&6; }
</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_export_dynamic" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$gcc_cv_ld64_export_dynamic" >&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 -platform_version support" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking linker for -platform_version support... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_cv_ld64_platform_version=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if $gcc_cv_ld -platform_version macos 10.5 0.0 < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_platform_version" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$gcc_cv_ld64_platform_version" >&6; }
</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"${gcc_cv_ld64_version}" != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29370,6 +29578,12 @@ 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;'>+
</span><span style='display:block; white-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_PLATFORM_VERSION $gcc_cv_ld64_platform_version
</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:#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"$dsymutil_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30569,6 +30783,8 @@ 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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Echo link setup.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x${build} = x${host} ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x${host} = x${target} ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30741,14 +30957,18 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check that we can build shared objects with -fPIC -shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ saved_LDFLAGS="$LDFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ saved_CFLAGS="$CFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ saved_CXXFLAGS="$CXXFLAGS"
</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;'>+ CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$CFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS=`echo $CXXFLAGS | sed s/-mdynamic-no-pic//g`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$CXXFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$CFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$CXXFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS="$LDFLAGS -fPIC -shared"
</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;'>+@@ -30780,6 +31000,7 @@ 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;'>+ LDFLAGS="$saved_LDFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$saved_CFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$saved_CXXFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If plugin support had been requested but not available, fail.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x"$enable_plugin" = x"no" ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30941,6 +31162,22 @@ $as_echo "#define ENABLE_DEFAULT_PIE 1" >>confdefs.h
</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-pie-tools was given; this is passed automatically
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# from the top level where it has already been validated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-pie-tools was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_pie_tools+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_pie_tools; enable_pie_tools=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_pie_tools=no
</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_pie_tools = xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "#define ENABLE_PIE_TOOLS 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:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if -fno-PIE works.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -fno-PIE option" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo_n "checking for -fno-PIE option... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31164,6 +31401,10 @@ LTLIBOBJS=$ac_ltlibobjs
</span><span style='display:block; white-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 -z "${ENABLE_DARWIN_AT_RPATH_TRUE}" && test -z "${ENABLE_DARWIN_AT_RPATH_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</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;'>+ : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/configure.ac gcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c3efabc..9ffe625 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -228,6 +228,48 @@ elif test "${with_sysroot+set}" = set; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</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;'>++# Configuration for an alternate set of C++ headers.
</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;'>++# Specify the alternate g++ header file directory
</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;'>++no) ;;
</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;'>++
</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;'>++gcc_gxx_libcxx_include_dir_add_sysroot=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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;'>++ AC_DEFINE(ENABLE_STDLIB_OPTION, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [Define if the -stdlib= option should be enabled.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AC_DEFINE(ENABLE_STDLIB_OPTION, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ??? This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
</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${enable_version_specific_runtime_libs} = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_include_dir='${libsubdir}/libc++_include/c++/v1'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ libcxx_incdir='libc++_include/c++/$(version)/v1'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$host != x$target; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ libcxx_incdir="$target_alias/$libcxx_incdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_include_dir="\$(libsubdir)/\$(libsubdir_to_prefix)$libcxx_incdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test "${with_sysroot+set}" = set; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_without_sysroot=`expr "${gcc_gxx_libcxx_include_dir}" : "${with_sysroot}"'\(.*\)'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "${gcc_gxx_libcxx_without_sysroot}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_include_dir="${gcc_gxx_libcxx_without_sysroot}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_gxx_libcxx_include_dir_add_sysroot=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</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_ARG_WITH(cpp_install_dir,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AC_HELP_STRING([--with-cpp-install-dir=DIR],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [install the user visible C preprocessor in DIR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2401,6 +2443,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;'>+@@ -3016,34 +3073,38 @@ AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_AC_INITFINI_ARRAY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if we have .[us]leb128, and support symbol arithmetic with it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Older versions of GAS and some non-GNU assemblers, have a bugs handling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# these directives, even when they appear to accept them.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_GAS_CHECK_FEATURE([.sleb128 and .uleb128], gcc_cv_as_leb128,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [elf,2,11,0],,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [elf,2,11,0],,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [ .data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .uleb128 L2 - L1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ L1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .uleb128 1280
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .sleb128 -1010
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-L2:],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[[# GAS versions before 2.11 do not support uleb128,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # despite appearing to.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # ??? There exists an elf-specific test that will crash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # the assembler. Perhaps it's better to figure out whether
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # arbitrary sections are supported and try the test.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if echo "$as_ver" | grep GNU > /dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- as_vers=`echo $as_ver | sed -n \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- as_major=`expr "$as_vers" : '\([0-9]*\)'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- as_minor=`expr "$as_vers" : '[0-9]*\.\([0-9]*\)'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if test $as_major -eq 2 && test $as_minor -lt 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- else gcc_cv_as_leb128=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fi]],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [AC_DEFINE(HAVE_AS_LEB128, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [Define if your assembler supports .sleb128 and .uleb128.])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [AC_DEFINE(HAVE_AS_LEB128, 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [Define if your assembler supports .sleb128 and .uleb128.])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++L2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .uleb128 0x8000000000000000
</span><span style='display:block; white-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$gcc_cv_objdump" != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if $gcc_cv_objdump -s conftest.o 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | grep '04800a8e 78808080 80808080 808001' >/dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_cv_as_leb128=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++elif test "x$gcc_cv_otool" != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if $gcc_cv_otool -d conftest.o 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ | grep '04 80 0a 8e 78 80 80 80 80 80 80 80 80 80 01' >/dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_cv_as_leb128=yes
</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;'>++ # play safe, assume the assembler is broken.
</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:#e0ffe0;'>++]],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [AC_DEFINE(HAVE_AS_LEB128, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [Define if your assembler supports .sleb128 and .uleb128.])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [AC_DEFINE(HAVE_AS_LEB128, 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [Define if your assembler supports .sleb128 and .uleb128.])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Determine if an .eh_frame section is read-only.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_fn_eh_frame_ro () {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5742,6 +5803,7 @@ if test x"$ld64_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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;'>+
</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;'>+@@ -5763,9 +5825,12 @@ 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 236; then
</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;'>++ if test "$gcc_cv_ld64_major" -ge 512; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_cv_ld64_platform_version=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If the version was not specified, try to find it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_MSG_CHECKING(linker version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5780,6 +5845,13 @@ if test x"$ld64_flag" = x"yes"; then
</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;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_MSG_RESULT($gcc_cv_ld64_export_dynamic)
</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 -platform_version support)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_cv_ld64_platform_version=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if $gcc_cv_ld -platform_version macos 10.5 0.0 < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AC_MSG_RESULT($gcc_cv_ld64_platform_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;'>+ if test x"${gcc_cv_ld64_version}" != x; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5789,6 +5861,9 @@ if test x"$ld64_flag" = x"yes"; then
</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;'>++ AC_DEFINE_UNQUOTED(LD64_HAS_PLATFORM_VERSION, $gcc_cv_ld64_platform_version,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [Define to 1 if ld64 supports '-platform_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;'>+ if test x"$dsymutil_flag" = x"yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6774,6 +6849,8 @@ AC_SUBST(float_h_file)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(gcc_config_arguments)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(gcc_gxx_include_dir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(gcc_gxx_include_dir_add_sysroot)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(gcc_gxx_libcxx_include_dir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST(gcc_gxx_libcxx_include_dir_add_sysroot)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(host_exeext)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(host_xm_file_list)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(host_xm_include_list)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6964,6 +7041,19 @@ if test x$enable_default_pie = xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST([enable_default_pie])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Check whether --enable-pie-tools was given; this is passed automatically
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# from the top level where it has already been validated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE(pie-tools,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AS_HELP_STRING([--enable-pie-tools],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [build Position Independent Executables for the compilers and other tools])],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[enable_pie_tools=$enableval],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[enable_pie_tools=no])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$enable_pie_tools = xyes ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AC_DEFINE(ENABLE_PIE_TOOLS, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [Define if you build Position Independent Executables for the compilers and other tools.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_SUBST([enable_pie_tools])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if -fno-PIE works.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CACHE_CHECK([for -fno-PIE option],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [gcc_cv_c_no_fpie],
</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 4b0618a..e85e1f3 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;'>+@@ -422,8 +422,10 @@ enum excess_precision_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Support for user-provided GGC and PCH markers. The first parameter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- is a pointer to a pointer, the second a cookie. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-typedef void (*gt_pointer_operator) (void *, void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ is a pointer to a pointer, the second either NULL if the pointer to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pointer points into a GC object or the actual pointer address if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the first argument points to a temporary and the third a cookie. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef void (*gt_pointer_operator) (void *, void *, void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined (HAVE_UCHAR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef unsigned char uchar;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cp/g++spec.c gcc/cp/g++spec.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0ab63bc..16e31d3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/cp/g++spec.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cp/g++spec.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -55,6 +55,34 @@ along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIBSTDCXX_STATIC NULL
</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;'>++#ifndef LIBCXX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LIBCXX "c++"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef LIBCXX_PROFILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LIBCXX_PROFILE LIBCXX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef LIBCXX_STATIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LIBCXX_STATIC NULL
</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;'>++#ifndef LIBCXXABI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LIBCXXABI "c++abi"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef LIBCXXABI_PROFILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LIBCXXABI_PROFILE LIBCXXABI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef LIBCXXABI_STATIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define LIBCXXABI_STATIC NULL
</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;'>++/* The values used here must match those of the stdlib_kind enumeration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ in c.opt. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enum stdcxxlib_kind
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ USE_LIBSTDCXX = 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ USE_LIBCXX = 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;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int *in_decoded_options_count,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,13 +93,16 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* If nonzero, the user gave us the `-p' or `-pg' flag. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int saw_profile_flag = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* What do with libstdc++:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -1 means we should not link in libstdc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 0 means we should link in libstdc++ if it is needed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 1 means libstdc++ is needed and should be linked in.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 2 means libstdc++ is needed and should be linked statically. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* What action to take for the c++ runtime library:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -1 means we should not link it in.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0 means we should link it if it is needed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 1 means it is needed and should be linked in.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 2 means it is needed but should be linked statically. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int library = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Which c++ runtime library to link. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ stdcxxlib_kind which_library = USE_LIBSTDCXX;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The number of arguments being added to what's in argv, other than
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libraries. We use this to track the number of times we've inserted
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -xc++/-xnone. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -205,7 +236,16 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case OPT_static_libstdc__:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ library = library >= 0 ? 2 : library;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- args[i] |= SKIPOPT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_LD_STATIC_DYNAMIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Remove -static-libstdc++ from the command only if target supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LD_STATIC_DYNAMIC. When not supported, it is left in so that a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ back-end target can use outfile substitution. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ args[i] |= SKIPOPT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</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_stdlib_:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ which_library = (stdcxxlib_kind) decoded_options[i].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;'>+ case OPT_SPECIAL_input_file:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -264,6 +304,13 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Add one for shared_libgcc or extra static library. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ num_args = argc + added + need_math + (library > 0) * 4 + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* For libc++, on most platforms, the ABI library (usually called libc++abi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ is provided as a separate DSO, which we must also append.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ However, a platform might have the ability to forward the ABI library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ from libc++, or combine it in some other way; in that case, LIBCXXABI
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ should be set to NULL to signal that it need not be appended. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (which_library == USE_LIBCXX && LIBCXXABI != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ num_args += 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ new_decoded_options = XNEWVEC (struct cl_decoded_option, num_args);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -343,9 +390,25 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ j++;
</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;'>+- generate_option (OPT_l,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CL_DRIVER, &new_decoded_options[j]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (which_library == USE_LIBCXX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ generate_option (OPT_l,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ saw_profile_flag ? LIBCXX_PROFILE : LIBCXX, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CL_DRIVER, &new_decoded_options[j]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (LIBCXXABI != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ j++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ added_libraries++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ generate_option (OPT_l,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ saw_profile_flag ? LIBCXXABI_PROFILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ : LIBCXXABI, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CL_DRIVER, &new_decoded_options[j]);
</span><span style='display:block; white-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;'>++ generate_option (OPT_l,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CL_DRIVER, &new_decoded_options[j]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ added_libraries++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ j++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Add target-dependent static library, if necessary. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cp/name-lookup.c gcc/cp/name-lookup.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 13af1ab..218a6f8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/cp/name-lookup.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cp/name-lookup.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1484,8 +1484,8 @@ resort_member_name_cmp (const void *a_p, const void *b_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree name_a = OVL_NAME (a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree name_b = OVL_NAME (b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- resort_data.new_value (&name_a, resort_data.cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- resort_data.new_value (&name_b, resort_data.cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ resort_data.new_value (&name_a, &name_a, resort_data.cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ resort_data.new_value (&name_b, &name_b, resort_data.cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_checking_assert (name_a != name_b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cppdefault.c gcc/cppdefault.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index af38cc4..eb6f941 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/cppdefault.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cppdefault.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -55,6 +55,11 @@ const struct default_include cpp_include_defaults[]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef GPLUSPLUS_LIBCXX_INCLUDE_DIR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Pick up libc++ include files, if we have -stdlib=libc++. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { GPLUSPLUS_LIBCXX_INCLUDE_DIR, "G++", 2, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ GPLUSPLUS_LIBCXX_INCLUDE_DIR_ADD_SYSROOT, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef GCC_INCLUDE_DIR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* This is the dir for gcc's private headers. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cppdefault.h gcc/cppdefault.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a681264..35cf24e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/cppdefault.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cppdefault.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,7 +36,12 @@ struct default_include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *const fname; /* The name of the directory. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *const component; /* The component containing the directory
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (see update_path in prefix.c) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const char cplusplus; /* Only look here if we're compiling C++. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char cplusplus; /* When this is non-zero, we should only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ consider this if we're compiling C++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ When the -stdlib option is configured, this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ may take values greater than 1 to indicate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ which C++ standard library should be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ used. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char cxx_aware; /* Includes in this directory don't need to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ be wrapped in extern "C" when compiling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C++. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/cumulative-args.h gcc/cumulative-args.h
</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 0000000..b60928e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/cumulative-args.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef GCC_CUMULATIVE_ARGS_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define GCC_CUMULATIVE_ARGS_H
</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;'>++struct cumulative_args_t { void *magic; void *p; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else /* !CHECKING_P */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* When using a GCC build compiler, we could use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __attribute__((transparent_union)) to get cumulative_args_t function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arguments passed like scalars where the ABI would mandate a less
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ efficient way of argument passing otherwise. However, that would come
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ at the cost of less type-safe !CHECKING_P compilation. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++union cumulative_args_t { void *p; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* !CHECKING_P */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* GCC_CUMULATIVE_ARGS_H */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/doc/gty.texi gcc/doc/gty.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9414d3c..7ddf154 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/gty.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/gty.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -197,6 +197,15 @@ If @code{skip} is applied to a field, the type machinery will ignore it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This is somewhat dangerous; the only safe use is in a union when one
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ field really isn't ever used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@findex callback
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item callback
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{callback} should be applied to fields with pointer to function type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++and causes the field to be ignored similarly to @code{skip}, except when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++writing PCH and the field is non-NULL it will remember the field's address
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for relocation purposes if the process writing PCH has different load base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++from a process reading PCH.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @findex for_user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item for_user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -466,7 +475,7 @@ void gt_pch_nx (my_struct *p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void gt_pch_nx (my_struct *p, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* For every field 'fld', call the given pointer operator. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&(tp->fld), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&(tp->fld), NULL, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @}
</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;'>+@@ -519,7 +528,7 @@ void gt_pch_nx (TP<T *> *tp, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* For every field 'fld' of 'tp' with type 'T *', call the given
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pointer operator. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&(tp->fld), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&(tp->fld), NULL, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @}
</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;'>+diff --git gcc/doc/invoke.texi gcc/doc/invoke.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d7c787a..188c97f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/invoke.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/invoke.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -231,6 +231,7 @@ in the following sections.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fvisibility-inlines-hidden @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fvisibility-ms-compat @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fext-numeric-literals @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-stdlib=@var{libstdc++,libc++} @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wabi-tag -Wcatch-value -Wcatch-value=@var{n} @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wno-class-conversion -Wclass-memaccess @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wcomma-subscript -Wconditionally-supported @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -619,6 +620,7 @@ Objective-C and Objective-C++ Dialects}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @gccoptlist{-fcall-saved-@var{reg} -fcall-used-@var{reg} @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -ffixed-@var{reg} -fexceptions @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fnon-call-exceptions -fdelete-dead-exceptions -funwind-tables @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-foff-stack-trampolines @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fasynchronous-unwind-tables @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fno-gnu-unique @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -finhibit-size-directive -fcommon -fno-ident @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -629,6 +631,7 @@ Objective-C and Objective-C++ Dialects}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fverbose-asm -fpack-struct[=@var{n}] @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fleading-underscore -ftls-model=@var{model} @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fstack-reuse=@var{reuse_level} @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++-fstack-use-cumulative-args @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;'>+ -fvisibility=@r{[}default@r{|}internal@r{|}hidden@r{|}protected@r{]} @gol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -fstrict-volatile-bitfields -fsync-libcalls}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2955,6 +2958,16 @@ for ISO C++11 onwards (@option{-std=c++11}, ...).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Do not search for header files in the standard directories specific to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ C++, but do still search the other standard directories. (This option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ is used when building the C++ library.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item -stdlib=@var{libstdc++,libc++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex stdlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++When G++ is configured to support this option, it allows specification of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++alternate C++ runtime libraries. Two options are available: @var{libstdc++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(the default, native C++ runtime for G++) and @var{libc++} which is the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++C++ runtime installed on some operating systems (e.g. Darwin versions from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Darwin11 onwards). The option switches G++ to use the headers from the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++specified library and to emit @code{-lstdc++} or @code{-lc++} respectively,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++when a C++ runtime is required for linking.
</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;'>+ In addition, these warning options have meanings only for C++ programs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14865,6 +14878,17 @@ the behavior of older compilers in which temporaries' stack space is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ not reused, the aggressive stack reuse can lead to runtime errors. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ option is used to control the temporary stack reuse optimization.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item -fstack-use-cumulative-args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex fstack_use_cumulative_args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This option instructs the compiler to use the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{cumulative_args_t}-based stack layout target hooks,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{TARGET_FUNCTION_ARG_BOUNDARY_CA} and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{TARGET_FUNCTION_ARG_ROUND_BOUNDARY_CA}. If a given target does
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++not define these hooks, the default behaviour is to fallback to using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the standard non-@code{_CA} variants instead. Certain targets (such as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AArch64 Darwin) require using the more advanced @code{_CA}-based
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++hooks: For these targets this option should be enabled by default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @item -ftrapv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @opindex ftrapv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This option generates traps for signed overflow on addition, subtraction,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14922,6 +14946,19 @@ instructions to throw exceptions, i.e.@: memory references or floating-point
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ instructions. It does not allow exceptions to be thrown from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arbitrary signal handlers such as @code{SIGALRM}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@item -foff-stack-trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@opindex foff-stack-trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Certain platforms (such as the Apple M1) do not permit an executable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++stack. Generate calls to @code{__builtin_nested_func_ptr_created} and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{__builtin_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. Please note that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++these functions are implemented in libgcc, and will not be compiled in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unless you provide @option{--enable-off-stack-trampolines} when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++building gcc. @emph{PLEASE NOTE}: The trampolines are @emph{not}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++guaranteed to be correctly deallocated if you @code{setjmp},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++instantiate nested functions, and then @code{longjmp} back to a state
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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;'>+ @item -fdelete-dead-exceptions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @opindex fdelete-dead-exceptions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Consider that instructions that may throw exceptions but don't otherwise
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/doc/tm.texi gcc/doc/tm.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0adf472..01f376d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/tm.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/tm.texi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4221,6 +4221,16 @@ with the specified mode and type. The default hook returns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @code{PARM_BOUNDARY} for all arguments.
</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} {unsigned int} TARGET_FUNCTION_ARG_BOUNDARY_CA (machine_mode @var{mode}, const_tree @var{type}, cumulative_args_t @var{ca})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This is the @code{cumulative_args_t}-based version of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{TARGET_FUNCTION_ARG_BOUNDARY}. Define this hook if you need more
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fine-grained control over argument alignment, e.g. depending on whether
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++it is a named argument or not, or any other criteria that you choose to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++place in the @var{ca} structure.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The default hook will call @code{TARGET_FUNCTION_ARG_BOUNDARY}.
</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} {unsigned int} TARGET_FUNCTION_ARG_ROUND_BOUNDARY (machine_mode @var{mode}, const_tree @var{type})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Normally, the size of an argument is rounded up to @code{PARM_BOUNDARY},
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ which is the default value for this hook. You can define this hook to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4228,6 +4238,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;'>+ value.
</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} {unsigned int} TARGET_FUNCTION_ARG_ROUND_BOUNDARY_CA (machine_mode @var{mode}, const_tree @var{type}, cumulative_args_t @var{ca})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This is the @code{cumulative_args_t}-based version of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{TARGET_FUNCTION_ARG_ROUND_BOUNDARY}. Define this hook if you need more
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fine-grained control over argument size rounding, e.g. depending on whether
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++it is a named argument or not, or any other criteria that you choose to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++place in the @var{ca} structure.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The default hook will call @code{TARGET_FUNCTION_ARG_ROUND_BOUNDARY}.
</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 FUNCTION_ARG_REGNO_P (@var{regno})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A C expression that is nonzero if @var{regno} is the number of a hard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ register in which function arguments are sometimes passed. This does
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/doc/tm.texi.in gcc/doc/tm.texi.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ff4de7e..0a45a70 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/doc/tm.texi.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/doc/tm.texi.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3332,8 +3332,12 @@ required.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @hook TARGET_FUNCTION_ARG_BOUNDARY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@hook TARGET_FUNCTION_ARG_BOUNDARY_CA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @hook TARGET_FUNCTION_ARG_ROUND_BOUNDARY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@hook TARGET_FUNCTION_ARG_ROUND_BOUNDARY_CA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @defmac FUNCTION_ARG_REGNO_P (@var{regno})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ A C expression that is nonzero if @var{regno} is the number of a hard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ register in which function arguments are sometimes passed. This does
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/function.c gcc/function.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ca7d48c..f6fd8e3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/function.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/function.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2430,7 +2430,10 @@ assign_parm_find_data_types (struct assign_parm_data_all *all, tree parm,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (DECL_CHAIN (parm))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data->arg.named = 1; /* Not the last non-variadic parm. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (targetm.calls.strict_argument_naming (all->args_so_far))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- data->arg.named = 1; /* Only variadic ones are unnamed. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ data->arg.named = 1; /* Only variadic ones are unnamed. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ data->arg.last_named = 1;
</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;'>+ data->arg.named = 0; /* Treat as variadic. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2487,6 +2490,7 @@ assign_parms_setup_varargs (struct assign_parm_data_all *all,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function_arg_info last_named_arg = data->arg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ last_named_arg.named = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ last_named_arg.last_named = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ targetm.calls.setup_incoming_varargs (all->args_so_far, last_named_arg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &varargs_pretend_bytes, no_rtl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2595,7 +2599,9 @@ assign_parm_find_entry_rtl (struct assign_parm_data_all *all,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ locate_and_pad_parm (data->arg.mode, data->arg.type, in_regs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ all->reg_parm_stack_space,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- entry_parm ? data->partial : 0, current_function_decl,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ entry_parm ? data->partial : 0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ all->args_so_far,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ current_function_decl,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &all->stack_args_size, &data->locate);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Update parm_stack_boundary if this parameter is passed in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3893,7 +3899,8 @@ gimplify_parameters (gimple_seq *cleanup)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (data.arg.pass_by_reference)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree type = TREE_TYPE (data.arg.type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- function_arg_info orig_arg (type, data.arg.named);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ function_arg_info orig_arg (type, data.arg.named,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ data.arg.last_named);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (reference_callee_copied (&all.args_so_far_v, orig_arg))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree local, t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3997,6 +4004,7 @@ gimplify_parameters (gimple_seq *cleanup)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ locate_and_pad_parm (machine_mode passed_mode, tree type, int in_regs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int reg_parm_stack_space, int partial,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cumulative_args_t ca,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree fndecl ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct args_size *initial_offset_ptr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct locate_and_pad_arg_data *locate)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4034,9 +4042,23 @@ locate_and_pad_parm (machine_mode passed_mode, tree type, int in_regs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ? arg_size_in_bytes (type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ : size_int (GET_MODE_SIZE (passed_mode)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ where_pad = targetm.calls.function_arg_padding (passed_mode, type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- boundary = targetm.calls.function_arg_boundary (passed_mode, type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- round_boundary = targetm.calls.function_arg_round_boundary (passed_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (flag_stack_use_cumulative_args)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ boundary = targetm.calls.function_arg_boundary_ca (passed_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ type,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ca);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ round_boundary = targetm.calls.function_arg_round_boundary_ca
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (passed_mode, type, ca);
</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;'>++ boundary = targetm.calls.function_arg_boundary (passed_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ round_boundary = targetm.calls.function_arg_round_boundary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (passed_mode, type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ locate->where_pad = where_pad;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Alignment can't exceed MAX_SUPPORTED_STACK_ALIGNMENT. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/function.h gcc/function.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1ee8ed3..34ff1f5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/function.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/function.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef GCC_FUNCTION_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define GCC_FUNCTION_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "cumulative-args.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Stack of pending (incomplete) sequences saved by `start_sequence'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Each element describes one pending sequence.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -644,6 +645,7 @@ extern int aggregate_value_p (const_tree, const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern bool use_register_for_decl (const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern gimple_seq gimplify_parameters (gimple_seq *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void locate_and_pad_parm (machine_mode, tree, int, int, int,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cumulative_args_t,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree, struct args_size *,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct locate_and_pad_arg_data *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void generate_setjmp_warnings (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/gcc.c gcc/gcc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6d0f857..628650c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/gcc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/gcc.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -523,6 +523,7 @@ or with constant text in a single argument.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %l process LINK_SPEC as a spec.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %L process LIB_SPEC as a spec.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %M Output multilib_os_dir.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ %P Output a RUNPATH_OPTION for each directory in startfile_prefixes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %G process LIBGCC_SPEC as a spec.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %R Output the concatenation of target_system_root and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_sysroot_suffix.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1073,6 +1074,10 @@ proper position among the other output files. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define SYSROOT_HEADERS_SUFFIX_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;'>++#ifndef RUNPATH_OPTION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define RUNPATH_OPTION "-rpath"
</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 const char *asm_debug = ASM_DEBUG_SPEC;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const char *cpp_spec = CPP_SPEC;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static const char *cc1_spec = CC1_SPEC;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5177,6 +5182,7 @@ struct spec_path_info {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t append_len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool omit_relative;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool separate_options;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool realpaths;
</span><span style='display:block; white-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;'>+@@ -5186,6 +5192,16 @@ spec_path (char *path, void *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char save = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* The path must exist; we want to resolve it to the realpath so that this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ can be embedded as a runpath. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (info->realpaths)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ path = lrealpath (path);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* However, if we failed to resolve it - perhaps because there was a bogus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -B option on the command line, then punt on this entry. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!path)
</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;'>+ if (info->omit_relative && !IS_ABSOLUTE_PATH (path))
</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;'>+@@ -5409,6 +5425,22 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ info.omit_relative = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ info.separate_options = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ info.realpaths = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for_each_path (&startfile_prefixes, true, 0, spec_path, &info);
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case 'P':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct spec_path_info info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ info.option = RUNPATH_OPTION;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ info.append_len = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ info.omit_relative = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ info.separate_options = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We want to embed the actual paths that have the libraries. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ info.realpaths = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for_each_path (&startfile_prefixes, true, 0, spec_path, &info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5733,6 +5765,7 @@ do_spec_1 (const char *spec, int inswitch, const char *soft_matched_part)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ info.append_len = strlen (info.append);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ info.omit_relative = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ info.separate_options = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ info.realpaths = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for_each_path (&include_prefixes, false, info.append_len,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ spec_path, &info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/gengtype-state.c gcc/gengtype-state.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d1d54e9..426e14a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/gengtype-state.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/gengtype-state.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,6 +57,7 @@ type_lineloc (const_type_p ty)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_POINTER:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_ARRAY:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_unreachable ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -171,6 +172,7 @@ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void write_state_version (const char *version);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void write_state_scalar_type (type_p current);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void write_state_string_type (type_p current);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void write_state_callback_type (type_p current);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void write_state_undefined_type (type_p current);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void write_state_struct_union_type (type_p current, const char *kindstr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void write_state_struct_type (type_p current);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -898,6 +900,20 @@ state_writer::write_state_string_type (type_p current)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fatal ("Unexpected type in write_state_string_type");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Write the callback type. There is only one such thing! */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++state_writer::write_state_callback_type (type_p current)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (current == &callback_type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ write_any_indent (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (state_file, "callback ");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ write_state_common_type_content (current);
</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;'>++ fatal ("Unexpected type in write_state_callback_type");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Write an undefined type. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ state_writer::write_state_undefined_type (type_p current)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1143,6 +1159,9 @@ state_writer::write_state_type (type_p current)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ write_state_string_type (current);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ write_state_callback_type (current);
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1477,6 +1496,14 @@ read_state_string_type (type_p *type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ read_state_common_type_content (*type);
</span><span style='display:block; white-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 the callback_type. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++read_state_callback_type (type_p *type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *type = &callback_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ read_state_common_type_content (*type);
</span><span style='display:block; white-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 lang_bitmap representing a set of GCC front-end languages. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1834,6 +1861,11 @@ read_state_type (type_p *current)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ next_state_tokens (1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ read_state_string_type (current);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (state_token_is_name (t0, "callback"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ next_state_tokens (1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ read_state_callback_type (current);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (state_token_is_name (t0, "undefined"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *current = XCNEW (struct type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/gengtype.c gcc/gengtype.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9815774..ed66c73 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/gengtype.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/gengtype.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -167,6 +167,7 @@ dbgprint_count_type_at (const char *fil, int lin, const char *msg, type_p t)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int nb_struct = 0, nb_union = 0, nb_array = 0, nb_pointer = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int nb_lang_struct = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int nb_user_struct = 0, nb_undefined = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int nb_callback = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ type_p p = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (p = t; p; p = p->next)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -197,6 +198,9 @@ dbgprint_count_type_at (const char *fil, int lin, const char *msg, type_p t)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_ARRAY:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nb_array++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nb_callback++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_LANG_STRUCT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nb_lang_struct++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -212,6 +216,8 @@ dbgprint_count_type_at (const char *fil, int lin, const char *msg, type_p t)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (stderr, "@@%%@@ %d structs, %d unions\n", nb_struct, nb_union);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (nb_pointer > 0 || nb_array > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (stderr, "@@%%@@ %d pointers, %d arrays\n", nb_pointer, nb_array);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (nb_callback > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (stderr, "@@%%@@ %d callbacks\n", nb_callback);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (nb_lang_struct > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (stderr, "@@%%@@ %d lang_structs\n", nb_lang_struct);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (nb_user_struct > 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -490,6 +496,10 @@ struct type scalar_char = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TYPE_SCALAR, 0, 0, 0, GC_USED, {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;'>++struct type callback_type = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ TYPE_CALLBACK, 0, 0, 0, GC_USED, {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;'>+ /* Lists of various things. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pair_p typedefs = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1459,7 +1469,7 @@ static void set_gc_used (pair_p);
</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;'>+ process_gc_options (options_p opt, enum gc_used_enum level, int *maybe_undef,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- int *length, int *skip, type_p *nested_ptr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int *length, int *skip, int *callback, type_p *nested_ptr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ options_p o;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (o = opt; o; o = o->next)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1473,6 +1483,8 @@ process_gc_options (options_p opt, enum gc_used_enum level, int *maybe_undef,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *length = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (strcmp (o->name, "skip") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *skip = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (strcmp (o->name, "callback") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *callback = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (strcmp (o->name, "nested_ptr") == 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && o->kind == OPTION_NESTED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *nested_ptr = ((const struct nested_ptr_data *) o->info.nested)->type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1521,7 +1533,7 @@ set_gc_used_type (type_p t, enum gc_used_enum level,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ type_p dummy2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool allow_undefined_field_types = (t->kind == TYPE_USER_STRUCT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- process_gc_options (t->u.s.opt, level, &dummy, &dummy, &dummy,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ process_gc_options (t->u.s.opt, level, &dummy, &dummy, &dummy, &dummy,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ &dummy2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (t->u.s.base_class)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1537,9 +1549,10 @@ set_gc_used_type (type_p t, enum gc_used_enum level,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int maybe_undef = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int length = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int skip = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int callback = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ type_p nested_ptr = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ process_gc_options (f->opt, level, &maybe_undef, &length, &skip,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- &nested_ptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ &callback, &nested_ptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (nested_ptr && f->type->kind == TYPE_POINTER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_gc_used_type (nested_ptr, GC_POINTED_TO);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1549,6 +1562,8 @@ set_gc_used_type (type_p t, enum gc_used_enum level,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_gc_used_type (f->type->u.p, GC_MAYBE_POINTED_TO);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (skip)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ; /* target type is not used through this field */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (callback)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ f->type = &callback_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set_gc_used_type (f->type, GC_USED, allow_undefined_field_types);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2467,6 +2482,7 @@ struct walk_type_data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int loopcounter;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool in_ptr_field;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool have_this_obj;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool in_nested_ptr;
</span><span style='display:block; white-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;'>+@@ -2510,6 +2526,7 @@ output_mangled_typename (outf_p of, const_type_p t)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_NONE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_UNDEFINED:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_unreachable ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_POINTER:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2710,6 +2727,8 @@ walk_type (type_p t, struct walk_type_data *d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (strcmp (oo->name, "for_user") == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (strcmp (oo->name, "callback") == 0)
</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;'>+ error_at_line (d->line, "unknown option `%s'\n", oo->name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2735,6 +2754,7 @@ walk_type (type_p t, struct walk_type_data *d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_SCALAR:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->process_field (t, d);
</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;'>+@@ -2779,6 +2799,7 @@ walk_type (type_p t, struct walk_type_data *d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (nested_ptr_d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *oldprevval2 = d->prev_val[2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool old_in_nested_ptr = d->in_nested_ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!union_or_struct_p (nested_ptr_d->type))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2789,6 +2810,7 @@ walk_type (type_p t, struct walk_type_data *d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->prev_val[2] = d->val;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->in_nested_ptr = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ oprintf (d->of, "%*s{\n", d->indent, "");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->indent += 2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->val = xasprintf ("x%d", d->counter++);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2818,6 +2840,7 @@ walk_type (type_p t, struct walk_type_data *d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ oprintf (d->of, "%*s}\n", d->indent, "");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->val = d->prev_val[2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->prev_val[2] = oldprevval2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->in_nested_ptr = old_in_nested_ptr;
</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;'>+ d->process_field (t->u.p, d);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3266,6 +3289,7 @@ write_types_process_field (type_p f, const struct walk_type_data *d)
</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 TYPE_SCALAR:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</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 TYPE_ARRAY:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3799,18 +3823,24 @@ write_types_local_user_process_field (type_p f, const struct walk_type_data *d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_UNION:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_LANG_STRUCT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- oprintf (d->of, "%*s op (&(%s), cookie);\n", d->indent, "", d->val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (d->in_nested_ptr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ oprintf (d->of, "%*s op (&(%s), &(%s), cookie);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->indent, "", d->val, d->prev_val[2]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ oprintf (d->of, "%*s op (&(%s), NULL, cookie);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->indent, "", d->val);
</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 TYPE_USER_STRUCT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (d->in_ptr_field)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- oprintf (d->of, "%*s op (&(%s), cookie);\n", d->indent, "", d->val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ oprintf (d->of, "%*s op (&(%s), NULL, cookie);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->indent, "", d->val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ oprintf (d->of, "%*s gt_pch_nx (&(%s), op, cookie);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->indent, "", d->val);
</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 TYPE_SCALAR:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</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 TYPE_ARRAY:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3881,14 +3911,20 @@ write_types_local_process_field (type_p f, const struct walk_type_data *d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ oprintf (d->of, "%*sif ((void *)(%s) == this_obj)\n", d->indent, "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->prev_val[3]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- oprintf (d->of, "%*s op (&(%s), cookie);\n", d->indent, "", d->val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (d->in_nested_ptr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ oprintf (d->of, "%*s op (&(%s), &(%s), cookie);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->indent, "", d->val, d->prev_val[2]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ oprintf (d->of, "%*s op (&(%s), NULL, cookie);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->indent, "", d->val);
</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 TYPE_USER_STRUCT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ oprintf (d->of, "%*sif ((void *)(%s) == this_obj)\n", d->indent, "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->prev_val[3]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (d->in_ptr_field)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- oprintf (d->of, "%*s op (&(%s), cookie);\n", d->indent, "", d->val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ oprintf (d->of, "%*s op (&(%s), NULL, cookie);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->indent, "", d->val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ oprintf (d->of, "%*s gt_pch_nx (&(%s), op, cookie);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d->indent, "", d->val);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3897,6 +3933,13 @@ write_types_local_process_field (type_p f, const struct walk_type_data *d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_SCALAR:
</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 TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ oprintf (d->of, "%*sif ((void *)(%s) == this_obj)\n", d->indent, "",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->prev_val[3]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ oprintf (d->of, "%*s gt_pch_note_callback (&(%s), this_obj);\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ d->indent, "", d->val);
</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 TYPE_ARRAY:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_NONE:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_UNDEFINED:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4425,6 +4468,7 @@ write_root (outf_p f, pair_p v, type_p type, const char *name, int has_length,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_UNDEFINED:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_UNION:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_LANG_STRUCT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error_at_line (line, "global `%s' is unimplemented type", 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;'>+@@ -4719,6 +4763,9 @@ dump_typekind (int indent, enum typekind kind)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_ARRAY:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf ("TYPE_ARRAY");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ printf ("TYPE_CALLBACK");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_LANG_STRUCT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf ("TYPE_LANG_STRUCT");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4885,6 +4932,7 @@ dump_type (int indent, type_p t)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ t->u.scalar_is_char ? "true" : "false");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_STRING:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case TYPE_CALLBACK:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_STRUCT:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case TYPE_UNION:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/gengtype.h gcc/gengtype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6e50d7a..2cfbcc0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/gengtype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/gengtype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -149,6 +149,9 @@ enum typekind {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TYPE_UNION, /* Type for GTY-ed discriminated unions. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TYPE_POINTER, /* Pointer type to GTY-ed type. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TYPE_ARRAY, /* Array of GTY-ed types. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ TYPE_CALLBACK, /* A function pointer that needs relocation if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the executable has been loaded at a different
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ address. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TYPE_LANG_STRUCT, /* GCC front-end language specific structs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Various languages may have homonymous but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ different structs. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -326,6 +329,9 @@ extern struct type string_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern struct type scalar_nonchar;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern struct type scalar_char;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* The one and only TYPE_CALLBACK. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern struct type callback_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Test if a type is a union, either a plain one or a language
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ specific one. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define UNION_P(x) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ggc-common.c gcc/ggc-common.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0d528cf..4ff99cd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ggc-common.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ggc-common.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -43,7 +43,7 @@ static ggc_statistics *ggc_stats;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct traversal_state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int compare_ptr_data (const void *, const void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void relocate_ptrs (void *, void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void relocate_ptrs (void *, void *, void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void write_pch_globals (const struct ggc_root_tab * const *tab,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct traversal_state *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -249,6 +249,8 @@ saving_hasher::equal (const ptr_data *p1, const void *p2)
</span><span style='display:block; white-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 hash_table<saving_hasher> *saving_htab;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static vec<void *> callback_vec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static vec<void *> reloc_addrs_vec;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Register an object in the hash table. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,6 +283,23 @@ gt_pch_note_object (void *obj, void *note_ptr_cookie,
</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;'>++/* Register address of a callback pointer. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gt_pch_note_callback (void *obj, void *base)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy (&ptr, obj, sizeof (void *));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (ptr != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct ptr_data *data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = (struct ptr_data *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ saving_htab->find_with_hash (base, POINTER_HASH (base));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_assert (data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ callback_vec.safe_push ((char *) data->new_addr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ + ((char *) obj - (char *) base));
</span><span style='display:block; white-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;'>+ /* Register an object in the hash table. */
</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;'>+@@ -348,10 +367,10 @@ compare_ptr_data (const void *p1_p, const void *p2_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Callbacks for note_ptr_fn. */
</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;'>+-relocate_ptrs (void *ptr_p, void *state_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++relocate_ptrs (void *ptr_p, void *real_ptr_p, void *state_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void **ptr = (void **)ptr_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- struct traversal_state *state ATTRIBUTE_UNUSED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct traversal_state *state
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ = (struct traversal_state *)state_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct ptr_data *result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -362,6 +381,19 @@ relocate_ptrs (void *ptr_p, void *state_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ saving_htab->find_with_hash (*ptr, POINTER_HASH (*ptr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_assert (result);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *ptr = result->new_addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (ptr_p == real_ptr_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (real_ptr_p == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ real_ptr_p = ptr_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_assert (real_ptr_p >= state->ptrs[state->ptrs_i]->obj
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && ((char *) real_ptr_p + sizeof (void *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ <= ((char *) state->ptrs[state->ptrs_i]->obj
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ + state->ptrs[state->ptrs_i]->size)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *addr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = (void *) ((char *) state->ptrs[state->ptrs_i]->new_addr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ + ((char *) real_ptr_p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ - (char *) state->ptrs[state->ptrs_i]->obj));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ reloc_addrs_vec.safe_push (addr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Write out, after relocation, the pointers in TAB. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -396,6 +428,61 @@ write_pch_globals (const struct ggc_root_tab * const *tab,
</span><span style='display:block; white-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;'>++/* Callback for qsort. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++compare_ptr (const void *p1_p, const void *p2_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *p1 = *(void *const *)p1_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *p2 = *(void *const *)p2_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return (((uintptr_t)p1 > (uintptr_t)p2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ - ((uintptr_t)p1 < (uintptr_t)p2));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Decode one uleb128 from P, return first byte after it, store
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ decoded value into *VAL. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static unsigned char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++read_uleb128 (unsigned char *p, size_t *val)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int shift = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned char byte;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result = 0;
</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;'>++ byte = *p++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result |= ((size_t) byte & 0x7f) << shift;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ shift += 7;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while (byte & 0x80);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *val = result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 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;'>++/* Store VAL as uleb128 at P, return length in bytes. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static size_t
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++write_uleb128 (unsigned char *p, size_t val)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t len = 0;
</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;'>++ unsigned char byte = (val & 0x7f);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ val >>= 7;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (val != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* More bytes to follow. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ byte |= 0x80;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *p++ = byte;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ++len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while (val != 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return len;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Hold the information we need to mmap the file back in. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct mmap_info
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -443,6 +530,10 @@ gt_pch_save (FILE *f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (The extra work goes in HOST_HOOKS_GT_PCH_GET_ADDRESS and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ HOST_HOOKS_GT_PCH_USE_ADDRESS.) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mmi.preferred_base = host_hooks.gt_pch_get_address (mmi.size, fileno (f));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* If the host cannot supply any suitable address for this, we are stuck. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (mmi.preferred_base == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "cannot write PCH file: required memory segment unavailable");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ggc_pch_this_base (state.d, mmi.preferred_base);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -492,6 +583,7 @@ gt_pch_save (FILE *f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Actually write out the objects. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (i = 0; i < state.count; i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ state.ptrs_i = i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (this_object_size < state.ptrs[i]->size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ this_object_size = state.ptrs[i]->size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -572,13 +664,61 @@ gt_pch_save (FILE *f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vbits.release ();
</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;'>++ reloc_addrs_vec.qsort (compare_ptr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t reloc_addrs_size = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *last_addr = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned char uleb128_buf[sizeof (size_t) * 2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (unsigned i = 0 ; i < reloc_addrs_vec.length () ; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *addr = reloc_addrs_vec[i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_assert ((uintptr_t) addr >= (uintptr_t) mmi.preferred_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && ((uintptr_t) addr + sizeof (void *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ < (uintptr_t) mmi.preferred_base + mmi.size));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (addr == last_addr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (last_addr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ last_addr = mmi.preferred_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t diff = (uintptr_t) addr - (uintptr_t) last_addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ reloc_addrs_size += write_uleb128 (uleb128_buf, diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ last_addr = addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fwrite (&reloc_addrs_size, sizeof (reloc_addrs_size), 1, f) != 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot write PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ last_addr = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (unsigned i = 0 ; i < reloc_addrs_vec.length () ; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *addr = reloc_addrs_vec[i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (addr == last_addr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (last_addr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ last_addr = mmi.preferred_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t diff = (uintptr_t) addr - (uintptr_t) last_addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ reloc_addrs_size = write_uleb128 (uleb128_buf, diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fwrite (uleb128_buf, 1, reloc_addrs_size, f) != reloc_addrs_size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot write PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ last_addr = addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ggc_pch_finish (state.d, state.f);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_fixup_stringpool ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned num_callbacks = callback_vec.length ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void (*pch_save) (FILE *) = >_pch_save;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fwrite (&pch_save, sizeof (pch_save), 1, f) != 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || fwrite (&num_callbacks, sizeof (num_callbacks), 1, f) != 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (num_callbacks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && fwrite (callback_vec.address (), sizeof (void *), num_callbacks,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ f) != num_callbacks))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot write PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ XDELETE (state.ptrs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ XDELETE (this_object);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete saving_htab;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ saving_htab = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ callback_vec.release ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ reloc_addrs_vec.release ();
</span><span style='display:block; white-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 the state of the compiler back in from F. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -592,6 +732,13 @@ gt_pch_restore (FILE *f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct mmap_info mmi;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We are about to reload the line maps along with the rest of the PCH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ data, which means that the (loaded) ones cannot be guaranteed to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ in any valid state for reporting diagnostics that happen during the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ load. Save the current table (and use it during the loading process
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ below). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ class line_maps *save_line_table = line_table;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Delete any deletable objects. This makes ggc_pch_read much
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ faster, as it can be sure that no GCable objects remain other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ than the ones just read in. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -606,20 +753,41 @@ gt_pch_restore (FILE *f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Read in all the global pointers, in 6 easy loops. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bool error_reading_pointers = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (rt = gt_ggc_rtab; *rt; rt++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (rti = *rt; rti->base != NULL; rti++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (i = 0; i < rti->nelt; i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (fread ((char *)rti->base + rti->stride * i,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sizeof (void *), 1, f) != 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ error_reading_pointers = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Stash the newly read-in line table pointer - it does not point to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ anything meaningful yet, so swap the old one back in. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ class line_maps *new_line_table = line_table;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ line_table = save_line_table;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (error_reading_pointers)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (fread (&mmi, sizeof (mmi), 1, f) != 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *orig_preferred_base = mmi.preferred_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ result = host_hooks.gt_pch_use_address (mmi.preferred_base, mmi.size,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fileno (f), mmi.offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We could not mmap or otherwise allocate the required memory at the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ address needed. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (result < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fatal_error (input_location, "had to relocate PCH");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sorry_at (input_location, "PCH allocation failure");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* There is no point in continuing from here, we will only end up
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ with a crashed (most likely hanging) compiler. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exit (-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;'>++ /* (0) We allocated memory, but did not mmap the file, so we need to read
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the data in manually. (>0) Otherwise the mmap succeed for the address
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ we wanted. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (result == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (fseek (f, mmi.offset, SEEK_SET) != 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -629,9 +797,108 @@ gt_pch_restore (FILE *f)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (fseek (f, mmi.offset + mmi.size, SEEK_SET) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t reloc_addrs_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fread (&reloc_addrs_size, sizeof (reloc_addrs_size), 1, f) != 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (orig_preferred_base != mmi.preferred_base)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uintptr_t bias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = (uintptr_t) mmi.preferred_base - (uintptr_t) orig_preferred_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Adjust all the global pointers by bias. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ line_table = new_line_table;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (rt = gt_ggc_rtab; *rt; rt++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (rti = *rt; rti->base != NULL; rti++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (i = 0; i < rti->nelt; i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char *addr = (char *)rti->base + rti->stride * i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char *p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy (&p, addr, sizeof (void *));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ((uintptr_t) p >= (uintptr_t) orig_preferred_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && (uintptr_t) p < (uintptr_t) orig_preferred_base + mmi.size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ p = (char *) ((uintptr_t) p + bias);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy (addr, &p, sizeof (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;'>++ new_line_table = line_table;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ line_table = save_line_table;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* And adjust all the pointers in the image by bias too. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char *addr = (char *) mmi.preferred_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned char uleb128_buf[4096], *uleb128_ptr = uleb128_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while (reloc_addrs_size != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t this_size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = MIN (reloc_addrs_size,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (size_t) (4096 - (uleb128_ptr - uleb128_buf)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fread (uleb128_ptr, 1, this_size, f) != this_size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned char *uleb128_end = uleb128_ptr + this_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (this_size != reloc_addrs_size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uleb128_end -= 2 * sizeof (size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uleb128_ptr = uleb128_buf;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ while (uleb128_ptr < uleb128_end)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ size_t diff;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uleb128_ptr = read_uleb128 (uleb128_ptr, &diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ addr = (char *) ((uintptr_t) addr + diff);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char *p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy (&p, addr, sizeof (void *));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_assert ((uintptr_t) p >= (uintptr_t) orig_preferred_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && ((uintptr_t) p
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ < (uintptr_t) orig_preferred_base + mmi.size));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ p = (char *) ((uintptr_t) p + bias);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy (addr, &p, sizeof (void *));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ reloc_addrs_size -= this_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (reloc_addrs_size == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ this_size = uleb128_end + 2 * sizeof (size_t) - uleb128_ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy (uleb128_buf, uleb128_ptr, this_size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uleb128_ptr = uleb128_buf + this_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;'>++ else if (fseek (f, (mmi.offset + mmi.size + sizeof (reloc_addrs_size)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ + reloc_addrs_size), SEEK_SET) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ggc_pch_read (f, mmi.preferred_base);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void (*pch_save) (FILE *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned num_callbacks;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fread (&pch_save, sizeof (pch_save), 1, f) != 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || fread (&num_callbacks, sizeof (num_callbacks), 1, f) != 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (pch_save != >_pch_save)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uintptr_t binbias = (uintptr_t) >_pch_save - (uintptr_t) pch_save;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void **ptrs = XNEWVEC (void *, num_callbacks);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uintptr_t bias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = (uintptr_t) mmi.preferred_base - (uintptr_t) orig_preferred_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fread (ptrs, sizeof (void *), num_callbacks, f) != num_callbacks)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (i = 0; i < num_callbacks; ++i)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *ptr = (void *) ((uintptr_t) ptrs[i] + bias);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy (&pch_save, ptr, sizeof (pch_save));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pch_save = (void (*) (FILE *)) ((uintptr_t) pch_save + binbias);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ memcpy (ptr, &pch_save, sizeof (pch_save));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ XDELETE (ptrs);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (fseek (f, num_callbacks * sizeof (void *), SEEK_CUR) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fatal_error (input_location, "cannot read PCH file: %m");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_restore_stringpool ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Barring corruption of the PCH file, the restored line table should be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ complete and usable. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ line_table = new_line_table;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Default version of HOST_HOOKS_GT_PCH_GET_ADDRESS when mmap is not present.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -652,7 +919,7 @@ default_gt_pch_get_address (size_t size ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ of the PCH file would be required. */
</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;'>+-default_gt_pch_use_address (void *base, size_t size, int fd ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++default_gt_pch_use_address (void *&base, size_t size, int fd ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size_t offset ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *addr = xmalloc (size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -698,7 +965,7 @@ mmap_gt_pch_get_address (size_t size, int fd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mapped with something. */
</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;'>+-mmap_gt_pch_use_address (void *base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++mmap_gt_pch_use_address (void *&base, size_t size, int fd, size_t offset)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void *addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ggc-tests.c gcc/ggc-tests.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9ead993..d17a5f2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ggc-tests.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ggc-tests.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -426,7 +426,7 @@ gt_pch_nx (user_struct *p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_nx (user_struct *p, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&(p->m_ptr), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&(p->m_ptr), NULL, cookie);
</span><span style='display:block; white-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 GTY((user)) works. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ggc.h gcc/ggc.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4ab10e3..8159f97 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ggc.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ggc.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -46,6 +46,10 @@ typedef void (*gt_handle_reorder) (void *, void *, gt_pointer_operator,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Used by the gt_pch_n_* routines. Register an object in the hash table. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern int gt_pch_note_object (void *, void *, gt_note_pointers);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Used by the gt_pch_p_* routines. Register address of a callback
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pointer. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void gt_pch_note_callback (void *, void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Used by the gt_pch_n_* routines. Register that an object has a reorder
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ function. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void gt_pch_note_reorder (void *, void *, gt_handle_reorder);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ginclude/stddef.h gcc/ginclude/stddef.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9d67eac..be7784e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ginclude/stddef.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ginclude/stddef.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -418,9 +418,8 @@ typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* _Float128 is defined as a basic type, so max_align_t must be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sufficiently aligned for it. This code must work in C++, so we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use __float128 here; that is only available on some
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- architectures, but only on i386 is extra alignment needed for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- __float128. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef __i386__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ architectures. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__i386__) || (__APPLE__ && __aarch64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __float128 __max_align_f128 __attribute__((__aligned__(__alignof(__float128))));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } max_align_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/hash-map.h gcc/hash-map.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5b8fd18..c367ca8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/hash-map.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/hash-map.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -126,7 +126,7 @@ class GTY((user)) hash_map
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pch_nx_helper (T *&x, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&x, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&x, NULL, cookie);
</span><span style='display:block; white-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;'>+@@ -325,7 +325,7 @@ template<typename K, typename V, typename H>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static inline void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_nx (hash_map<K, V, H> *h, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&h->m_table.m_entries, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&h->m_table.m_entries, NULL, cookie);
</span><span style='display:block; white-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 hm_alloc { hm_heap = false, hm_ggc = true };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/hash-set.h gcc/hash-set.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a6c786b..230e402 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/hash-set.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/hash-set.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -206,7 +206,7 @@ template<typename K, typename H>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static inline void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_nx (hash_set<K, false, H> *h, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&h->m_table.m_entries, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&h->m_table.m_entries, NULL, cookie);
</span><span style='display:block; white-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;'>+diff --git gcc/hash-table.h gcc/hash-table.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a1423c7..bd7b217 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/hash-table.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/hash-table.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1203,7 +1203,7 @@ template<typename D>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static inline void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_nx (hash_table<D> *h, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&h->m_entries, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&h->m_entries, NULL, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<typename H>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/hash-traits.h gcc/hash-traits.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3bca74c..4da8a45 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/hash-traits.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/hash-traits.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -254,7 +254,7 @@ struct ggc_remove
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pch_nx (T &p, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&p, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&p, NULL, cookie);
</span><span style='display:block; white-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/hosthooks-def.h gcc/hosthooks-def.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f5f7147..4d26c89 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/hosthooks-def.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/hosthooks-def.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,10 +35,10 @@ along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_gt_pch_alloc_granularity
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void* default_gt_pch_get_address (size_t, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern int default_gt_pch_use_address (void *, size_t, int, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern int default_gt_pch_use_address (void *&, size_t, int, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern size_t default_gt_pch_alloc_granularity (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void* mmap_gt_pch_get_address (size_t, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern int mmap_gt_pch_use_address (void *, size_t, int, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern int mmap_gt_pch_use_address (void *&, size_t, int, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The structure is defined in hosthooks.h. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define HOST_HOOKS_INITIALIZER { \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/hosthooks.h gcc/hosthooks.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fcbdb3d..379bc0d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/hosthooks.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/hosthooks.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,10 +30,12 @@ struct host_hooks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void * (*gt_pch_get_address) (size_t size, int fd);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* ADDR is an address returned by gt_pch_get_address. Attempt to allocate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- SIZE bytes at the same address and load it with the data from FD at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- OFFSET. Return -1 if we couldn't allocate memory at ADDR, return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if the memory is allocated but the data not loaded, return 1 if done. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- int (*gt_pch_use_address) (void *addr, size_t size, int fd, size_t offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SIZE bytes at the same address (preferrably) or some other address
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ and load it with the data from FD at OFFSET. Return -1 if we couldn't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ allocate memory, otherwise update ADDR to the actual address where it got
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ allocated, return 0 if the memory is allocated but the data not loaded,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 1 if done. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int (*gt_pch_use_address) (void *&addr, size_t size, int fd, size_t offset);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return the alignment required for allocating virtual memory. Usually
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ this is the same as pagesize. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/incpath.c gcc/incpath.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8a2bda0..45f903b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/incpath.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/incpath.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -137,7 +137,8 @@ add_standard_paths (const char *sysroot, const char *iprefix,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ IPREFIX and search them first. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (p = cpp_include_defaults; p->fname; p++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (!p->cplusplus || cxx_stdinc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (p->cplusplus == 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (cxx_stdinc && (p->cplusplus == flag_stdlib_kind)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Should we be translating sysrooted dirs too? Assume
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ that iprefix and sysroot are mutually exclusive, for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -168,7 +169,8 @@ add_standard_paths (const char *sysroot, const char *iprefix,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (p = cpp_include_defaults; p->fname; p++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (!p->cplusplus || cxx_stdinc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (p->cplusplus == 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (cxx_stdinc && (p->cplusplus == flag_stdlib_kind)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char *str;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/ira-color.c gcc/ira-color.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b0fc159..536ae8d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/ira-color.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/ira-color.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1356,13 +1356,11 @@ allocnos_conflict_p (ira_allocno_t a1, ira_allocno_t a2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Update (decrease if DECR_P) HARD_REGNO cost of allocnos connected
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ by copies to ALLOCNO to increase chances to remove some copies as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- the result of subsequent assignment. Update conflict costs only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- for true CONFLICT_COST_UPDATE_P. Record cost updates if RECORD_P is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- true. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the result of subsequent assignment. Update conflict costs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Record cost updates if RECORD_P is true. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ update_costs_from_allocno (ira_allocno_t allocno, int hard_regno,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- int divisor, bool decr_p, bool record_p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- bool conflict_cost_update_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int divisor, bool decr_p, bool record_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int cost, update_cost, update_conflict_cost;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ machine_mode mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1391,7 +1389,9 @@ update_costs_from_allocno (ira_allocno_t allocno, int hard_regno,
</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:#e0ffe0;'>+ if (another_allocno == from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- || allocnos_conflict_p (another_allocno, start))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (ALLOCNO_COLOR_DATA (another_allocno) != NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && (ALLOCNO_COLOR_DATA (allocno)->first_thread_allocno
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ != ALLOCNO_COLOR_DATA (another_allocno)->first_thread_allocno)))
</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;'>+ aclass = ALLOCNO_CLASS (another_allocno);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1419,15 +1419,13 @@ update_costs_from_allocno (ira_allocno_t allocno, int hard_regno,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cost = -cost;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ update_cost = cp->freq * cost / divisor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- update_conflict_cost = conflict_cost_update_p ? update_cost : 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (ALLOCNO_COLOR_DATA (another_allocno) != NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- && (ALLOCNO_COLOR_DATA (allocno)->first_thread_allocno
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- != ALLOCNO_COLOR_DATA (another_allocno)->first_thread_allocno))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* Decrease conflict cost of ANOTHER_ALLOCNO if it is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- in the same allocation thread. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- update_conflict_cost /= COST_HOP_DIVISOR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ update_conflict_cost = update_cost;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (internal_flag_ira_verbose > 5 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " a%dr%d (hr%d): update cost by %d, conflict cost by %d\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ALLOCNO_NUM (another_allocno), ALLOCNO_REGNO (another_allocno),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ hard_regno, update_cost, update_conflict_cost);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (update_cost == 0)
</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;'>+@@ -1455,8 +1453,13 @@ update_costs_from_prefs (ira_allocno_t allocno)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ start_update_cost ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (pref = ALLOCNO_PREFS (allocno); pref != NULL; pref = pref->next_pref)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- update_costs_from_allocno (allocno, pref->hard_regno,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- COST_HOP_DIVISOR, true, true, false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (internal_flag_ira_verbose > 5 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file, " Start updating from pref of hr%d for a%dr%d:\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pref->hard_regno, ALLOCNO_NUM (allocno), ALLOCNO_REGNO (allocno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ update_costs_from_allocno (allocno, pref->hard_regno,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ COST_HOP_DIVISOR, true, 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;'>+ /* Update (decrease if DECR_P) the cost of allocnos connected to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1471,7 +1474,10 @@ update_costs_from_copies (ira_allocno_t allocno, bool decr_p, bool record_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hard_regno = ALLOCNO_HARD_REGNO (allocno);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ira_assert (hard_regno >= 0 && ALLOCNO_CLASS (allocno) != NO_REGS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ start_update_cost ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- update_costs_from_allocno (allocno, hard_regno, 1, decr_p, record_p, true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (internal_flag_ira_verbose > 5 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file, " Start updating from a%dr%d by copies:\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ALLOCNO_NUM (allocno), ALLOCNO_REGNO (allocno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ update_costs_from_allocno (allocno, hard_regno, 1, decr_p, record_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;'>+ /* Update conflict_allocno_hard_prefs of allocnos conflicting with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1519,9 +1525,12 @@ restore_costs_from_copies (ira_allocno_t allocno)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ records = ALLOCNO_COLOR_DATA (allocno)->update_cost_records;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ start_update_cost ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (internal_flag_ira_verbose > 5 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file, " Start restoring from a%dr%d:\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ALLOCNO_NUM (allocno), ALLOCNO_REGNO (allocno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (curr = records; curr != NULL; curr = curr->next)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ update_costs_from_allocno (allocno, curr->hard_regno,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- curr->divisor, true, false, true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ curr->divisor, true, false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ free_update_cost_record_list (records);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALLOCNO_COLOR_DATA (allocno)->update_cost_records = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1936,6 +1945,8 @@ assign_hard_reg (ira_allocno_t a, bool retry_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (internal_flag_ira_verbose > 5 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf (ira_dump_file, "(%d=%d,%d) ", hard_regno, cost, full_cost);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (internal_flag_ira_verbose > 5 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file, "\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (min_full_cost > mem_cost
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Do not spill static chain pointer pseudo when non-local goto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ is used. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2114,7 +2125,7 @@ form_threads_from_copies (int cp_num)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (ira_dump_file,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- " Forming thread by copy %d:a%dr%d-a%dr%d (freq=%d):\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ " Forming thread by copy %d:a%dr%d-a%dr%d (freq=%d):\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp->num, ALLOCNO_NUM (cp->first), ALLOCNO_REGNO (cp->first),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALLOCNO_NUM (cp->second), ALLOCNO_REGNO (cp->second),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp->freq);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2122,7 +2133,7 @@ form_threads_from_copies (int cp_num)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ thread1 = ALLOCNO_COLOR_DATA (thread1)->first_thread_allocno;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fprintf (ira_dump_file, " Result (freq=%d): a%dr%d(%d)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file, " Result (freq=%d): a%dr%d(%d)",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALLOCNO_COLOR_DATA (thread1)->thread_freq,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALLOCNO_NUM (thread1), ALLOCNO_REGNO (thread1),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALLOCNO_FREQ (thread1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2186,6 +2197,9 @@ form_threads_from_colorable_allocno (ira_allocno_t a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ira_copy_t cp, next_cp;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int cp_num = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file, " Forming thread from allocno a%dr%d:\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ALLOCNO_NUM (a), ALLOCNO_REGNO (a));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (cp = ALLOCNO_COPIES (a); cp != NULL; cp = next_cp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (cp->first == a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2507,7 +2521,13 @@ remove_allocno_from_bucket_and_push (ira_allocno_t allocno, bool colorable_p)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ push_only_colorable (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file, " Forming thread from colorable bucket:\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ form_threads_from_bucket (colorable_allocno_bucket);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for (ira_allocno_t a = colorable_allocno_bucket;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a != NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a = ALLOCNO_COLOR_DATA (a)->next_bucket_allocno)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ update_costs_from_prefs (a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sort_bucket (&colorable_allocno_bucket, bucket_allocno_compare_func);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for (;colorable_allocno_bucket != NULL;)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ remove_allocno_from_bucket_and_push (colorable_allocno_bucket, true);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2689,7 +2709,7 @@ pop_allocnos_from_stack (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (assign_hard_reg (allocno, false))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fprintf (ira_dump_file, "assign reg %d\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (ira_dump_file, " assign reg %d\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALLOCNO_HARD_REGNO (allocno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (ALLOCNO_ASSIGNED_P (allocno))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3204,7 +3224,6 @@ color_allocnos (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (ALLOCNO_CLASS (a) != NO_REGS && ! empty_profitable_hard_regs (a))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ALLOCNO_COLOR_DATA (a)->in_graph_p = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- update_costs_from_prefs (a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ update_conflict_allocno_hard_prefs (a);
</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/jit/Make-lang.in gcc/jit/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4850918..ef89326 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/jit/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/jit/Make-lang.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,28 +44,26 @@ LIBGCCJIT_VERSION_NUM = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_MINOR_NUM = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_RELEASE_NUM = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++COMMA := ,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ifneq (,$(findstring darwin,$(host)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_AGE = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_BASENAME = libgccjit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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;'>+-# Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# LD_SONAME_OPTION depending if configure found them, using $(if)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# We have to define a COMMA here, otherwise the commas in the "true"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# result are treated as separators by the $(if).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-COMMA := ,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LIBGCCJIT_VERSION_SCRIPT_OPTION = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(if $(LD_VERSION_SCRIPT_OPTION),\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# TODO: translate the libgccjit.map into a form usable by Darwin's linker and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# then check for linker support for -exported_symbols_list=. Omitting this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# means that all symbols in the libgccjit library will be visible.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBGCCJIT_VERSION_SCRIPT_OPTION =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-LIBGCCJIT_SONAME_OPTION = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(if $(LD_SONAME_OPTION), \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This is a work-around fix for cross-compilation where the target linker
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# is ld and the host is ld64.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBGCCJIT_SONAME_OPTION = -Wl,-install_name,$(LIBGCCJIT_SONAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_FILENAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,7 +87,6 @@ LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_SONAME)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # LD_SONAME_OPTION depending if configure found them, using $(if)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We have to define a COMMA here, otherwise the commas in the "true"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # result are treated as separators by the $(if).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-COMMA := ,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBGCCJIT_VERSION_SCRIPT_OPTION = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(if $(LD_VERSION_SCRIPT_OPTION),\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/machmode.h gcc/machmode.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f1c64b2..649cc30 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/machmode.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/machmode.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1195,7 +1195,7 @@ gt_pch_nx (pod_mode<T> *)
</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;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gt_pch_nx (pod_mode<T> *, void (*) (void *, void *), void *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gt_pch_nx (pod_mode<T> *, void (*) (void *, void *, void *), 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/output.h gcc/output.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2f2f169..2fd8a74 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/output.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/output.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -453,7 +453,7 @@ struct GTY(()) named_section {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* A callback that writes the assembly code for switching to an unnamed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ section. The argument provides callback-specific data. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-typedef void (*unnamed_section_callback) (const void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef void (*unnamed_section_callback) (const char *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Information about a SECTION_UNNAMED section. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct GTY(()) unnamed_section {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -461,8 +461,8 @@ struct GTY(()) unnamed_section {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The callback used to switch to the section, and the data that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ should be passed to the callback. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- unnamed_section_callback GTY ((skip)) callback;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const void *GTY ((skip)) data;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unnamed_section_callback GTY ((callback)) callback;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *data;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The next entry in the chain of unnamed sections. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ section *next;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -486,7 +486,7 @@ struct GTY(()) noswitch_section {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct section_common common;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The callback used to assemble decls in this section. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- noswitch_section_callback GTY ((skip)) callback;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ noswitch_section_callback GTY ((callback)) callback;
</span><span style='display:block; white-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 about a section, which may be named or unnamed. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -521,8 +521,8 @@ extern GTY(()) section *bss_noswitch_section;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern GTY(()) section *in_section;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern GTY(()) bool in_cold_section_p;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern section *get_unnamed_section (unsigned int, void (*) (const void *),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern section *get_unnamed_section (unsigned int, void (*) (const char *),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern section *get_section (const char *, unsigned int, tree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool not_existing = false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern section *get_named_section (tree, const char *, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -544,7 +544,7 @@ extern section *get_cdtor_priority_section (int, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern bool unlikely_text_section_p (section *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void switch_to_section (section *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern void output_section_asm_op (const void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void output_section_asm_op (const char *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void record_tm_clone_pair (tree, tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void finish_tm_clone_pairs (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/poly-int.h gcc/poly-int.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b953ffa..c398645 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/poly-int.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/poly-int.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2660,7 +2660,7 @@ gt_pch_nx (poly_int_pod<N, C> *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<unsigned int N, typename C>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gt_pch_nx (poly_int_pod<N, C> *, void (*) (void *, void *), void *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gt_pch_nx (poly_int_pod<N, C> *, void (*) (void *, void *, void *), 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/stringpool.c gcc/stringpool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f7aae79..7a18248 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/stringpool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/stringpool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -219,7 +219,7 @@ gt_pch_nx (unsigned char& x ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_nx (unsigned char *x, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (x, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (x, NULL, cookie);
</span><span style='display:block; white-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 saving and restoring the string pool for PCH. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/target.def gcc/target.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6b2c3e1..6d11acf 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/target.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/target.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4924,6 +4924,18 @@ with the specified mode and type. The default hook returns\n\
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++(function_arg_boundary_ca,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "This is the @code{cumulative_args_t}-based version of\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{TARGET_FUNCTION_ARG_BOUNDARY}. Define this hook if you need more\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fine-grained control over argument alignment, e.g. depending on whether\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++it is a named argument or not, or any other criteria that you choose to\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++place in the @var{ca} structure.\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The default hook will call @code{TARGET_FUNCTION_ARG_BOUNDARY}.",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int, (machine_mode mode, const_tree type, cumulative_args_t ca),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ default_function_arg_boundary_ca)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFHOOK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (function_arg_round_boundary,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Normally, the size of an argument is rounded up to @code{PARM_BOUNDARY},\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ which is the default value for this hook. You can define this hook to\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4932,6 +4944,18 @@ value.",
</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_round_boundary)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DEFHOOK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++(function_arg_round_boundary_ca,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "This is the @code{cumulative_args_t}-based version of\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@code{TARGET_FUNCTION_ARG_ROUND_BOUNDARY}. Define this hook if you need more\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fine-grained control over argument size rounding, e.g. depending on whether\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++it is a named argument or not, or any other criteria that you choose to\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++place in the @var{ca} structure.\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\n\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++The default hook will call @code{TARGET_FUNCTION_ARG_ROUND_BOUNDARY}.",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int, (machine_mode mode, const_tree type, cumulative_args_t ca),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ default_function_arg_round_boundary_ca)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return the diagnostic message string if function without a prototype
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ is not allowed for this 'val' argument; NULL otherwise. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DEFHOOK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/target.h gcc/target.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2f47c57..6a7f8ff 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/target.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/target.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,22 +51,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "insn-codes.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "tm.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "hard-reg-set.h"
</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;'>+-struct cumulative_args_t { void *magic; void *p; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else /* !CHECKING_P */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* When using a GCC build compiler, we could use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- __attribute__((transparent_union)) to get cumulative_args_t function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- arguments passed like scalars where the ABI would mandate a less
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- efficient way of argument passing otherwise. However, that would come
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- at the cost of less type-safe !CHECKING_P compilation. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-union cumulative_args_t { void *p; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif /* !CHECKING_P */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "cumulative-args.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Types used by the record_gcc_switches() target function. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum print_switch_type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/targhooks.c gcc/targhooks.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7cb04f3..5a15451 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/targhooks.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/targhooks.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -821,12 +821,28 @@ default_function_arg_boundary (machine_mode mode ATTRIBUTE_UNUSED,
</span><span style='display:block; white-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;'>++default_function_arg_boundary_ca (machine_mode mode ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const_tree type ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cumulative_args_t ca ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return default_function_arg_boundary (mode, type);
</span><span style='display:block; white-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;'>+ default_function_arg_round_boundary (machine_mode mode ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const_tree type ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++default_function_arg_round_boundary_ca (machine_mode mode ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const_tree type ATTRIBUTE_UNUSED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cumulative_args_t ca ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return default_function_arg_round_boundary (mode, type);
</span><span style='display:block; white-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;'>+ hook_void_bitmap (bitmap regs ATTRIBUTE_UNUSED)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/targhooks.h gcc/targhooks.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 72f3064..6c479b8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/targhooks.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/targhooks.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -157,6 +157,12 @@ extern unsigned int default_function_arg_boundary (machine_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern unsigned int default_function_arg_round_boundary (machine_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const_tree);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern unsigned int default_function_arg_boundary_ca (machine_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const_tree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cumulative_args_t ca);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern unsigned int default_function_arg_round_boundary_ca (machine_mode,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const_tree,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cumulative_args_t ca);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern bool hook_bool_const_rtx_commutative_p (const_rtx, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern rtx default_function_value (const_tree, const_tree, bool);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern rtx default_libcall_value (machine_mode, const_rtx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/abi/aarch64_guard1.C gcc/testsuite/g++.dg/abi/aarch64_guard1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e2669a8..52be32d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/abi/aarch64_guard1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/abi/aarch64_guard1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,5 +12,6 @@ int *foo ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return &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;'>+-// { dg-final { scan-assembler _ZGVZ3foovE1x,8,8 } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-final { scan-assembler _ZGVZ3foovE1x,8,8 { target { ! *-*-darwin* } } } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-final { scan-assembler __DATA,__bss,__ZGVZ3foovE1x,8,3 { target *-*-darwin* } } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // { dg-final { scan-tree-dump "& 1" "original" } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/abi/arm_va_list.C gcc/testsuite/g++.dg/abi/arm_va_list.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4f6f3a4..ff9fd8b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/abi/arm_va_list.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/abi/arm_va_list.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,8 +8,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // #include <stdarg.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef __builtin_va_list va_list;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// { dg-final { scan-assembler "\n_Z1fPSt9__va_list:" } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-final { scan-assembler "\n_Z1fPSt9__va_list:" { target { ! *-*-darwin* } } } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-final { scan-assembler "\n__Z1fPPc:" { target *-*-darwin* } } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void f(va_list*) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// { dg-final { scan-assembler "\n_Z1gSt9__va_listS_:" } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-final { scan-assembler "\n_Z1gSt9__va_listS_:" { target { ! *-*-darwin* } } } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// { dg-final { scan-assembler "\n__Z1gPcS_:" { target *-*-darwin* } } }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void g(va_list, va_list) {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5426a18..a017ce8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,12 +2,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Test mangling */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "\t.global\t_Z1fPu6__bf16" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\t.globa?l[ \t]_?_Z1fPu6__bf16} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void f (__bf16 *x) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "\t.global\t_Z1gPu6__bf16S_" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\t.globa?l[ \t]_?_Z1gPu6__bf16S_} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void g (__bf16 *x, __bf16 *y) { }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "\t.global\t_ZN1SIu6__bf16u6__bf16E1iE" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {\t.globa?l[ \t]_?_ZN1SIu6__bf16u6__bf16E1iE} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <typename T, typename U> struct S { static int i; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template <> int S<__bf16, __bf16>::i = 3;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee4b385..eabb3b5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.dg/torture/darwin-cfstring-3.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,5 +26,5 @@ void foo(void) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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++.target/aarch64/no_unique_address_1.C gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5fc68ea5d..5faf915 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/no_unique_address_1.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-std=c++11 -O -foptimize-sibling-calls -fpeephole2" } */
</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;'>++/* { dg-final { check-function-bodies "**" "" "" { target { lp64 && { ! aarch64*-*-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct X { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct Y { int : 0; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.target/aarch64/no_unique_address_2.C gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f071713..322ec12 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/no_unique_address_2.C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-std=c++17 -O -foptimize-sibling-calls -fpeephole2" } */
</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;'>++/* { dg-final { check-function-bodies "**" "" "" { target { lp64 && { ! aarch64*-*-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct X { };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct Y { int : 0; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 297ab93..7e496c7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/sve/aarch64-sve.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } then {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib g++-dg.exp
</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++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 99e8356..a50c912 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,6 +24,11 @@ if { ![istarget aarch64*-*-*] } {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib g++-dg.exp
</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++.target/aarch64/sve/acle/aarch64-sve-acle.exp gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 55a5711..907aa53 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/sve/acle/aarch64-sve-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib g++-dg.exp
</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++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 304cdad..02de6a5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/g++.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,6 +24,11 @@ if { ![istarget aarch64*-*-*] } {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib g++-dg.exp
</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/attr-aligned.c gcc/testsuite/gcc.dg/attr-aligned.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ec54563..a2e11c9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/attr-aligned.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/attr-aligned.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,8 +12,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define ALIGN_MAX_STATIC 0x1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Excessive alignment for functions and objects with static storage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ duration that's expected to trigger an error. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#elif __MACH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# define ALIGN_MAX_STATIC 0x8000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define ALIGN_MAX_STATIC 0x8000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define ALIGN_MAX_STATIC ALIGN_MAX_HARD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif pdp11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define ALIGN_MAX_STATIC 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Work around a pdp11 ICE (see PR target/87821). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/builtin-apply2.c gcc/testsuite/gcc.dg/builtin-apply2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 06ef24e..a625dd5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/builtin-apply2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/builtin-apply2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</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 untyped_assembly } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "avr-*-* nds32*-*-* amdgcn-*-*" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-skip-if "Variadic funcs use different argument passing from normal funcs." { "riscv*-*-* or1k*-*-* msp430-*-* pru-*-*" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Variadic funcs use different argument passing from normal funcs." { "riscv*-*-* or1k*-*-* msp430-*-* pru-*-* aarch64*-*-darwin*" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { arm*-*-* && arm_hf_eabi } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* PR target/12503 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/cwsc1.c gcc/testsuite/gcc.dg/cwsc1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e793e26..7d8b472 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/cwsc1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/cwsc1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,7 +6,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__i386__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define CHAIN "%ecx"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__aarch64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# define CHAIN "x18"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define CHAIN "x16"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define CHAIN "x18"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__alpha__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define CHAIN "$1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__arm__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/darwin-aligned-globals.c gcc/testsuite/gcc.dg/darwin-aligned-globals.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 0000000..18b71e7
</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/darwin-aligned-globals.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-fcommon" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Test alignment rules which differ for earlier hosts (so we must
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ work on the principle that this test will be exercised by self-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ hosted compilers. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define align_OK (1ul << 28)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define align_BAD (1ul << 29)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define align_OK (1ul << 15)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define align_BAD (1ul << 16)
</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 non common vars are allowed larger alignment on modern systems. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int xn __attribute__ ((aligned (align_OK)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int xi __attribute__ ((aligned (align_OK))) = 5 ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int gxi __attribute__ ((aligned (align_OK))) = 6 ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* test that we detect bad cases. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int yn __attribute__ ((aligned (align_BAD))); /* { dg-error {requested alignment .[0-9]+. exceeds object file maximum} } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static int yi __attribute__ ((aligned (align_BAD))) = 5; /* { dg-error {requested alignment .[0-9]+. exceeds object file maximum} } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int yni __attribute__ ((aligned (align_BAD))) = 6; /* { dg-error {requested alignment .[0-9]+. exceeds object file maximum} } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/darwin-comm-1.c gcc/testsuite/gcc.dg/darwin-comm-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 0000000..2ea11d6
</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/darwin-comm-1.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 { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-fcommon" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* In all cases, common has a max alignment of 2^15. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int badcommon __attribute__ ((aligned (65536))); /* { dg-error "common variables must have an alignment" "" { target { *-*-darwin1[1-9]* *-*-darwin2* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-error "requested alignment .65536. exceeds object file maximum 32768" "" { target { *-*-darwin[4-9]* *-*-darwin10* } } .-1 } */
</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.dg/darwin-segaddr.c gcc/testsuite/gcc.dg/darwin-segaddr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 526db77..fcc324b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/darwin-segaddr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/darwin-segaddr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Check that -segaddr gets through and works. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do run { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O0 -segaddr __TEST 0x200000 -fno-pie" { target { *-*-darwin* && { ! lp64 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-options "-O0 -segaddr __TEST 0x110000000 -fno-pie" { target { *-*-darwin* && lp64 } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-O0 -segaddr __TEST 0x110000000 -fno-pie" { target { *-*-darwin[1456789]* && lp64 } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-O0 -segaddr __TEST 0x110000000 " { target { *-*-darwin2* && lp64 } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void abort ();
</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/pr26427.c gcc/testsuite/gcc.dg/pr26427.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index add13ca..2c09f28 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/pr26427.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/pr26427.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-warning "this target does not support" "" {target *86*-*-darwin* } 0 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-warning "this target does not support" "" {target *86*-*-darwin* aarch64-*-darwin* } 0 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do run { target { *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options { -fsection-anchors -O } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* PR target/26427 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/pubtypes-2.c gcc/testsuite/gcc.dg/pubtypes-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6669f3d..43e1801 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/pubtypes-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/pubtypes-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,7 +2,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O0 -gdwarf-2 -dA" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "__debug_pubtypes" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "long+\[ \t\]+0x12e+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {long+[ \t]+0x12e+[ \t]+[#;]+[ \t]+Pub Info Length} { target { ! aarch64-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {long+[ \t]+0x163+[ \t]+[#;]+[ \t]+Pub Info Length} { target aarch64-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
</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/pubtypes-3.c gcc/testsuite/gcc.dg/pubtypes-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 345e4ed..9041eba 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/pubtypes-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/pubtypes-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,7 +2,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O0 -gdwarf-2 -dA" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "__debug_pubtypes" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "long+\[ \t\]+0x12e+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {long+[ \t]+0x12e+[ \t]+[#;]+[ \t]+Pub Info Length} { target { ! aarch64-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {long+[ \t]+0x163+[ \t]+[#;]+[ \t]+Pub Info Length} { target aarch64-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/pubtypes-4.c gcc/testsuite/gcc.dg/pubtypes-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index da2f9b0..d3fa3e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/pubtypes-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/pubtypes-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,7 +2,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O0 -gdwarf-2 -dA" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "__debug_pubtypes" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "long+\[ \t\]+0x165+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {long+[ \t]+0x165+[ \t]+[#;]+[ \t]+Pub Info Length} { target { ! aarch64-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler {long+[ \t]+0x19a+[ \t]+[#;]+[ \t]+Pub Info Length} { target aarch64-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/tls/pr78796.c gcc/testsuite/gcc.dg/tls/pr78796.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 038e536..31e03dd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/tls/pr78796.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/tls/pr78796.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* PR target/78796 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do run } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-additional-options "-mcmodel=large" { target aarch64-*-* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-mcmodel=large" { target { { aarch64-*-* } && { ! aarch64-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target tls_runtime } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options tls } */
</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/torture/darwin-cfstring-3.c gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee4b385..eabb3b5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/torture/darwin-cfstring-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,5 +26,5 @@ void foo(void) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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/gcc.dg/torture/stackalign/builtin-apply-2.c gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 31585a0..592c221 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/torture/stackalign/builtin-apply-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,7 +9,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* arm_hf_eabi: Variadic funcs use Base AAPCS. Normal funcs use VFP variant.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ avr: Variadic funcs don't pass arguments in registers, while normal funcs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ do. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-skip-if "Variadic funcs use different argument passing from normal funcs" { arm_hf_eabi || { avr-*-* riscv*-*-* or1k*-*-* msp430-*-* amdgcn-*-* pru-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "Variadic funcs use different argument passing from normal funcs" { arm_hf_eabi || { avr-*-* riscv*-*-* or1k*-*-* msp430-*-* amdgcn-*-* pru-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { nds32*-*-* } { v850*-*-* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target untyped_assembly } */
</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/tree-ssa/stdarg-2.c gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0224997..3684cff 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,9 +25,9 @@ f1 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -46,9 +46,9 @@ f2 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 8 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 1 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 8 GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 8 GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -62,10 +62,10 @@ f3 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && { powerpc_fprs && ilp32 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and 1 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and 16 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and 16 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[1-9\]\[0-9\]* GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[1-9\]\[0-9\]* GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[1-9\]\[0-9\]* GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[1-9\]\[0-9\]* GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -81,9 +81,9 @@ f4 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -100,9 +100,9 @@ f5 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -121,9 +121,9 @@ f6 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 24 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 3 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 24 GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 24 GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -139,9 +139,9 @@ f7 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -159,9 +159,9 @@ f8 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -177,9 +177,9 @@ f9 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -197,9 +197,9 @@ f10 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -218,9 +218,9 @@ f11 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save 24 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save 3 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save 24 GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save 24 GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -239,9 +239,9 @@ f12 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && { powerpc_fprs && ilp32 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 24 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 0 GPR units and 3 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 0 GPR units and 48 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 0 GPR units and 48 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -260,9 +260,9 @@ f13 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && { powerpc_fprs && ilp32 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 24 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 0 GPR units and 3 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 0 GPR units and 48 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 0 GPR units and 48 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -281,9 +281,9 @@ f14 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[148\] GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && { powerpc_fprs && ilp32 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save 24 GPR units and 3" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save 1 GPR units and 2 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save 8 GPR units and 32 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save 8 GPR units and 32 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ inline void __attribute__((always_inline))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -305,11 +305,11 @@ f15 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f15: va_list escapes 0, needs to save \[148\] GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f15: va_list escapes 0, needs to save \[148\] GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && { powerpc_fprs && ilp32 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f15: va_list escapes 0, needs to save 1 GPR units and 2 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f15: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f15: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* We may be able to improve upon this after fixing PR66010/PR66013. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f15: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1a637d6..77cdf38 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,9 +27,9 @@ f1 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f1: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f1: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -45,9 +45,9 @@ f2 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 0 GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && { powerpc_fprs && ilp32 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 0 GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 0 GPR units and all FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 0 GPR units and all FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f2: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f2: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Here va_arg can be executed at most as many times as va_start.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,9 +69,9 @@ f3 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 1 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</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;'>+@@ -91,7 +91,7 @@ f4 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && { powerpc_fprs && ilp32 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 8 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 0 GPR units and 1 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 0 GPR units and 16 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 0 GPR units and 16 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c8ad4fe..b0484f2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,7 +25,8 @@ f1 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units" "stdarg" { target aarch64-apple-darwin* } } } */
</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;'>+ f2 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +40,8 @@ f2 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units" "stdarg" { target aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Here va_arg can be executed at most as many times as va_start. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,7 +60,8 @@ f3 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 32 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 1 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units" "stdarg" { target aarch64-apple-darwin* } } } */
</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;'>+ f4 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,7 +80,8 @@ f4 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 16 GPR units and 16 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 24 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 2 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 24 GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 24 GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 24 GPR units" "stdarg" { target aarch64-apple-darwin* } } } */
</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;'>+ f5 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -92,7 +96,8 @@ f5 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save 16 GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save 32 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save (4|2) GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save 16 GPR units and 0 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save 16 GPR units and 0 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save 16 GPR units" "stdarg" { target aarch64-apple-darwin* } } } */
</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;'>+ f6 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -107,7 +112,8 @@ f6 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 8 GPR units and 32 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 32 GPR units and 3" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|2) GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 8 GPR units and 32 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 8 GPR units and 32 FPR units" "stdarg" { target { { aarch64*-*-* } && { ! aarch64-apple-darwin* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 24 GPR units" "stdarg" { target aarch64-apple-darwin* } } } */
</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;'>+ f7 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -122,4 +128,5 @@ f7 (int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 0 GPR units and 64 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && { ! { ia32 || llp64 } } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 32 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 2 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 0 GPR units and 64 FPR units" "stdarg" { target aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { 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* } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 32 GPR units" "stdarg" { target aarch64-apple-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fc8de93..a86e7f3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/aapcs64/aapcs64.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@ if { ![istarget aarch64*-*-*] } then {
</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 { [istarget *-*-darwin*] } then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # darwinpcs and mach-o will need different test mechanisms.
</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;'>+ torture-init
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set-torture-options $C_TORTURE_OPTIONS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set additional_flags "-W -Wall -Wno-abi"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/adds3.c gcc/testsuite/gcc.target/aarch64/adds3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c5518bd..e938c80 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/adds3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/adds3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,4 +58,4 @@ 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 "adds\tx\[0-9\]+, x\[0-9\]+, x\[0-9\]+, sxtw" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "adds\tx\[0-9\]+, x\[0-9\]+, w\[0-9\]+, sxtw" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index c42c7ac..76917a6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.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*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 2193753..d29b222 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.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*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index f5adf40..4e3a3d9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.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*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 47af7c4..a2f415f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.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*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index a914680..c6b2ef3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,7 +2,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps -march=armv8.2-a+bf16+nosimd" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <arm_neon.h>
</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/advsimd-intrinsics/bfcvtnq2-untied.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4b730e3..fd2abad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvtnq2-untied.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index ad51507..e57053d 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 58bdee5..055cf62 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfdot-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,7 +2,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-mbig-endian --save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 9810e4b..315cabd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmlalbt-compile.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmlalbt-compile.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <arm_neon.h>
</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/advsimd-intrinsics/bfmmla-compile.c gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0aaa69f..ddc391b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfmmla-compile.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target aarch64_asm_bf16_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_bf16_neon } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "-DCHECK_ASM" { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <arm_neon.h>
</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/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:#e0ffe0;'>+index ac4f821..978eac2 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-do assemble { target { aarch64*-*-* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-require-effective-target arm_v8_2a_i8mm_neon_hw } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_i8mm_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_i8mm } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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:#e0ffe0;'>+index 96bca23..f833486 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2,7 +2,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-require-effective-target arm_v8_2a_i8mm_ok } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-add-options arm_v8_2a_i8mm } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-mbig-endian -save-temps" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { check-function-bodies "**" "" {-O[^0]} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" {-O[^0]} { target { ! aarch64*-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <arm_neon.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ffa4d22..38b9ef0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/arm_align_max_pwr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,5 +19,7 @@ dummy ()
</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;'>+-/* { dg-final { scan-assembler-times "zero\t4" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "zero\t268435452" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "zero\t4" 2 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "zero\t268435452" { target { ! *-*-darwin*} } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times ".zerofill __DATA,__bss,_y,4,28" 1 { target { *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times ".zerofill __DATA,__bss,_x,4,28" 1 { target { *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/c-output-template-2.c gcc/testsuite/gcc.target/aarch64/c-output-template-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ced96d0..86e4f5f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/c-output-template-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/c-output-template-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,4 +6,4 @@ test (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __asm__ ("@ %c0" : : "S" (test));
</span><span style='display:block; white-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 "@ test" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "@ _?test" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/c-output-template-3.c gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8bde4cb..4531a38 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/c-output-template-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7,4 +7,4 @@ test (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __asm__ ("@ %c0" : : "S" (&test + 4));
</span><span style='display:block; white-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 "@ test\\+4" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "@ _?test\\+4" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/c-output-template-4.c gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c5a9391..800d52b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/c-output-template-4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7,4 +7,4 @@ test (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __asm__ ("@ %c0" : : "S" (&test + 4));
</span><span style='display:block; white-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 "@ test\\+4" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "@ _?test\\+4" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/cmp.c gcc/testsuite/gcc.target/aarch64/cmp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ee57dd2..a6487a4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/cmp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/cmp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,4 +58,5 @@ cmp_di_test4 (int a, s64 b, s64 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;'>+ /* { dg-final { scan-assembler-times "cmp\tw\[0-9\]+, w\[0-9\]+" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times "cmp\tx\[0-9\]+, x\[0-9\]+" 4 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "cmp\tx\[0-9\]+, x\[0-9\]+" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "cmp\tx\[0-9\]+, w\[0-9\]+, sxtw" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/darwin/aarch64-darwin.exp gcc/testsuite/gcc.target/aarch64/darwin/aarch64-darwin.exp
</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 0000000..b0b7f49
</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/aarch64-darwin.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,46 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Specific tests for the darwinpcs and codegen.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) GNU Toolchain Authors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Contributed by Iain Sandoe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This file is part of GCC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC is free software; you can redistribute it and/or modify it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC is distributed in the hope that it will be useful, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# <http://www.gnu.org/licenses/>. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC testsuite that uses the `dg.exp' driver.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Exit immediately if this isn't aarch64-darwin.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { ![istarget aarch64*-*-darwin*] } then {
</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;'>++# Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++load_lib gcc-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# If a testcase doesn't have special options, use these.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++global DEFAULT_CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ![info exists DEFAULT_CFLAGS] then {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set DEFAULT_CFLAGS " -ansi -pedantic-errors"
</span><span style='display:block; white-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;'>++
</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/darwin/complex-in-regs.c gcc/testsuite/gcc.target/aarch64/darwin/complex-in-regs.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 0000000..974f02c
</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/complex-in-regs.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,103 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we need this for complex and gnu initializers. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-std=gnu99 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We use the sections anchors to make the code easier to match. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options " -O -fsection-anchors -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Complex char
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cc_regs_fun (_Complex char r0, _Complex char r1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex char r2, _Complex char r3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex char r4, _Complex char r5,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex char r6, _Complex char r7);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_cc_regs_fun:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w7, \[x0\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w6, \[x0, 2\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w5, \[x0, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w4, \[x0, 6\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w3, \[x0, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w2, \[x0, 10\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w1, \[x0, 12\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w0, \[x0, 14]\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _cc_regs_fun
</span><span style='display:block; white-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;'>++_Complex char
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_cc_regs_fun (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return cc_regs_fun ((_Complex char) (1 + 1i), (_Complex char) (2 + 2i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex char) (3 + 3i), (_Complex char) (4 + 4i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex char) (5 + 5i), (_Complex char) (6 + 6i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex char) (7 + 7i), (_Complex char) (8 + 8i));
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Complex short
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cs_regs_fun (_Complex short r0, _Complex short r1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex short r2, _Complex short r3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex short r4, _Complex short r5,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex short r6, _Complex short r7);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_cs_regs_fun:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w7, \[x0, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w6, \[x0, 20\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w5, \[x0, 24\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w4, \[x0, 28\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w3, \[x0, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w2, \[x0, 36\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w1, \[x0, 40\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w0, \[x0, 44\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _cs_regs_fun
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Complex short
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_cs_regs_fun (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return cs_regs_fun ((_Complex short) (1 + 1i), (_Complex short) (2 + 2i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex short) (3 + 3i), (_Complex short) (4 + 4i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex short) (5 + 5i), (_Complex short) (6 + 6i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex short) (7 + 7i), (_Complex short) (8 + 8i));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Complex int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ci_regs_fun (_Complex int r0, _Complex int r1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex int r2, _Complex int r3,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex int r4, _Complex int r5,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex int r6, _Complex int r7);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_ci_regs_fun:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x7, \[x0, 48\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x6, \[x0, 56\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x5, \[x0, 64\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x4, \[x0, 72\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x3, \[x0, 80\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x2, \[x0, 88\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x1, \[x0, 96\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x0, \[x0, 104\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _ci_regs_fun
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Complex int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_ci_regs_fun (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return ci_regs_fun ((_Complex int) (1 + 1i), (_Complex int) (2 + 2i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex int) (3 + 3i), (_Complex int) (4 + 4i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex int) (5 + 5i), (_Complex int) (6 + 6i),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex int) (7 + 7i), (_Complex int) (8 + 8i));
</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/darwinpcs-d1.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d1.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 0000000..e2dd574
</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/darwinpcs-d1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,54 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we need this for the empty struct. */
</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 "-O -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Make sure we do no consume any registers in passing zero-sized entities */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef struct es {} Empty;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++use_no_regs (int a, Empty b, int c, Empty d, Empty e, int 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;'>++**call_use_no_regs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w2, 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w1, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _use_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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_use_no_regs (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Empty e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ use_no_regs (1, e, 2, e, e, 3);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Make sure we consume no stack in passing zero-sized entities. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_use_no_stack:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 108
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 1\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 106
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _use_no_stack
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++use_no_stack (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Empty i, char j, Empty k, char l);
</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;'>++call_use_no_stack (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Empty e;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ use_no_stack (0, 1, 2, 3, 4, 5, 6, 7, e, 'j', e, 'l');
</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/darwinpcs-d2-00.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-00.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 0000000..bd76856
</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/darwinpcs-d2-00.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,126 @@
</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 " -O -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* In each case we consume the parm registers with 8 ints, forcing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the test values to be spilled to the stack. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* The important thing here is that the chars are assigned to the stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * with no padding - so that they occupy bytes 0-8. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_char_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 113
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 112
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 7\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 111
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 6\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 110
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 5\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 109
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 108
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 3\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 107
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 2\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 106
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 1\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 105
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w7, 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w6, 6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w5, 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w4, 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w3, 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w2, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w1, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _char_packing
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char i, char j, char k, char l,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char m, char n, char o, char p,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char q);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void call_char_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Here we should occupy the first 7 short words on the stack. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_short_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 6\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 2\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w7, 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w6, 6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w5, 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w4, 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w3, 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w2, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w1, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _short_packing
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++short_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ short i, short j, short k, short l,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ short m);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void call_short_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ short_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 8, 9, 10, 11, 12);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Here we should occupy the first 3 ints on the stack. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_int_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w7, 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w6, 6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w5, 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w4, 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w3, 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w2, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w1, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _int_packing
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int i, int j, int k);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void call_int_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 8, 9, 10);
</span><span style='display:block; white-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/darwin/darwinpcs-d2-01.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-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 0000000..d21fd55
</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/darwinpcs-d2-01.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,115 @@
</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 " -O -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* In each case we consume the parm registers with 8 ints, forcing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the test values to be spilled to the stack. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* char short char short - everything on 2byte boundaries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_c_s_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 109
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 6\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 107
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 2\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 105
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w7, 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w6, 6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w5, 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w4, 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w3, 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w2, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w1, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _c_s_packing
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_s_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char i, short j, char k, short l,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char m);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void call_c_s_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ c_s_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'i', 8 , 'k', 9, 'm');
</span><span style='display:block; white-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;'>++**call_s_c_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 109
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 7\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 108
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 6\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 106
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 2\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w7, 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w6, 6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w5, 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w4, 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w3, 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w2, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w1, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _s_c_packing
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++s_c_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ short i, char j, short k, char l,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char m);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void call_s_c_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ s_c_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 8, 'j' , 9, 'l', 'm');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* 0, 2, 4, 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;'>++**call_csi_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 108
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 2\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 105
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strb w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w7, 7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w6, 6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w5, 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w4, 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w3, 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w2, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w1, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _csi_packing
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++csi_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char i, short j, int k, char l);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void call_csi_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ csi_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 'i', 8 , 9, 'l');
</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/darwinpcs-d2-02.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-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 0000000..55e5acd
</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/darwinpcs-d2-02.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,75 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we need this for complex literals. */
</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 "-O -fsection-anchors -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_cc_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex char i, _Complex char j);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We check that these values are not packed on the stack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_c_cc_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w[0-9]+, \[x[0-9]+\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrh w[0-9]+, \[x[0-9]+, 2\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _c_cc_packing
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_c_cc_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ c_cc_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex char) (1 + 1i),(_Complex char) (2 + 2i));
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++c_cs_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex short i, _Complex short j);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_c_cs_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w[0-9]+, \[x[0-9]+, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w[0-9]+, \[x[0-9]+, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _c_cs_packing
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_c_cs_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ c_cs_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex short) (1 + 1i),(_Complex short) (2 + 2i));
</span><span style='display:block; white-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 c_ci_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Complex int i, _Complex int j);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_c_ci_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[x[0-9]+, 12\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str x[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[x[0-9]+, 20\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str x[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _c_ci_packing
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_c_ci_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ c_ci_packing (0, 1, 2, 3, 4, 5, 6, 7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (_Complex int) (1 + 1i),(_Complex int) (2 + 2i));
</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/darwinpcs-d2-03.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-03.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 0000000..b0d2593d
</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/darwinpcs-d2-03.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,67 @@
</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;'>++/* { dg-additional-options "-O -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef union u { char a; short b; } U;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef struct sf { float a; float b; float c;} SF;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++u_packing (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ U i, U j);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We check that these values are not packed on the stack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_u_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** strh w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _u_packing
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_u_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ U x = { 'a' };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ u_packing (0, 1, 2, 3, 4, 5, 6, 7, x, 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;'>++/* But a homogeneous float aggregate is treated as if it were the contained
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ floats. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++sf_packing (float a, float b, float c, float d,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ float e, float f, float g, float h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SF i, SF j);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* So the stores to sp+12 and 20 pack the floats onto the stack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_sf_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s1, 1.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str s1, \[sp, 48\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s2, 2.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str s2, \[sp, 52\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 1077936128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[sp, 48\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str x[0-9]+, \[sp, 12\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 20\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str x[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s7, 7.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s6, 6.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s5, 5.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s4, 4.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s3, 3.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** movi v0.2s, #0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _sf_packing
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_sf_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SF A = {1.0F, 2.0F, 3.0F};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sf_packing (0.0F, 1.0F, 2.0F, 3.0F, 4.0F, 5.0F, 6.0F, 7.0F,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ A, A);
</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/darwinpcs-d2-04.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d2-04.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 0000000..33c60c6
</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/darwinpcs-d2-04.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,66 @@
</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;'>++/* { dg-additional-options "-O -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef short v2hi __attribute__ ((vector_size (4)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef int v4si __attribute__ ((vector_size (16)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++v4si t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int al = __alignof__ (t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++v2hi_packing (v2hi a, v2hi b, v2hi c, v2hi d, v2hi e, v2hi f, v2hi g, v2hi h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ v2hi i, v2hi j);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We check that v2hi is packed on the stack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_v2hi_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** movk w[0-9]+, 0x2, lsl 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w7, w[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w6, w[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w5, w[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w4, w[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w3, w[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w2, w[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w1, w[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _v2hi_packing
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_v2hi_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ v2hi x = {1,2};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ v2hi_packing (x, x, x, x, x, x, x, x, x, 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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++v4si_packing (int r0, int r1, int r2, int r3, int r4, int r5, int r6, int r7,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ v4si a, v4si b, v4si c, v4si d, v4si e, v4si f, v4si g, v4si h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int stack, v4si i, v4si j);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Test that we align a 16b vector on the stack.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_v4si_packing:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x0, lC0@PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr q[0-9]+, \[x[0-9]+, #lC0@PAGEOFF\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str q[0-9]+, \[sp, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str q[0-9]+, \[sp, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _v4si_packing
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_v4si_packing (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ v4si x = {3,1,2,4};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ v4si_packing (0, 1, 2, 3, 4, 5, 6, 7, x, x, x, x, x, x, x, x, 42, x, x);
</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/darwinpcs-d3.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d3.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 0000000..21c6b69
</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/darwinpcs-d3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,40 @@
</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 "-O " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* This will fail, because of issue #74
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**foo:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** cmp w0, w1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** cset w0, eq
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++foo (char a, unsigned char b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return a == b ? 1 : 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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bar (short a, unsigned short b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return a == b ? 1 : 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;'>++void pop (char *, unsigned char *, short *, unsigned short *);
</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;'>++ char a;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned char b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ short c;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned short d;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pop (&a, &b, &c, &d);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result = foo (a, b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result += bar (c, d);
</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;'>+diff --git gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d4.c gcc/testsuite/gcc.target/aarch64/darwin/darwinpcs-d4.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 0000000..2aab482
</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/darwinpcs-d4.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,62 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-do compile } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we need this for __int128. */
</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 "-O -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we should use x0, x1 and x2 - not skip x1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**foo:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** eor x0, x0, x1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** orr x0, x0, x2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** cmp x0, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** cset w0, eq
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++foo (unsigned long long x,unsigned __int128 y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return x == y ? 1 : 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 should use x0, x1 and x2.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**bar:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** eor x2, x2, x0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** orr x2, x2, x1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** cmp x2, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** cset w0, eq
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bar (unsigned __int128 y, unsigned long long x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return x == y ? 1 : 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;'>++int fooo (unsigned long long x, unsigned __int128 y);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int baro (unsigned __int128 y, unsigned long long x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we should use x0, x1 and x2 in both calls.
</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;'>++** mov x1, 25
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov x2, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov x0, 10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _fooo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov x2, 10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov x0, 25
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov x1, 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _baro
</span><span style='display:block; white-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;'>++ unsigned long long x = 10;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned __int128 y = 25;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int r = fooo (x, y);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ r += baro (y, x);
</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-00.c gcc/testsuite/gcc.target/aarch64/darwin/float128-00.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 0000000..29aec80
</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-00.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,38 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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;'>++/* We use the sections anchors to make the code easier to match. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options " -O2 -fsection-anchors " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we should just pass q0 and q1 through
</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;'>++** bl ___addtf3
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++foo (_Float128 a, _Float128 b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return a + b;
</span><span style='display:block; white-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;'>++/* we should just load q0 and q1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_foo:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr q1, \[x[0-9]+\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr q0, \[x[0-9]+\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** b _foo
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_foo (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return foo (1.0, 2.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/homogeneous-aggr.c gcc/testsuite/gcc.target/aarch64/darwin/homogeneous-aggr.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 0000000..bee9755
</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/homogeneous-aggr.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,25 @@
</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 "-O " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef struct sf { float a; float b; float c;} SF;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++hmg_f (SF a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* we should use registers for each item
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_hmg_f:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s0, 1.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s1, 2.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov s2, 3.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _hmg_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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_hmg_f (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ SF A = { 1.0F, 2.0F, 3.0F };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ hmg_f (A);
</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/k+r-00.c gcc/testsuite/gcc.target/aarch64/darwin/k+r-00.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 0000000..443fb96
</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/k+r-00.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,28 @@
</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;'>++/* { dg-options "-std=gnu99 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-O2 -fsection-anchors" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* What we care about here is that we get int loads from sp, sp+4 and sp+8.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This code will change when we implement darwinpcs d.3 - since the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * promotions will no longer be needed (although they are harmless).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**test_k_r00:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrsb w[0-9]+, \[sp, 4\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldrsb w[0-9]+, \[sp\]
</span><span style='display:block; white-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;'>++const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++test_k_r00 (r0, r1, r2, r3, r4, r5, r6, r7, a, b, c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char r0, r1, r2, r3, r4, r5, r6, r7;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char a;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ char b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *c;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (a > 10 && b < 100)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return c;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return (char *)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/tu-accesses-0.c gcc/testsuite/gcc.target/aarch64/darwin/tu-accesses-0.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 0000000..ba5cc49
</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/tu-accesses-0.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,82 @@
</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 "-O -fcommon -mno-pc-relative-literal-loads" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* This checks that we perform the correct accesses for file-scope vars
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ including GOT indirections. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++double gd = 1.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__weak__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++double wd = 2.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__visibility__("hidden")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++double hd = 3.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__weak__, __visibility__("hidden")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++double whd = 4.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern double ed;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++double cd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static double sd = 5.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ double a;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ double b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++} two_dbls = { 1.0, 42.0 };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++double arr[3] = { 6.0, 7.0, 8.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;'>++**test:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, _gd@PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+, #_gd@PAGEOFF\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, lC0@PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+, #lC0@PAGEOFF\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, _wd@GOTPAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[x[0-9]+, _wd@GOTPAGEOFF\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, _hd@PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+, #_hd@PAGEOFF\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, _whd@PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+, #_whd@PAGEOFF\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, _ed@GOTPAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[x[0-9]+, _ed@GOTPAGEOFF\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, _cd@GOTPAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[x[0-9]+, _cd@GOTPAGEOFF\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fmov d[0-9]+, 5.0e\+0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, _two_dbls@PAGE\+8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+, #_two_dbls@PAGEOFF\+8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** adrp x[0-9]+, _arr@PAGE\+16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr d[0-9]+, \[x[0-9]+, #_arr@PAGEOFF\+16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** fadd d[0-9]+, d[0-9]+, d[0-9]+
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++double test (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ double x = 123456123456123456.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += gd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += wd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += hd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += whd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += ed;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += cd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += sd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += two_dbls.b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x += arr[2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return x;
</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/variadic-00.c gcc/testsuite/gcc.target/aarch64/darwin/variadic-00.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 0000000..6420fca
</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/variadic-00.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,91 @@
</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;'>++/* We use the sections anchors to make the code easier to match. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options " -O -fsection-anchors -fno-schedule-insns -fno-schedule-insns2 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdarg.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* What we care about here is that the load of w0 is from the incoming [SP]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**fooi:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub sp, sp, #16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** add x[0-9]+, sp, 24
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str x[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w0, \[sp, 16\]
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fooi (int a, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int x;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_list ap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_start(ap, a);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = va_arg(ap, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_end(ap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 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;'>++__attribute__((__noinline__)) int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fooo (char 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;'>++**call_foo:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _fooo
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_foo (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int y = fooo (1, 42);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 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;'>++/* What we care about here is that the load of w0 is from the incoming [SP+8]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**bari:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub sp, sp, #16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** add x[0-9]+, sp, 32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str x[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr w0, \[sp, 24\]
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bari (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int i, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int x;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_list ap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_start(ap, i);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = va_arg(ap, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_end(ap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 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;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**call_bar:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 8\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bl _baro
</span><span style='display:block; white-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;'>++__attribute__((__noinline__)) int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++baro (int a, int b, int c, int d, int e, int f, int g, int h,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int i, ...);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__)) int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_bar (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int y = baro (1, 2, 3, 4, 5, 6, 7, 8, 9, 42);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return y;
</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/variadic-01.c gcc/testsuite/gcc.target/aarch64/darwin/variadic-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 0000000..c055aea
</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/variadic-01.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,102 @@
</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;'>++/* 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;'>++/* We use the sections anchors to make the code easier to match. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options " -O2 -fsection-anchors " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdarg.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* What we care about here is that q0 and q1 are loaded from incoming sp and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sp+16.
</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;'>++** ldr q1, \[sp, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr q0, \[sp, 48\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl ___addtf3
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++foo (int n, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Float128 a, b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_list ap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_start(ap, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a = va_arg(ap, _Float128);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ b = va_arg(ap, _Float128);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_end(ap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return a + b;
</span><span style='display:block; white-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;'>++**call_foo:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str q[0-9]+, \[sp, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str q[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _foo
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_foo (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return foo (2, (_Float128)1.0, (_Float128)2.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;'>++/* What we care about here is that q0 and q1 are loaded from incoming sp and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sp+32 (with the int at sp+16).
</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;'>++** ldr w[0-9]+, \[x[0-9]+, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr q0, \[x[0-9]+\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr q1, \[x[0-9]+, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl ___addtf3
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bar (int n, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _Float128 a, b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_list ap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_start(ap, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a = va_arg(ap, _Float128);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ n = va_arg(ap, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (n != 42)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ b = va_arg(ap, _Float128);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_end(ap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return a + b;
</span><span style='display:block; white-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;'>++**call_bar:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str q[0-9]+, \[sp, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str q[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _bar
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_bar (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return bar (2, (_Float128)1.0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 42, (_Float128)2.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/variadic-02.c gcc/testsuite/gcc.target/aarch64/darwin/variadic-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 0000000..9d796bfc0
</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/variadic-02.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,104 @@
</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;'>++/* we need this for __int128. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-options "-std=gnu99 " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* We use the sections anchors to make the code easier to match. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options " -O2 -fsection-anchors " } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { check-function-bodies "**" "" "" { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdarg.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* What we care about here is that we load the values from incoming sp and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sp + 16.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++**foo:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub sp, sp, #16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldp x[0-9]+, x[0-9]+, \[sp, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[sp, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[sp, 40\]
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__int128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++foo (int n, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __int128 a, b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_list ap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_start(ap, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a = va_arg(ap, __int128);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ b = va_arg(ap, __int128);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_end(ap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return a + b;
</span><span style='display:block; white-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;'>++**call_foo:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** stp x[0-9]+, x[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** stp x[0-9]+, x[0-9]+, \[sp, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _foo
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__int128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_foo (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return foo (2, (__int128)1, (__int128)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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* sp = one int128, sp+16 = int sp + 32 = other int128
</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;'>++** sub sp, sp, #16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldp x[0-9]+, x[0-9]+, \[sp, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[sp, 48\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ldr x[0-9]+, \[sp, 56\]
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__int128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++bar (int n, ...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __int128 a, b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_list ap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_start(ap, n);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ a = va_arg(ap, __int128);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ n = va_arg(ap, int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ b = va_arg(ap, __int128);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ va_end(ap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return a + b;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__int128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++baro (int 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;'>++**call_bar:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w[0-9]+, 42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** mov w0, 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** stp x[0-9]+, x[0-9]+, \[sp\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** str w[0-9]+, \[sp, 16\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** stp x[0-9]+, x[0-9]+, \[sp, 32\]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** bl _baro
</span><span style='display:block; white-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;'>++__attribute__((__noinline__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__int128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++call_bar (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return baro (2, (__int128)1, 42, (__int128)2);
</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/dbl_mov_immediate_1.c gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ba6a230..cc30dd5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/dbl_mov_immediate_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -41,8 +41,10 @@ double d4(void)
</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 "movi\td\[0-9\]+, #?0" 1 } } */
</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\tx\[0-9\]+, \.LC\[0-9\]" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times "ldr\td\[0-9\]+, \\\[x\[0-9\], #:lo12:\.LC\[0-9\]\\\]" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "adrp\tx\[0-9\]+, \.LC\[0-9\]" 2 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "ldr\td\[0-9\]+, \\\[x\[0-9\], #:lo12:\.LC\[0-9\]\\\]" 2 { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "adrp\tx\[0-9\]+, lC\[0-9\]@PAGE" 2 { target *-*-darwin* } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "ldr\td\[0-9\]+, \\\[x\[0-9\], #lC\[0-9\]@PAGEOFF\\\]" 2 { target *-*-darwin* } } } */
</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 "fmov\td\[0-9\]+, 1\\\.5e\\\+0" 1 } } */
</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/dwarf-cfa-reg.c gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae5b379..8a691ad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/dwarf-cfa-reg.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;'>+ /* Verify that CFA register is restored to SP after FP is restored. */
</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 cfi insn support yet" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O0 -gdwarf-2" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".cfi_restore 30" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".cfi_restore 29" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/extend-syntax.c gcc/testsuite/gcc.target/aarch64/extend-syntax.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 0000000..23fa9f4
</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/extend-syntax.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,120 @@
</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;'>++// Hits *add_uxtdi_shift2 (*add_uxt<mode>_shift2).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** add1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** add x0, x0, w1, uxtw 3
</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;'>++unsigned long long *add1(unsigned long long *p, unsigned x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return p + 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;'>++// Hits *add_zero_extendsi_di (*add_<optab><ALLX:mode>_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** add2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** add x0, x0, w1, uxtw
</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;'>++unsigned long long add2(unsigned long long x, unsigned y)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</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;'>++// Hits *add_extendsi_shft_di (*add_<optab><ALLX:mode>_shft_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** add3:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** add x0, x0, w1, sxtw 3
</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;'>++double *add3(double *p, int x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return p + 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;'>++// Hits *sub_zero_extendsi_di (*sub_<optab><ALLX:mode>_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub1:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub x0, x0, w1, uxtw
</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;'>++unsigned long long sub1(unsigned long long x, unsigned n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return x - 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;'>++// Hits *sub_uxtdi_shift2 (*sub_uxt<mode>_shift2).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub2:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub x0, x0, w1, uxtw 3
</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;'>++double *sub2(double *x, unsigned n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return x - 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;'>++// Hits *sub_extendsi_shft_di (*sub_<optab><ALLX:mode>_shft_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub3:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++** sub x0, x0, w1, sxtw 3
</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;'>++double *sub3(double *p, int n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return p - 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;'>++// Hits *adds_zero_extendsi_di (*adds_<optab><ALLX:mode>_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int adds1(unsigned long long x, unsigned y)
</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 "adds\tx\[0-9\]+, x\[0-9\]+, w\[0-9\]+, uxtw" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned long long l = x + y;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return !!l;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// Hits *adds_extendsi_shift_di (*adds_<optab><ALLX:mode>_shift_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int adds2(long long x, int y)
</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 "adds\tx\[0-9\]+, x\[0-9\]+, w\[0-9\]+, sxtw 3" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ long long t = x + ((long long)y << 3);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return !!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;'>++// Hits *subs_zero_extendsi_di (*subs_<optab><ALLX:mode>_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unsigned long long z;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int subs1(unsigned long long x, unsigned y)
</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 "subs\tx\[0-9\]+, x\[0-9\]+, w\[0-9\]+, uxtw" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned long long t = x - y;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ z = t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return !!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;'>++// Hits *subs_extendsi_shift_di (*subs_<optab><ALLX:mode>_shift_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unsigned long long *w;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int subs2(unsigned long long *x, int y)
</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 "subs\tx\[0-9\]+, x\[0-9\]+, w\[0-9\]+, sxtw 3" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned long long *t = x - y;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ w = t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return !!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;'>++// Hits *cmp_swp_zero_extendsi_regdi (*cmp_swp_<optab><ALLX:mode>_reg<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int cmp(unsigned long long x, unsigned y)
</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 "cmp\tx\[0-9\]+, w\[0-9\]+, uxtw" 1 } } */
</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;'>++// Hits *cmp_swp_extendsi_shft_di (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int cmp2(unsigned long long x, int y)
</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 "cmp\tx\[0-9\]+, w\[0-9\]+, sxtw 3" 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return x == ((unsigned long long)y << 3);
</span><span style='display:block; white-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 { check-function-bodies "**" "" "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 478875f..9a2b2e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/inline-lrint_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,4 +15,4 @@ TEST (fllf, float , long long, l)
</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 "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 "fcvtzs\tx\[0-9\]+, \[d,s\]\[0-9\]+" 6 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-not "bl" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not "bl\t" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/ldp_stp_13.c gcc/testsuite/gcc.target/aarch64/ldp_stp_13.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9cc3942..52c90a9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/ldp_stp_13.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/ldp_stp_13.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-require-effective-target arm_mabi_ilp32 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -mabi=ilp32" } */
</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;'>+diff --git gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d5e9200..7f504ad 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/no-inline-lrint_1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14,6 +14,6 @@ TEST (dlld, double, long long, l)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TEST (fllf, float , long long, l)
</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 "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/pr62308.c gcc/testsuite/gcc.target/aarch64/pr62308.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1cf6e21..4c1a733 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr62308.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr62308.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 "Darwin platforms do not support big-endian arm64" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-mbig-endian" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef int __attribute__((vector_size(16))) v4si;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr78255.c gcc/testsuite/gcc.target/aarch64/pr78255.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b078cf3..fc5d859 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr78255.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr78255.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 "Darwin platforms do not support tiny" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O2 -mcmodel=tiny" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern int bar (void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr78561.c gcc/testsuite/gcc.target/aarch64/pr78561.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 048d2d7..635214e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr78561.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr78561.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 "Darwin platforms do not support tiny" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-Og -O3 -mcmodel=tiny" } */
</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;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr80295.c gcc/testsuite/gcc.target/aarch64/pr80295.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b3866d8..7a7f127 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr80295.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr80295.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-require-effective-target arm_mabi_ilp32 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-mabi=ilp32" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void f (void *b)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr87305.c gcc/testsuite/gcc.target/aarch64/pr87305.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8beaa91..c3f98e8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr87305.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr87305.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 "Darwin platforms do not support big-endian arm64" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-Ofast -mbig-endian -w" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int cc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr92424-1.c gcc/testsuite/gcc.target/aarch64/pr92424-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c413a2c..59f7435 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr92424-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr92424-1.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-options "-O1" } */
</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;'>++/* { 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;'>+ /* Note: this test only checks the instructions in the function bodies,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ not the placement of the patch label or nops before the futncion. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr94201.c gcc/testsuite/gcc.target/aarch64/pr94201.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6917616..051c742 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr94201.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr94201.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-require-effective-target arm_mabi_ilp32 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-mcmodel=tiny -mabi=ilp32 -fPIC" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern int bar (void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr94577.c gcc/testsuite/gcc.target/aarch64/pr94577.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6f2d361..6a52e52 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr94577.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr94577.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-require-effective-target arm_mabi_ilp32 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-mcmodel=large -mabi=ilp32" } */
</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;'>+diff --git gcc/testsuite/gcc.target/aarch64/pr97535.c gcc/testsuite/gcc.target/aarch64/pr97535.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7d4db48..6f1ee80 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/pr97535.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/pr97535.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13,4 +13,4 @@ void setRaw(const void *raw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* At any optimization level this should be a function call
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and not inlined. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "bl\tmemcpy" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "bl\t_*memcpy" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8eec682..193c657 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-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 "-Ofast" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no system variant_pcs support" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__ ((__simd__ ("notinbranch")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__ ((__nothrow__ , __leaf__ , __const__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,5 +13,5 @@ void bar(double * f, int n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ f[i] = foo(f[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;'>+-/* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\.variant_pcs\t_?foo} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnN2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 95f6a68..6fd5773 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-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 "-Ofast" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no system variant_pcs support" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__ ((__simd__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__ ((__nothrow__ , __leaf__ , __const__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17,8 +18,8 @@ double foo(double x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return x * x / 3.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-not {\.variant_pcs\tfoo} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\.variant_pcs\t_?foo} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnM1v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnM2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnN1v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnN2v_foo} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eddcef3..62ee482 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.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 "-Ofast" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no system variant_pcs support" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__ ((__simd__ ("notinbranch")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __attribute__ ((__nothrow__ , __leaf__ , __const__))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12,5 +13,5 @@ void foo(double *f, int n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ f[i] = log(f[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;'>+-/* { dg-final { scan-assembler-not {\.variant_pcs\tlog} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_log} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not {\.variant_pcs\t_?log} } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times {\.variant_pcs\t_?_ZGVnN2v_log} 1 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6885894..ebba23c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-check-cfa-1.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-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-require-effective-target supports_stack_clash_protection } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no cfi insn support yet" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define SIZE 128*1024
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "stack-check-prologue.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5796a53..e15fbd6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-check-cfa-2.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-check-cfa-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-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-require-effective-target supports_stack_clash_protection } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no cfi insn support yet" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define SIZE 1280*1024 + 512
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "stack-check-prologue.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c4b7bb6..ccaf2e6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/stack-check-cfa-3.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-options "-O3 -fopenmp-simd -march=armv8-a+sve -fstack-clash-protection --param stack-clash-protection-guard-size=16 -funwind-tables" } */
</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 "no cfi insn support yet" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "stack-check-prologue-16.c"
</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/subs3.c gcc/testsuite/gcc.target/aarch64/subs3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 59581bf..0470a3b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/subs3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/subs3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,4 +58,4 @@ 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 "subs\tx\[0-9\]+, x\[0-9\]+, x\[0-9\]+, sxtw" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-times "subs\tx\[0-9\]+, x\[0-9\]+, w\[0-9\]+, sxtw" 2 } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/subsp.c gcc/testsuite/gcc.target/aarch64/subsp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6ef6b2c..341b83d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/subsp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/subsp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16,4 +16,4 @@ f2 (int *x, int 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;'>+ /* { dg-final { scan-assembler "sub\tsp, sp, x\[0-9\]*\n" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler "sub\tsp, sp, x\[0-9\]*, sxtw 4\n" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "sub\tsp, sp, w\[0-9\]*, sxtw 4\n" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 77b84ee..a8c98bd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/aarch64-sve.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } then {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib gcc-dg.exp
</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/acle/aarch64-sve-acle-asm.exp gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6cb81a1..638b090 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,6 +24,11 @@ if {![istarget aarch64*-*-*] } {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib gcc-dg.exp
</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/acle/aarch64-sve-acle.exp gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f86b603..9b96551 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/acle/aarch64-sve-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib gcc-dg.exp
</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/pcs/aarch64-sve-pcs.exp gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 63f1f4e..1e4fc32 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,10 @@ if {![istarget aarch64*-*-*] } then {
</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 { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib gcc-dg.exp
</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/sve2/aarch64-sve2.exp gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b142771..57bc58a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve2/aarch64-sve2.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } then {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib gcc-dg.exp
</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/sve2/acle/aarch64-sve2-acle-asm.exp gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b3189fe..9460188 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle-asm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,6 +24,11 @@ if {![istarget aarch64*-*-*] } {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib gcc-dg.exp
</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/sve2/acle/aarch64-sve2-acle.exp gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0fbaae5..4d74e75 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/sve2/acle/aarch64-sve2-acle.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,11 @@ if {![istarget aarch64*-*-*] } {
</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;'>++# Darwin doesn't support sve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if { [istarget *-*-darwin*] } then {
</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;'>+ # Load support procs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ load_lib gcc-dg.exp
</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/symbol-range-tiny.c gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fc6a4f3..2d9e94b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.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 link } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "no mcmodel tiny" *-*-darwin* } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options "-O3 -save-temps -mcmodel=tiny" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ char fixed_regs[0x00080000];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/aarch64/uaddw-3.c gcc/testsuite/gcc.target/aarch64/uaddw-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 39cbd6b..b4ed187 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/aarch64/uaddw-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/aarch64/uaddw-3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,10 +1,11 @@
</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 "-O3" } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-additional-options "-fno-signed-char" { target *-*-darwin* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma GCC target "+nosve"
</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;'>+-t6(int len, void * dummy, char * __restrict x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++t6(int len, void * dummy, unsigned char * __restrict x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ len = len & ~31;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned short result = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/i386/pr89261.c gcc/testsuite/gcc.target/i386/pr89261.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c5c4273..b599d49 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/i386/pr89261.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/i386/pr89261.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,6 +5,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef double __v2df __attribute__ ((vector_size (16), aligned (1 << 28)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __v2df foo = { 1.0, 2.0 };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-error {alignment of 'foo' is greater than maximum object file alignment 32768} "" { target *-*-darwin* } .-1 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-error {alignment of 'foo' is greater than maximum object file alignment 32768} "" { target { *-*-darwin[89]* *-*-darwin10* } } .-1 } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler "\.align\[ \t]+268435456" { target { ! *-*-darwin* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler "\.align\[ \t]+28" { target { *-*-darwin1[1-9]* *-*-darwin2* } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gcc.target/i386/pr92807-1.c gcc/testsuite/gcc.target/i386/pr92807-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00f9293..02a0654 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gcc.target/i386/pr92807-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gcc.target/i386/pr92807-1.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8,4 +8,4 @@ abs2 (unsigned int a)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return (a+s)^s;
</span><span style='display:block; white-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-not "leal" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-final { scan-assembler-not "leal\[\t \]*\[^(\]*\\((.*),\\1\\)" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gfortran.dg/coarray/caf.exp gcc/testsuite/gfortran.dg/coarray/caf.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cd2a7ed..64a07d8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gfortran.dg/coarray/caf.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gfortran.dg/coarray/caf.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,6 +28,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Load procedures from common libraries.
</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 atomic-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If a testcase doesn't have special options, use these.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,6 +48,7 @@ global gfortran_test_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global gfortran_aux_module_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gfortran_test_path $srcdir/$subdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set gfortran_aux_module_flags $DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ proc dg-compile-aux-modules { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global gfortran_test_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global gfortran_aux_module_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,9 +71,21 @@ 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:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Add -latomic only where supported. Assume built-in support elsewhere.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set maybe_atomic_lib ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [check_effective_target_libatomic_available] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set maybe_atomic_lib "-latomic"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #set maybe_atomic_lib "-latomic"
</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 maybe_atomic_lib "[atomic_link_flags [get_multilibs ${TOOL_OPTIONS}]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set maybe_atomic_lib "[atomic_link_flags [get_multilibs]]"
</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 maybe_atomic_lib ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set t [get_multilibs]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ puts "maybe al $maybe_atomic_lib ml $t"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set maybe_atomic_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;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/gfortran.dg/dg.exp gcc/testsuite/gfortran.dg/dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 89a4da5..e009365 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/gfortran.dg/dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/gfortran.dg/dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,6 +18,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Load support procs.
</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 atomic-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If a testcase doesn't have special options, use these.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,12 +54,30 @@ 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:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# coarray tests might need libatomic. Assume that it is either not needed or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# provided by builtins if it's not available.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if [check_effective_target_libatomic_available] {
</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 maybe_atomic_lib "[atomic_link_flags [get_multilibs ${TOOL_OPTIONS}]]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set maybe_atomic_lib "[atomic_link_flags [get_multilibs]]"
</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 maybe_atomic_lib ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set t [get_multilibs]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ puts "dg set al $maybe_atomic_lib ml $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;'>++puts "DEFAULT_FFLAGS $DEFAULT_FFLAGS"
</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;'>+ gfortran-dg-runtest [lsort \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] "" $DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ] $maybe_atomic_lib $DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gfortran-dg-runtest [lsort \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- [glob -nocomplain $srcdir/$subdir/g77/*.\[fF\] ] ] "" $DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [glob -nocomplain $srcdir/$subdir/g77/*.\[fF\] ] ] $maybe_atomic_lib $DEFAULT_FFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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;'>+diff --git gcc/testsuite/lib/asan-dg.exp gcc/testsuite/lib/asan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2124607..fbeca88 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/asan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/asan-dg.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,7 +75,7 @@ proc asan_link_flags { paths } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || [file exists "${gccpath}/libsanitizer/asan/.libs/libasan.${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/asan/ "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- append flags " -L${gccpath}/libsanitizer/asan/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ append flags " -B${gccpath}/libsanitizer/asan/.libs "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ append ld_library_path ":${gccpath}/libsanitizer/asan/.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;'>+@@ -104,6 +104,8 @@ 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 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;'>+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 e9a30af..6da0f62 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/scanasm.exp gcc/testsuite/lib/scanasm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d5f2be4..6ece168 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/scanasm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/scanasm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -559,7 +559,7 @@ proc scan-lto-assembler { args } {
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-proc parse_function_bodies { filename result } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc parse_ELF_function_bodies { filename 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Regexp for the start of a function definition (name in \1).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -589,6 +589,44 @@ proc parse_function_bodies { filename result } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close $fd
</span><span style='display:block; white-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 parse_MACHO_function_bodies { filename 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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Regexp for the start of a function definition (name in \1).
</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;'>++ set start {^LFB[0-9]+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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 {^LFE[0-9]+}
</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;'>++ set fluff3 {^L[0-9ACESV]}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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 { !$in_function && [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;'>++ } elseif { $in_function == 1 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { [regexp $start $line] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set in_function 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</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 == 2 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { [regexp $terminator $line] } {
</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] && ![regexp $fluff3 $line] } {
</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;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ close $fd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # FUNCTIONS is an array that maps function names to function bodies.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Return true if it contains a definition of function NAME and if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # that definition matches BODY_REGEXP.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -616,6 +654,14 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ error "too many arguments to check-function-bodies"
</span><span style='display:block; white-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 isELF 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # some targets have a __USER_LABEL_PREFIX__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set needsULP 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { [istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set isELF 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set needsULP 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 { [llength $args] >= 3 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set required_flags [lindex $args 2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -672,7 +718,11 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ remote_upload host "$filename"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { [file exists $output_filename] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- parse_function_bodies $output_filename functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { $isELF } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ parse_ELF_function_bodies $output_filename functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ parse_MACHO_function_bodies $output_filename functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set have_bodies 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ verbose -log "$testcase: output file does not exist"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -717,6 +767,9 @@ proc check-function-bodies { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { $xfail_all || [string equal $selector "F"] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setup_xfail "*-*-*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { $needsULP } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set function_name "_$function_name"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set testname "$testcase check-function-bodies $function_name"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { !$have_bodies } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unresolved $testname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/target-libpath.exp gcc/testsuite/lib/target-libpath.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9882a4e..69073a0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/target-libpath.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/target-libpath.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,6 +67,7 @@ proc set_ld_library_path_env_vars { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global orig_dyld_library_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global orig_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global orig_gcc_exec_prefix
</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;'>+ global env
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Save the original GCC_EXEC_PREFIX.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -133,6 +134,7 @@ proc set_ld_library_path_env_vars { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Doing this is somewhat of a hack as ld_library_path gets repeated in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # SHLIB_PATH and LD_LIBRARY_PATH when unix_load sets these variables.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { ![istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { $orig_ld_library_path_saved } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setenv LD_LIBRARY_PATH "$ld_library_path:$orig_ld_library_path"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -166,11 +168,23 @@ proc set_ld_library_path_env_vars { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setenv LD_LIBRARY_PATH_64 "$ld_library_path"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if { $orig_dyld_library_path_saved } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- setenv DYLD_LIBRARY_PATH "$ld_library_path:$orig_dyld_library_path"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- setenv DYLD_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;'>++ if { [istarget *-*-darwin*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { [info exists ENABLE_DARWIN_AT_RPATH] || [istarget *-*-darwin1\[5-9\]*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || [istarget *-*-darwin2*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Either we are not using DYLD_LIBRARY_PATH or we're on a version of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # OS for which it is not passed through system exes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if [info exists env(DYLD_LIBRARY_PATH)] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsetenv DYLD_LIBRARY_PATH
</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;'>++ if { $orig_dyld_library_path_saved } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ setenv DYLD_LIBRARY_PATH "$ld_library_path:$orig_dyld_library_path"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ setenv DYLD_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;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { [istarget *-*-cygwin*] || [istarget *-*-mingw*] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { $orig_path_saved } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ setenv PATH "$ld_library_path:$orig_path"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -179,6 +193,7 @@ proc set_ld_library_path_env_vars { } {
</span><span style='display:block; white-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;'>++ verbose -log "set paths"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ verbose -log "LD_LIBRARY_PATH=[getenv LD_LIBRARY_PATH]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ verbose -log "LD_RUN_PATH=[getenv LD_RUN_PATH]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ verbose -log "SHLIB_PATH=[getenv SHLIB_PATH]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/lib/target-supports.exp gcc/testsuite/lib/target-supports.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1aa64a5..3087f44 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/lib/target-supports.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/lib/target-supports.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7535,7 +7535,7 @@ proc check_effective_target_section_anchors { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return [check_cached_effective_target section_anchors {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ expr { [istarget powerpc*-*-*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || [istarget arm*-*-*]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- || [istarget aarch64*-*-*] }}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || ([istarget aarch64*-*-*] && ![istarget aarch64*-*-darwin*]) }}]
</span><span style='display:block; white-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 atomic operations on "int_128" values.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9022,7 +9022,14 @@ proc check_effective_target_gas { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set status [remote_exec host "$gcc_as" "-v /dev/null"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set as_output [lindex $status 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { [ string first "GNU" $as_output ] >= 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- set use_gas_saved 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Some Darwin versions have an assembler which is based on an old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # version of GAS (and reports GNU assembler in its -v output) but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # but doesn't support many of the modern GAS features.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { [ string first "cctools" $as_output ] >= 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set use_gas_saved 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set use_gas_saved 1
</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 use_gas_saved 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10281,6 +10288,61 @@ proc check_effective_target_arm_v8_3a_bkey_directive { } {
</span><span style='display:block; white-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 executing the Armv8.1-M Mainline Low
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Overhead Loop, 0 otherwise. The test is valid for ARM.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc check_effective_target_arm_v8_1_lob_ok { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { ![check_effective_target_arm_cortex_m] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return [check_runtime arm_v8_1_lob_hw_available {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ main (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { int i = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ asm ("movw r3, #10\n\t" /* movs? */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "dls lr, r3" : : : "r3", "lr");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ loop:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ i++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ asm goto ("le lr, %l0" : : : "lr" : loop);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return i != 10;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } "-march=armv8.1-m.main -mthumb" ]
</span><span style='display:block; white-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 this is an ARM target where Thumb-2 is used without
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# options added by the test and the target does not support executing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the Armv8.1-M Mainline Low Overhead Loop, 0 otherwise. The test is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# valid for ARM.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc check_effective_target_arm_thumb2_no_arm_v8_1_lob { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { [check_effective_target_arm_thumb2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && ![check_effective_target_arm_v8_1_lob_ok] } {
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Return 1 if this is an ARM target where -mthumb causes Thumb-2 to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# used and the target does not support executing the Armv8.1-M
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Mainline Low Overhead Loop, 0 otherwise. The test is valid for ARM.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc check_effective_target_arm_thumb2_ok_no_arm_v8_1_lob { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { [check_effective_target_arm_thumb2_ok]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ && ![check_effective_target_arm_v8_1_lob_ok] } {
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Return 1 if this is an ARM target where -mabi=ilp32 can be used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++proc check_effective_target_arm_mabi_ilp32 { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return [check_no_compiler_messages_nocache arm_mabi_ilp32 assembly {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int main() { return 0; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } "-mabi=ilp32"]
</span><span style='display:block; white-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 1 if the target is using glibc, 0 otherwise.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ proc check_effective_target_glibc { } {
</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 015601c..f4ab29e 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;'>+@@ -17,6 +17,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Return 1 if compilation with -fsanitize=undefined is error-free for trivial
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # code, 0 otherwise.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set orig_ubsan_options_saved 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set orig_ubsan_options 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ proc check_effective_target_fsanitize_undefined {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return [check_runtime fsanitize_undefined {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int main (void) { return 0; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -74,6 +77,17 @@ proc ubsan_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 ubsan_saved_TEST_ALWAYS_FLAGS
</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;'>++
</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;'>++ if [info exists env(UBSAN_OPTIONS)] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set orig_ubsan_options "$env(UBSAN_OPTIONS)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set orig_ubsan_options_saved 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;'>++ setenv UBSAN_OPTIONS color=never
</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;'>+@@ -109,6 +123,14 @@ proc ubsan_finish { 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 ubsan_saved_library_path
</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 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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if { $orig_ubsan_options_saved } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ setenv UBSAN_OPTIONS "$orig_ubsan_options"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } elseif [info exists env(UBSAN_OPTIONS)] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsetenv UBSAN_OPTIONS
</span><span style='display:block; white-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 [info exists ubsan_saved_ALWAYS_CXXFLAGS ] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ALWAYS_CXXFLAGS $ubsan_saved_ALWAYS_CXXFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bdaef98..b28788d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/obj-c++.dg/gnu-api-2-class-meta.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/gnu-api-2-class-meta.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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 "No API#2 pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "API unsupported" { arm64*-*-darwin* aarch64*-*-darwin* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { 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/obj-c++.dg/gnu-api-2-class.mm gcc/testsuite/obj-c++.dg/gnu-api-2-class.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae39026..68f0c8c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/obj-c++.dg/gnu-api-2-class.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/gnu-api-2-class.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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 "No API#2 pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "API unsupported" { arm64*-*-darwin* aarch64*-*-darwin* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { 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/obj-c++.dg/torture/strings/const-cfstring-4.mm gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1155db5..e0dd806 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/torture/strings/const-cfstring-4.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,4 +18,4 @@ void *foo (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __DATA, __cfstring" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".long\t___CFConstantStringClassReference\n\t.long\t1992\n\t.long\t.*\n\t.long\t19\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\t19\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)\t19\n} { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e1dad12..eb89710 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/torture/strings/const-str-10.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,4 +33,4 @@ const NSConstantString *appKey = @"MyApp";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __DATA, __objc_stringobj" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { 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><span style='display:block; white-space:pre;background:#e0ffe0;'>+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><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 30a9228..c1b58dc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/torture/strings/const-str-11.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,4 +33,4 @@ const XStr *appKey = @"MyApp";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __DATA, __objc_stringobj" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._XStr\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { 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 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+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><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a1a1429..8457f46 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/obj-c++.dg/torture/strings/const-str-9.mm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,4 +25,4 @@ const NSConstantString *appKey = @"MyApp";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __DATA, __objc_stringobj" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { 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><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/objc.dg/gnu-api-2-class-meta.m gcc/testsuite/objc.dg/gnu-api-2-class-meta.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3a85b16..3e3abd1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/objc.dg/gnu-api-2-class-meta.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/objc.dg/gnu-api-2-class-meta.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,6 +19,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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 "No API#2 pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "API unsupported" { arm64*-*-darwin* aarch64*-*-darwin* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { 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/objc.dg/gnu-api-2-class.m gcc/testsuite/objc.dg/gnu-api-2-class.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eade0dc..3f41dc1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/objc.dg/gnu-api-2-class.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/objc.dg/gnu-api-2-class.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,6 +6,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</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 "No API#2 pre-Darwin9" { *-*-darwin[5-8]* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { dg-skip-if "API unsupported" { arm64*-*-darwin* aarch64*-*-darwin* } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-additional-options "-DOBJC_OLD_DISPATCH_PROTOTYPES" { 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/objc.dg/torture/strings/const-cfstring-4.m gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1155db5..e0dd806 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/objc.dg/torture/strings/const-cfstring-4.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,4 +18,4 @@ void *foo (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __DATA, __cfstring" } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".long\t___CFConstantStringClassReference\n\t.long\t1992\n\t.long\t.*\n\t.long\t19\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\t19\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)\t19\n} { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/objc.dg/torture/strings/const-str-10.m gcc/testsuite/objc.dg/torture/strings/const-str-10.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6565dc2..81b0d32 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/objc.dg/torture/strings/const-str-10.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/objc.dg/torture/strings/const-str-10.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,4 +34,4 @@ const NSConstantString *appKey = @"MyApp";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __DATA, __objc_stringobj" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { 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><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/objc.dg/torture/strings/const-str-11.m gcc/testsuite/objc.dg/torture/strings/const-str-11.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2bdb153..b044b0f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/objc.dg/torture/strings/const-str-11.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/objc.dg/torture/strings/const-str-11.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,4 +33,4 @@ const XStr *appKey = @"MyApp";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __DATA, __objc_stringobj" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._XStr\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { 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 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/testsuite/objc.dg/torture/strings/const-str-9.m gcc/testsuite/objc.dg/torture/strings/const-str-9.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 966ea5e..d3d2916 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/testsuite/objc.dg/torture/strings/const-str-9.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/testsuite/objc.dg/torture/strings/const-str-9.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,4 +25,4 @@ const NSConstantString *appKey = @"MyApp";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".section __DATA, __objc_stringobj" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" { target { *-*-darwin* && { ! lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* { dg-final { scan-assembler ".quad\t_OBJC_CLASS_._NSConstantString\n\t.quad\t.*\n\t.long\t5\n\t.space" { target { *-*-darwin* && { lp64 } } } } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* { 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><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/tree-cfg.c gcc/tree-cfg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d16ed3e..fb2ada1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/tree-cfg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/tree-cfg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9834,13 +9834,13 @@ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_nx (edge_def *e, gt_pointer_operator op, void *cookie)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree block = LOCATION_BLOCK (e->goto_locus);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&(e->src), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&(e->dest), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&(e->src), NULL, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&(e->dest), NULL, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (current_ir_type () == IR_GIMPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&(e->insns.g), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&(e->insns.g), NULL, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&(e->insns.r), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&(block), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&(e->insns.r), NULL, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&(block), &(block), cookie);
</span><span style='display:block; white-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;'>+diff --git gcc/tree-core.h gcc/tree-core.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index eb01c24..93f3262 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/tree-core.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/tree-core.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1905,7 +1905,7 @@ struct GTY(()) tree_function_decl {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct GTY(()) tree_translation_unit_decl {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct tree_decl_common common;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Source language of this translation unit. Used for DWARF output. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const char * GTY((skip(""))) language;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *language;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* TODO: Non-optimization used to build this translation unit. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* TODO: Root of a partial DWARF tree for global types and decls. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/tree-nested.c gcc/tree-nested.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0337fbe..8083b7d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/tree-nested.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/tree-nested.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -513,6 +513,14 @@ get_trampoline_type (struct nesting_info *info)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (trampoline_type)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return trampoline_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* When trampolines are created off-stack then the only thing we need in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ local frame is a single pointer. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (flag_off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ trampoline_type = build_pointer_type (void_type_node);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return trampoline_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ align = TRAMPOLINE_ALIGNMENT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size = TRAMPOLINE_SIZE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2634,17 +2642,27 @@ convert_tramp_reference_op (tree *tp, int *walk_subtrees, void *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Compute the address of the field holding the trampoline. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x = get_frame_field (info, target_context, x, &wi->gsi);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- x = build_addr (x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- x = gsi_gimplify_val (info, x, &wi->gsi);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- /* Do machine-specific ugliness. Normally this will involve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- computing extra alignment, but it can really be anything. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- if (descr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- builtin = builtin_decl_implicit (BUILT_IN_ADJUST_DESCRIPTOR);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* APB: We don't need to do the adjustment calls when using off-stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ trampolines, any such adjustment will be done when the off-stack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ trampoline is created. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!descr && flag_off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = gsi_gimplify_val (info, x, &wi->gsi);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- builtin = builtin_decl_implicit (BUILT_IN_ADJUST_TRAMPOLINE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- call = gimple_build_call (builtin, 1, x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- x = init_tmp_var_with_call (info, &wi->gsi, call);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = build_addr (x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = gsi_gimplify_val (info, x, &wi->gsi);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Do machine-specific ugliness. Normally this will involve
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ computing extra alignment, but it can really be anything. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (descr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin = builtin_decl_implicit (BUILT_IN_ADJUST_DESCRIPTOR);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin = builtin_decl_implicit (BUILT_IN_ADJUST_TRAMPOLINE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ call = gimple_build_call (builtin, 1, x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = init_tmp_var_with_call (info, &wi->gsi, call);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Cast back to the proper function type. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x = build1 (NOP_EXPR, TREE_TYPE (t), x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3221,6 +3239,7 @@ build_init_call_stmt (struct nesting_info *info, tree decl, tree field,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ finalize_nesting_tree_1 (struct nesting_info *root)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_seq cleanup_list = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gimple_seq stmt_list = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gimple *stmt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tree context = root->context;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3352,9 +3371,48 @@ finalize_nesting_tree_1 (struct nesting_info *root)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!field)
</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;'>+- x = builtin_decl_implicit (BUILT_IN_INIT_TRAMPOLINE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- stmt = build_init_call_stmt (root, i->context, field, x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gimple_seq_add_stmt (&stmt_list, stmt);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (flag_off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We pass a whole bunch of arguments to the builtin function that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ creates the off-stack trampoline, these are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 1. The nested function chain value (that must be passed to the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ nested function so it can find the function arguments).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 2. A pointer to the nested function implementation,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 3. The address in the local stack frame where we should write
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the address of the trampoline.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ When this code was originally written I just kind of threw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ everything at the builtin, figuring I'd work out what was
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ actually needed later, I think, the stack pointer could
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ certainly be dropped, arguments #2 and #4 are based off the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ stack pointer anyway, so #1 doesn't seem to add much value. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tree arg1, arg2, arg3;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gcc_assert (DECL_STATIC_CHAIN (i->context));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arg1 = build_addr (root->frame_decl);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arg2 = build_addr (i->context);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = build3 (COMPONENT_REF, TREE_TYPE (field),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ root->frame_decl, field, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ arg3 = build_addr (x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = builtin_decl_implicit (BUILT_IN_NESTED_PTR_CREATED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ stmt = gimple_build_call (x, 3, arg1, arg2, arg3);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_seq_add_stmt (&stmt_list, stmt);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* This call to delete the nested function trampoline is added to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the cleanup list, and called when we exit the current scope. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = builtin_decl_implicit (BUILT_IN_NESTED_PTR_DELETED);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ stmt = gimple_build_call (x, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_seq_add_stmt (&cleanup_list, stmt);
</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;'>++ /* Original code to initialise the on stack trampoline. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x = builtin_decl_implicit (BUILT_IN_INIT_TRAMPOLINE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ stmt = build_init_call_stmt (root, i->context, field, x);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_seq_add_stmt (&stmt_list, stmt);
</span><span style='display:block; white-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;'>+@@ -3379,11 +3437,40 @@ finalize_nesting_tree_1 (struct nesting_info *root)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* If we created initialization statements, insert them. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (stmt_list)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gbind *bind;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- annotate_all_with_location (stmt_list, DECL_SOURCE_LOCATION (context));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- bind = gimple_seq_first_stmt_as_a_bind (gimple_body (context));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gimple_seq_add_seq (&stmt_list, gimple_bind_body (bind));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- gimple_bind_set_body (bind, stmt_list);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (flag_off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Handle the new, off stack trampolines. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gbind *bind;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ annotate_all_with_location (stmt_list, DECL_SOURCE_LOCATION (context));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ annotate_all_with_location (cleanup_list, DECL_SOURCE_LOCATION (context));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bind = gimple_seq_first_stmt_as_a_bind (gimple_body (context));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_seq_add_seq (&stmt_list, gimple_bind_body (bind));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_seq xxx_list = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (cleanup_list != NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* We Maybe shouldn't be creating this try/finally if -fno-exceptions is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ in use. If this is the case, then maybe we should, instead, be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ inserting the cleanup code onto every path out of this function? Not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ yet figured out how we would do this. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gtry *t = gimple_build_try (stmt_list, cleanup_list, GIMPLE_TRY_FINALLY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_seq_add_stmt (&xxx_list, t);
</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;'>++ xxx_list = stmt_list;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_bind_set_body (bind, xxx_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;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* The traditional, on stack trampolines. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gbind *bind;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ annotate_all_with_location (stmt_list, DECL_SOURCE_LOCATION (context));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bind = gimple_seq_first_stmt_as_a_bind (gimple_body (context));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_seq_add_seq (&stmt_list, gimple_bind_body (bind));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ gimple_bind_set_body (bind, stmt_list);
</span><span style='display:block; white-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 a chain_decl was created, then it needs to be registered with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/tree.c gcc/tree.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d82c308..bcf55eb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/tree.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/tree.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10656,6 +10656,23 @@ build_common_builtin_nodes (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "__builtin_nonlocal_goto",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ECF_NORETURN | ECF_NOTHROW);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tree ptr_ptr_type_node = build_pointer_type (ptr_type_node);
</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_nested_func_ptr_created", ftype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ BUILT_IN_NESTED_PTR_CREATED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "__builtin_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;'>++ ftype = build_function_type_list (void_type_node,
</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_nested_func_ptr_deleted", ftype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ BUILT_IN_NESTED_PTR_DELETED,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "__builtin_nested_func_ptr_deleted", ECF_NOTHROW);
</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, ptr_type_node, NULL_TREE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ local_define_builtin ("__builtin_setjmp_setup", ftype,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/varasm.c gcc/varasm.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d65985d..3ee89af 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/varasm.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/varasm.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -246,8 +246,8 @@ object_block_hasher::hash (object_block *old)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return a new unnamed section with the given fields. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ section *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-get_unnamed_section (unsigned int flags, void (*callback) (const void *),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- const void *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++get_unnamed_section (unsigned int flags, void (*callback) (const char *),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ const char *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ section *sect;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7494,9 +7494,9 @@ file_end_indicate_split_stack (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ a get_unnamed_section callback. */
</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;'>+-output_section_asm_op (const void *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++output_section_asm_op (const char *directive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- fprintf (asm_out_file, "%s\n", (const char *) directive);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fprintf (asm_out_file, "%s\n", directive);
</span><span style='display:block; white-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 assembly code to switch to section NEW_SECTION. Do nothing if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/vec.h gcc/vec.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c7bca22..9d3b93e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/vec.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/vec.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1361,7 +1361,7 @@ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gt_pch_nx (vec<T *, A, vl_embed> *v, gt_pointer_operator op, void *cookie)
</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 < v->length (); i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- op (&((*v)[i]), cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ op (&((*v)[i]), NULL, cookie);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<typename T, typename A>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git gcc/wide-int.h gcc/wide-int.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bb0d16b..b48c32d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- gcc/wide-int.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ gcc/wide-int.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3336,7 +3336,7 @@ gt_pch_nx (generic_wide_int <T> *)
</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;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gt_pch_nx (generic_wide_int <T> *, void (*) (void *, void *), void *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gt_pch_nx (generic_wide_int <T> *, void (*) (void *, void *, void *), 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3354,7 +3354,7 @@ gt_pch_nx (trailing_wide_ints <N> *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<int N>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gt_pch_nx (trailing_wide_ints <N> *, void (*) (void *, void *), void *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gt_pch_nx (trailing_wide_ints <N> *, void (*) (void *, void *, void *), 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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libatomic/Makefile.am libatomic/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 133fbbc..388f7d7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libatomic/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libatomic/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,8 +65,12 @@ libatomic_version_script =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libatomic_version_dep =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libatomic_version_info = -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libatomic_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</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;'>+-libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) $(lt_host_flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(lt_host_flags) $(libatomic_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c init.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fenv.c fence.c flag.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libatomic/Makefile.in libatomic/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a51807e..df2a18e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libatomic/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libatomic/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -400,7 +400,10 @@ noinst_LTLIBRARIES = libatomic_convenience.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libatomic_version_dep = $(top_srcdir)/libatomic.map
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libatomic_version_dep = libatomic.map-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libatomic_version_info = -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) $(lt_host_flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libatomic_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(lt_host_flags) $(libatomic_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libatomic_la_SOURCES = gload.c gstore.c gcas.c gexch.c glfree.c lock.c init.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fenv.c fence.c flag.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libatomic/configure libatomic/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6e706e9..56a0090 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libatomic/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libatomic/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -657,6 +657,8 @@ OPT_LDFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SECTION_LDFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_aarch64_lse
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtool_VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -802,6 +804,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_symvers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_cet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1450,6 +1453,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable make rules and dependencies not useful (and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sometimes confusing) to the casual installer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7600,7 +7605,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;'>+@@ -9573,6 +9578,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9590,9 +9638,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -11389,7 +11441,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11392 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11444 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11495,7 +11547,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11498 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11550 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11780,6 +11832,15 @@ 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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # For libtool versioning info, format is CURRENT:REVISION:AGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtool_VERSION=3:0:2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15877,6 +15938,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</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 -z "${LIBAT_BUILD_VERSIONED_SHLIB_TRUE}" && test -z "${LIBAT_BUILD_VERSIONED_SHLIB_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"LIBAT_BUILD_VERSIONED_SHLIB\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libatomic/configure.ac libatomic/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7ac8911..fdf89e9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libatomic/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libatomic/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -156,6 +156,8 @@ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_MAINTAINER_MODE
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For libtool versioning info, format is CURRENT:REVISION:AGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtool_VERSION=3:0:2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libatomic/testsuite/lib/libatomic.exp libatomic/testsuite/lib/libatomic.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 38f3e56..300e509 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libatomic/testsuite/lib/libatomic.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libatomic/testsuite/lib/libatomic.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -152,6 +152,7 @@ proc libatomic_init { args } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend ALWAYS_CFLAGS "additional_flags=-I${srcdir}/.."
</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_CFLAGS "additional_flags=-B${blddir}/.libs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend ALWAYS_CFLAGS "additional_flags=-shared-libgcc"
</span><span style='display:block; white-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 libbacktrace/backtrace.c libbacktrace/backtrace.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5838dcb..4042a22 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libbacktrace/backtrace.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libbacktrace/backtrace.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -70,6 +70,13 @@ unwind (struct _Unwind_Context *context, void *vdata)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ uintptr_t pc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int ip_before_insn = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# undef HAVE_GETIPINFO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define HAVE_GETIPINFO 1
</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;'>+ #ifdef HAVE_GETIPINFO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pc = _Unwind_GetIPInfo (context, &ip_before_insn);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libbacktrace/configure libbacktrace/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6a0dd76..9ec05d1 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libbacktrace/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libbacktrace/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -662,6 +662,8 @@ PIC_FLAG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ WARN_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EXTRA_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BACKTRACE_FILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIPO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -786,6 +788,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_largefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_cet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_system_libunwind
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1431,6 +1434,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-largefile omit support for large files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-cet enable Intel CET in target libraries [default=no]
</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;'>+@@ -7979,7 +7984,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;'>+@@ -9685,6 +9690,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9702,9 +9750,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -11501,7 +11553,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11504 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11556 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11607,7 +11659,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11610 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11662 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11846,6 +11898,15 @@ CC="$lt_save_CC"
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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-largefile was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_largefile+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enableval=$enable_largefile;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13699,6 +13760,10 @@ if test -z "${HAVE_DWZ_TRUE}" && test -z "${HAVE_DWZ_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"HAVE_DWZ\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${HAVE_ELF_TRUE}" && test -z "${HAVE_ELF_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"HAVE_ELF\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libbacktrace/configure.ac libbacktrace/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index afdd307..42570f7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libbacktrace/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libbacktrace/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,6 +84,8 @@ AM_CONDITIONAL(HAVE_DWZ, test "$DWZ" != "")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LT_INIT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SYS_LARGEFILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ backtrace_supported=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libbacktrace/simple.c libbacktrace/simple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b9b971a..6dc45b9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libbacktrace/simple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libbacktrace/simple.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,6 +65,13 @@ simple_unwind (struct _Unwind_Context *context, void *vdata)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ uintptr_t pc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int ip_before_insn = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# undef HAVE_GETIPINFO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define HAVE_GETIPINFO 1
</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;'>+ #ifdef HAVE_GETIPINFO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pc = _Unwind_GetIPInfo (context, &ip_before_insn);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcc1/Makefile.am libcc1/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3d3230e..cec6d6a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcc1/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcc1/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,6 +56,9 @@ marshall_c_source = marshall-c.hh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ marshall_cxx_source = marshall-cp.hh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1plugin_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1plugin.sym
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libcc1plugin_la_LDFLAGS += -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1plugin_la_SOURCES = libcc1plugin.cc $(shared_source) $(marshall_c_source)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1plugin.lo_CPPFLAGS = $(CPPFLAGS_FOR_C)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1plugin_la_LIBADD = $(libiberty)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,6 +68,9 @@ libcc1plugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(CXXFLAGS) $(libcc1plugin_la_LDFLAGS) $(LTLDFLAGS) -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcp1plugin_la_LDFLAGS = -module -export-symbols $(srcdir)/libcp1plugin.sym
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libcp1plugin_la_LDFLAGS += -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcp1plugin_la_SOURCES = libcp1plugin.cc $(shared_source) $(marshall_cxx_source)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcp1plugin.lo_CPPFLAGS = $(CPPFLAGS_FOR_CXX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcp1plugin_la_LIBADD = $(libiberty)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,6 +81,9 @@ libcp1plugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1.sym
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libcc1_la_LDFLAGS += -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1_la_SOURCES = findcomp.cc libcc1.cc libcp1.cc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ names.cc names.hh $(shared_source) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(marshall_c_source) $(marshall_cxx_source)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcc1/Makefile.in libcc1/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4276894..34b9c7a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcc1/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcc1/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -90,6 +90,9 @@ build_triplet = @build@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_triplet = @host@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_triplet = @target@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @DARWIN_DYNAMIC_LOOKUP_TRUE@am__append_1 = -Wl,-undefined,dynamic_lookup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_2 = -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_3 = -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_4 = -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subdir = .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -403,7 +406,8 @@ shared_source = callbacks.cc callbacks.hh connection.cc connection.hh \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ marshall_c_source = marshall-c.hh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ marshall_cxx_source = marshall-cp.hh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libcc1plugin_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1plugin.sym
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libcc1plugin_la_LDFLAGS = -module -export-symbols \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(srcdir)/libcc1plugin.sym $(am__append_2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1plugin_la_SOURCES = libcc1plugin.cc $(shared_source) $(marshall_c_source)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1plugin.lo_CPPFLAGS = $(CPPFLAGS_FOR_C)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1plugin_la_LIBADD = $(libiberty)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -412,7 +416,8 @@ libcc1plugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(CXXFLAGS) $(libcc1plugin_la_LDFLAGS) $(LTLDFLAGS) -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libcp1plugin_la_LDFLAGS = -module -export-symbols $(srcdir)/libcp1plugin.sym
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libcp1plugin_la_LDFLAGS = -module -export-symbols \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(srcdir)/libcp1plugin.sym $(am__append_3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcp1plugin_la_SOURCES = libcp1plugin.cc $(shared_source) $(marshall_cxx_source)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcp1plugin.lo_CPPFLAGS = $(CPPFLAGS_FOR_CXX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcp1plugin_la_LIBADD = $(libiberty)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -422,7 +427,8 @@ libcp1plugin_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(CXXFLAGS) $(libcp1plugin_la_LDFLAGS) $(LTLDFLAGS) -o $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libcc1_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1.sym
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libcc1_la_LDFLAGS = -module -export-symbols $(srcdir)/libcc1.sym \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(am__append_4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libcc1_la_SOURCES = findcomp.cc libcc1.cc libcp1.cc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ names.cc names.hh $(shared_source) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(marshall_c_source) $(marshall_cxx_source)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcc1/configure libcc1/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f1c64d8..20600bb 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcc1/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcc1/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -645,6 +645,8 @@ CONFIG_STATUS_DEPENDENCIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gcc_version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ get_gcc_base_ver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ visibility
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ am__fastdepCXX_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ am__fastdepCXX_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -786,6 +788,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</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;'>+ enable_werror_always
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_plugin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1437,6 +1440,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</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-plugin enable plugin support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7263,7 +7268,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;'>+@@ -8968,6 +8973,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8985,9 +9033,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -10784,7 +10836,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 10787 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10839 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10890,7 +10942,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 10893 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10945 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12172,6 +12224,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12189,12 +12284,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -14535,6 +14638,14 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ visibility=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$GXX" = yes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14943,14 +15054,18 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check that we can build shared objects with -fPIC -shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ saved_LDFLAGS="$LDFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ saved_CFLAGS="$CFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ saved_CXXFLAGS="$CXXFLAGS"
</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;'>+ CFLAGS=`echo $CFLAGS | sed s/-mdynamic-no-pic//g`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$CFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS=`echo $CXXFLAGS | sed s/-mdynamic-no-pic//g`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$CXXFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS="$LDFLAGS -shared -undefined dynamic_lookup"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$CFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$CXXFLAGS -fPIC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS="$LDFLAGS -fPIC -shared"
</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;'>+@@ -14982,6 +15097,7 @@ 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;'>+ LDFLAGS="$saved_LDFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFLAGS="$saved_CFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CXXFLAGS="$saved_CXXFLAGS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # If plugin support had been requested but not available, fail.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x"$enable_plugin" = x"no" ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15166,6 +15282,10 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${DARWIN_DYNAMIC_LOOKUP_TRUE}" && test -z "${DARWIN_DYNAMIC_LOOKUP_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"DARWIN_DYNAMIC_LOOKUP\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcc1/configure.ac libcc1/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1a46989..a932da1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcc1/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcc1/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,6 +38,7 @@ AM_MAINTAINER_MODE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LT_INIT([disable-static])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_PROG_CXX
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ visibility=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$GXX" = yes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libcpp/include/line-map.h libcpp/include/line-map.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 916cdeb..3013621 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libcpp/include/line-map.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libcpp/include/line-map.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -792,11 +792,11 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int max_column_hint;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The allocator to use when resizing 'maps', defaults to xrealloc. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- line_map_realloc reallocator;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ line_map_realloc GTY((callback)) reallocator;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The allocators' function used to know the actual size it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ allocated, for a certain allocation size requested. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- line_map_round_alloc_size_func round_alloc_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ line_map_round_alloc_size_func GTY((callback)) round_alloc_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct location_adhoc_data_map location_adhoc_data_map;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libffi/Makefile.am libffi/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 203b7d1..5fb4fd0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libffi/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -233,7 +233,12 @@ libffi_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libffi.map: $(top_srcdir)/libffi.map.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(COMPILE) -D$(TARGET) -E -x assembler-with-cpp -o $@ $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libffi_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(libffi_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libffi/Makefile.in libffi/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 745bdd8..52f83ee 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libffi/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -612,7 +612,11 @@ AM_CFLAGS = -Wall -g -fexceptions $(am__append_2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBAT_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_dep = libffi.map
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi_version_dep = libffi.map-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libffi_version_info = -version-info `grep -v '^\#' $(srcdir)/libtool-version`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libffi_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libffi_la_LDFLAGS = -no-undefined $(libffi_version_info) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(libffi_version_script) $(LTLDFLAGS) $(AM_LTLDFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(libffi_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libffi_la_DEPENDENCIES = $(libffi_la_LIBADD) $(libffi_version_dep)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_CPPFLAGS = -I. -I$(top_srcdir)/include -Iinclude -I$(top_srcdir)/src
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_CCASFLAGS = $(AM_CPPFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libffi/configure libffi/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b32e109..c091b40 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libffi/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -664,6 +664,8 @@ TESTSUBDIR_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -807,6 +809,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_pax_emutramp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_debug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1460,6 +1463,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable make rules and dependencies not useful (and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sometimes confusing) to the casual installer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7773,7 +7778,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;'>+@@ -9747,6 +9752,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9764,9 +9812,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -11563,7 +11615,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11566 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11618 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11669,7 +11721,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11672 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11724 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12545,6 +12597,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12562,12 +12657,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -14927,6 +15030,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only expand once:
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # Test for 64-bit build.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # The cast to long int works around a bug in the HP C Compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16821,6 +16932,10 @@ if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libffi/configure.ac libffi/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0bf4af4..b10afba 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libffi/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,6 +57,7 @@ AC_SUBST(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_AS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_CC_C_O
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_PROG_LIBTOOL
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Test for 64-bit build.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CHECK_SIZEOF([size_t])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config.host libgcc/config.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 89f41b5..cef477a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/config.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -82,7 +82,7 @@ m32c*-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu_type=m32c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file=t-fdpbit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-aarch64*-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64*-*-* | arm64*-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cpu_type=aarch64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ alpha*-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -228,7 +228,46 @@ case ${host} in
</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;'>+ tmake_file="$tmake_file t-slibgcc-darwin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- extra_parts="crt3.o libd10-uwfef.a crttms.o crttme.o libemutls_w.a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # We are not using libtool to build the libs here, so we need to replicate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # a little of the logic around setting Darwin rpaths. Setting an explicit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # yes or no is honoured, otherwise we choose a suitable default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Sadly, this has to be kept in line with the rules in libtool.m4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This make fragment will override the setting in t-slibgcc-darwin so it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # must appear after it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "x"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "enable_darwin_at_rpath is unset" 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${host} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin[45678]*) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin9* | *-darwin1[01234]*) ;; # We might default these on later.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "but is needed after macOS 10.11 (setting it on)" 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</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;'>++ echo "enable_darwin_at_rpath is '$enable_darwin_at_rpath'" 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="$tmake_file t-darwin-rpath "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${host} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*-darwin2* | *-*-darwin1[89]* | aarch64*-*-darwin*)
</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;'>++ tmake_file="t-darwin-min-5 $tmake_file"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*-darwin[4-8]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="t-darwin-min-1 $tmake_file"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Fall back to configuring for the oldest system known to work with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # all archs and the current sources.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="t-darwin-min-5 $tmake_file"
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_parts="crt3.o crttms.o crttme.o libemutls_w.a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *-*-dragonfly*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -377,6 +416,17 @@ aarch64*-*-elf | aarch64*-*-rtems*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ md_unwind_header=aarch64/aarch64-unwind.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++aarch64*-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_parts="$extra_parts crtfastmath.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="${tmake_file} ${cpu_type}/t-lse "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="${tmake_file} t-crtfm"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ md_unwind_header=aarch64/aarch64-unwind.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$off_stack_trampolines = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="${tmake_file} ${cpu_type}/t-heap-trampoline"
</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;'>+ aarch64*-*-freebsd*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_parts="$extra_parts crtfastmath.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -401,6 +451,9 @@ aarch64*-*-linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="${tmake_file} ${cpu_type}/t-aarch64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="${tmake_file} ${cpu_type}/t-lse t-slibgcc-libgcc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$off_stack_trampolines = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tmake_file="${tmake_file} ${cpu_type}/t-heap-trampoline"
</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;'>+ aarch64*-*-vxworks7*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_parts="$extra_parts crtfastmath.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -697,12 +750,17 @@ hppa*-*-netbsd*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i[34567]86-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_file="$tm_file i386/darwin-lib.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_parts="$extra_parts libd10-uwfef.a "
</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;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x86_64-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="$tmake_file i386/t-crtpc t-crtfm i386/t-msabi"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_file="$tm_file i386/darwin-lib.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_parts="$extra_parts libd10-uwfef.a "
</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;'>++ if test x$off_stack_trampolines = xyes; then
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i[34567]86-*-elfiamcu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -769,6 +827,9 @@ 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;'>++ if test x$off_stack_trampolines = xyes; then
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ x86_64-*-kfreebsd*-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;'>+@@ -1161,12 +1222,14 @@ powerpc-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We build the darwin10 EH shim for Rosetta (running on x86 machines).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_file="$tm_file i386/darwin-lib.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="$tmake_file rs6000/t-ppc64-fp rs6000/t-ibm-ldouble"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_parts="$extra_parts libd10-uwfef.a "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ powerpc64-*-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We build the darwin10 EH shim for Rosetta (running on x86 machines).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tm_file="$tm_file i386/darwin-lib.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_parts="$extra_parts libd10-uwfef.a "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_parts="$extra_parts crt2.o crt3_2.o libef_ppc.a dw_ppc.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ powerpc*-*-freebsd*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/aarch64/heap-trampoline.c libgcc/config/aarch64/heap-trampoline.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 0000000..c8b8368
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/aarch64/heap-trampoline.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,172 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Copyright The GNU Toolchain Authors. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/mman.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdint.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <string.h>
</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;'>++/* For pthread_jit_write_protect_np */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <pthread.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;'>++void *allocate_trampoline_page (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int get_trampolines_per_page (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct tramp_ctrl_data *allocate_tramp_ctrl (struct tramp_ctrl_data *parent);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void *allocate_trampoline_page (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void __builtin_nested_func_ptr_created (void *chain, void *func, void **dst);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void __builtin_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(__gnu_linux__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const uint32_t aarch64_trampoline_insns[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0xd503245f, /* hint 34 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0x580000b1, /* ldr x17, .+20 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0x580000d2, /* ldr x18, .+24 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0xd61f0220, /* br x17 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0xd5033f9f, /* dsb sy */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0xd5033fdf /* isb */
</span><span style='display:block; white-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 __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const uint32_t aarch64_trampoline_insns[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0xd503245f, /* hint 34 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0x580000b1, /* ldr x17, .+20 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0x580000d0, /* ldr x16, .+24 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0xd61f0220, /* br x17 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0xd5033f9f, /* dsb sy */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0xd5033fdf /* isb */
</span><span style='display:block; white-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;'>++#error "Unsupported AArch64 platform for heap trampolines"
</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 aarch64_trampoline {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uint32_t insns[6];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *func_ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *chain_ptr;
</span><span style='display:block; white-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 tramp_ctrl_data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct tramp_ctrl_data *prev;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int free_trampolines;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* This will be pointing to an executable mmap'ed page. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct aarch64_trampoline *trampolines;
</span><span style='display:block; white-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;'>++get_trampolines_per_page (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return getpagesize() / sizeof(struct aarch64_trampoline);
</span><span style='display:block; white-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 _Thread_local struct tramp_ctrl_data *tramp_ctrl_curr = NULL;
</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;'>++allocate_trampoline_page (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__gnu_linux__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ page = mmap (0, getpagesize (), PROT_WRITE | PROT_EXEC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_ANON | MAP_PRIVATE, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ page = mmap (0, getpagesize (), PROT_WRITE | PROT_EXEC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_ANON | MAP_PRIVATE | MAP_JIT, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ page = MAP_FAILED;
</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;'>++ return page;
</span><span style='display:block; white-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 tramp_ctrl_data *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++allocate_tramp_ctrl (struct tramp_ctrl_data *parent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct tramp_ctrl_data *p = malloc (sizeof (struct tramp_ctrl_data));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (p == NULL)
</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;'>++ p->trampolines = allocate_trampoline_page ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (p->trampolines == MAP_FAILED)
</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;'>++ p->prev = parent;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ p->free_trampolines = get_trampolines_per_page();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__builtin_nested_func_ptr_created (void *chain, void *func, void **dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tramp_ctrl_curr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tramp_ctrl_curr = allocate_tramp_ctrl (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tramp_ctrl_curr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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;'>++ if (tramp_ctrl_curr->free_trampolines == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *tramp_ctrl = allocate_tramp_ctrl (tramp_ctrl_curr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!tramp_ctrl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tramp_ctrl_curr = tramp_ctrl;
</span><span style='display:block; white-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 aarch64_trampoline *trampoline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = &tramp_ctrl_curr->trampolines[get_trampolines_per_page ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ - tramp_ctrl_curr->free_trampolines];
</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;'>++ /* Disable write protection for the MAP_JIT regions in this thread (see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ https://developer.apple.com/documentation/apple-silicon/porting-just-in-time-compilers-to-apple-silicon) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pthread_jit_write_protect_np (0);
</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;'>++ memcpy (trampoline->insns, aarch64_trampoline_insns,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sizeof(aarch64_trampoline_insns));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ trampoline->func_ptr = func;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ trampoline->chain_ptr = chain;
</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;'>++ /* Re-enable write protection. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pthread_jit_write_protect_np (1);
</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;'>++ tramp_ctrl_curr->free_trampolines -= 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin___clear_cache ((void *)trampoline->insns,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((void *)trampoline->insns + sizeof(trampoline->insns)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *dst = &trampoline->insns;
</span><span style='display:block; white-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;'>++__builtin_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 (tramp_ctrl_curr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tramp_ctrl_curr->free_trampolines += 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tramp_ctrl_curr->free_trampolines == get_trampolines_per_page ())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tramp_ctrl_curr->prev == NULL)
</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;'>++ munmap (tramp_ctrl_curr->trampolines, getpagesize());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct tramp_ctrl_data *prev = tramp_ctrl_curr->prev;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ free (tramp_ctrl_curr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tramp_ctrl_curr = prev;
</span><span style='display:block; white-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 libgcc/config/aarch64/lse.S libgcc/config/aarch64/lse.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 67a1108..2c6f7db 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/config/aarch64/lse.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/aarch64/lse.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -58,7 +58,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
</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;'>+ /* Declare the symbol gating the LSE implementations. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __ELF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .hidden __aarch64_have_lse_atomics
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .private_extern __aarch64_have_lse_atomics
</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;'>+ /* Turn size and memory model defines into mnemonic fragments. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if SIZE == 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -164,6 +168,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define BTI_C hint 34
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Start and end a function. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __ELF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .macro STARTFN name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .balign 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -187,6 +192,29 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cbz w(tmp0), \label
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .endm
</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;'>++.macro STARTFN name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .balign 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .private_extern _\name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .cfi_startproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_\name:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ BTI_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.endm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.macro ENDFN name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.endm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Branch to LABEL if LSE is disabled. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.macro JUMP_IF_NOT_LSE label
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ adrp x(tmp0), ___aarch64_have_lse_atomics@PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ldrb w(tmp0), [x(tmp0), ___aarch64_have_lse_atomics@PAGEOFF]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cbz w(tmp0), \label
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++.endm
</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 L_cas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ STARTFN NAME(cas)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/aarch64/sfp-machine.h libgcc/config/aarch64/sfp-machine.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e60ecd2..811ac10 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/config/aarch64/sfp-machine.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/aarch64/sfp-machine.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -122,6 +122,27 @@ void __sfp_handle_exceptions (int);
</span><span style='display:block; white-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 ALIASNAME as a strong alias for NAME. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Mach-O doesn't support aliasing, so we build a secondary function for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the alias - we need to do a bit of a dance to find out what the type of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the arguments is and then apply that to the secondary function.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ If these functions ever return anything but CMPtype we need to revisit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ this... */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef float alias_HFtype __attribute__ ((mode (HF)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef float alias_SFtype __attribute__ ((mode (SF)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef float alias_DFtype __attribute__ ((mode (DF)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef float alias_TFtype __attribute__ ((mode (TF)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ALIAS_SELECTOR \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype (*) (alias_HFtype, alias_HFtype): (alias_HFtype) 0, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype (*) (alias_SFtype, alias_SFtype): (alias_SFtype) 0, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype (*) (alias_DFtype, alias_DFtype): (alias_DFtype) 0, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype (*) (alias_TFtype, alias_TFtype): (alias_TFtype) 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define strong_alias(name, aliasname) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype aliasname (__typeof (_Generic (name, ALIAS_SELECTOR)) a, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __typeof (_Generic (name, ALIAS_SELECTOR)) b) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { return name (a, b); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define strong_alias(name, aliasname) _strong_alias(name, aliasname)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define _strong_alias(name, aliasname) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern __typeof (name) aliasname __attribute__ ((alias (#name)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/aarch64/t-darwin libgcc/config/aarch64/t-darwin
</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 0000000..f6ecda7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/aarch64/t-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Ensure we have a suitable minimum OS version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=11.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB2_SIDITI_CONV_FUNCS = yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++BUILD_LIBGCCS1 =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/aarch64/t-heap-trampoline libgcc/config/aarch64/t-heap-trampoline
</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 0000000..3f70c2c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/aarch64/t-heap-trampoline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright The GNU Toolchain Authors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This file is part of GCC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC is free software; you can redistribute it and/or modify it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC is distributed in the hope that it will be useful, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# <http://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB2ADD += $(srcdir)/config/aarch64/heap-trampoline.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=11.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/darwin10-unwind-find-enc-func.c libgcc/config/darwin10-unwind-find-enc-func.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 67c4375..882ec3a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/config/darwin10-unwind-find-enc-func.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/darwin10-unwind-find-enc-func.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;'>+ #include "tconfig.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "tsystem.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "unwind-dw2-fde.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "libgcc_tm.h"
</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;'>+ _darwin10_Unwind_FindEnclosingFunction (void *pc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/i386/heap-trampoline.c libgcc/config/i386/heap-trampoline.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 0000000..96e13bf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/i386/heap-trampoline.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,172 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Copyright The GNU Toolchain Authors. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/mman.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdint.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <string.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* For pthread_jit_write_protect_np */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <pthread.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;'>++void *allocate_trampoline_page (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int get_trampolines_per_page (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct tramp_ctrl_data *allocate_tramp_ctrl (struct tramp_ctrl_data *parent);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void *allocate_trampoline_page (void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void __builtin_nested_func_ptr_created (void *chain, void *func, void **dst);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void __builtin_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;'>++static const uint8_t trampoline_insns[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* movabs $<chain>,%r11 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0x49, 0xbb,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* movabs $<func>,%r10 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0x49, 0xba,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0x00, 0x00, 0x00, 0x00, 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;'>++
</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[2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *func_ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ uint8_t insn_1[2];
</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_2[3];
</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;'>++struct tramp_ctrl_data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct tramp_ctrl_data *prev;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int free_trampolines;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* This will be pointing to an executable mmap'ed page. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ union ix86_trampoline *trampolines;
</span><span style='display:block; white-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;'>++get_trampolines_per_page (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return getpagesize() / sizeof(union ix86_trampoline);
</span><span style='display:block; white-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 _Thread_local struct tramp_ctrl_data *tramp_ctrl_curr = NULL;
</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;'>++allocate_trampoline_page (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__gnu_linux__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ page = mmap (0, getpagesize (), PROT_WRITE | PROT_EXEC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_ANON | MAP_PRIVATE, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ page = mmap (0, getpagesize (), PROT_WRITE | PROT_EXEC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_ANON | MAP_PRIVATE | MAP_JIT, 0, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ page = mmap (0, getpagesize (), PROT_WRITE | PROT_EXEC,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ MAP_ANON | MAP_PRIVATE, 0, 0);
</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;'>++ page = MAP_FAILED;
</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;'>++ return page;
</span><span style='display:block; white-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 tramp_ctrl_data *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++allocate_tramp_ctrl (struct tramp_ctrl_data *parent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct tramp_ctrl_data *p = malloc (sizeof (struct tramp_ctrl_data));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (p == NULL)
</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;'>++ p->trampolines = allocate_trampoline_page ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (p->trampolines == MAP_FAILED)
</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;'>++ p->prev = parent;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ p->free_trampolines = get_trampolines_per_page();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__builtin_nested_func_ptr_created (void *chain, void *func, void **dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tramp_ctrl_curr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tramp_ctrl_curr = allocate_tramp_ctrl (NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tramp_ctrl_curr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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;'>++ if (tramp_ctrl_curr->free_trampolines == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ void *tramp_ctrl = allocate_tramp_ctrl (tramp_ctrl_curr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!tramp_ctrl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tramp_ctrl_curr = tramp_ctrl;
</span><span style='display:block; white-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 *trampoline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ = &tramp_ctrl_curr->trampolines[get_trampolines_per_page ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ - tramp_ctrl_curr->free_trampolines];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Disable write protection for the MAP_JIT regions in this thread (see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ https://developer.apple.com/documentation/apple-silicon/porting-just-in-time-compilers-to-apple-silicon) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pthread_jit_write_protect_np (0);
</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;'>++ memcpy (trampoline->insns, trampoline_insns,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ sizeof(trampoline_insns));
</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;'>++ trampoline->fields.chain_ptr = chain;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __APPLE__ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Re-enable write protection. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pthread_jit_write_protect_np (1);
</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;'>++ tramp_ctrl_curr->free_trampolines -= 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin___clear_cache ((void *)trampoline->insns,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((void *)trampoline->insns + sizeof(trampoline->insns)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *dst = &trampoline->insns;
</span><span style='display:block; white-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;'>++__builtin_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 (tramp_ctrl_curr == NULL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ abort ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tramp_ctrl_curr->free_trampolines += 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tramp_ctrl_curr->free_trampolines == get_trampolines_per_page ())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (tramp_ctrl_curr->prev == NULL)
</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;'>++ munmap (tramp_ctrl_curr->trampolines, getpagesize());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct tramp_ctrl_data *prev = tramp_ctrl_curr->prev;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ free (tramp_ctrl_curr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ tramp_ctrl_curr = prev;
</span><span style='display:block; white-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 libgcc/config/i386/sfp-machine.h libgcc/config/i386/sfp-machine.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8319f05..fca7ddd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/config/i386/sfp-machine.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/i386/sfp-machine.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -73,11 +73,23 @@ void __sfp_handle_exceptions (int);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define __BYTE_ORDER __LITTLE_ENDIAN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Define ALIASNAME as a strong alias for NAME. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined __MACH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* Mach-O doesn't support aliasing. If these functions ever return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- anything but CMPtype we need to revisit this... */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Mach-O doesn't support aliasing, so we build a secondary function for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the alias - we need to do a bit of a dance to find out what the type of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ the arguments is and then apply that to the secondary function.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ If these functions ever return anything but CMPtype we need to revisit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ this... */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef float alias_SFtype __attribute__ ((mode (SF)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef float alias_DFtype __attribute__ ((mode (DF)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef float alias_TFtype __attribute__ ((mode (TF)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define ALIAS_SELECTOR \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype (*) (alias_SFtype, alias_SFtype): (alias_SFtype) 0, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype (*) (alias_DFtype, alias_DFtype): (alias_DFtype) 0, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype (*) (alias_TFtype, alias_TFtype): (alias_TFtype) 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define strong_alias(name, aliasname) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CMPtype aliasname (TFtype a, TFtype b) { return name(a, b); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CMPtype aliasname (__typeof (_Generic (name, ALIAS_SELECTOR)) a, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __typeof (_Generic (name, ALIAS_SELECTOR)) b) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { return name (a, b); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define strong_alias(name, aliasname) _strong_alias(name, aliasname)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # define _strong_alias(name, aliasname) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/i386/t-heap-trampoline libgcc/config/i386/t-heap-trampoline
</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 0000000..76f438d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/i386/t-heap-trampoline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright The GNU Toolchain Authors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This file is part of GCC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC is free software; you can redistribute it and/or modify it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# the Free Software Foundation; either version 3, or (at your option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# GCC is distributed in the hope that it will be useful, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# along with GCC; see the file COPYING3. If not see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# <http://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIB2ADD += $(srcdir)/config/i386/heap-trampoline.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/t-darwin libgcc/config/t-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 299d26c..a708583 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/config/t-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/t-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,15 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Set this as a minimum (unless overriden by arch t-files) since it's a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # reasonable lowest common denominator that works for all our archs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-HOST_LIBGCC2_CFLAGS += -mmacosx-version-min=10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++HOST_LIBGCC2_CFLAGS += $(DARWIN_MIN_LIB_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crt3.o: $(srcdir)/config/darwin-crt3.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(crt_compile) -mmacosx-version-min=10.4 -c $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(crt_compile) $(DARWIN_MIN_CRT_VERSION) -c $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crttms.o: $(srcdir)/config/darwin-crt-tm.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(crt_compile) -mmacosx-version-min=10.4 -DSTART -c $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(crt_compile) $(DARWIN_MIN_CRT_VERSION) -DSTART -c $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ crttme.o: $(srcdir)/config/darwin-crt-tm.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(crt_compile) -mmacosx-version-min=10.4 -DEND -c $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(crt_compile) $(DARWIN_MIN_CRT_VERSION) -DEND -c $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Make emutls weak so that we can deal with -static-libgcc, override the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # hidden visibility when this is present in libgcc_eh.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -24,7 +24,8 @@ libemutls_w.a: emutls_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;'>+-# Patch to __Unwind_Find_Enclosing_Function for Darwin10.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# 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:#e0ffe0;'>++# version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d10-uwfef.o: $(srcdir)/config/darwin10-unwind-find-enc-func.c libgcc_tm.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(crt_compile) -mmacosx-version-min=10.6 -c $<
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/t-darwin-min-1 libgcc/config/t-darwin-min-1
</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 0000000..8c2cf8a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/t-darwin-min-1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,3 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Support building with -mmacosx-version-min back to 10.1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/t-darwin-min-4 libgcc/config/t-darwin-min-4
</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 0000000..04e980d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/t-darwin-min-4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,3 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Support building with -mmacosx-version-min back to 10.4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/t-darwin-min-5 libgcc/config/t-darwin-min-5
</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 0000000..1381931
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/t-darwin-min-5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,3 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Support building with -mmacosx-version-min back to 10.5.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/t-darwin-min-8 libgcc/config/t-darwin-min-8
</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 0000000..9efc9dc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/t-darwin-min-8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,3 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Support building with -mmacosx-version-min back to 10.8.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_LIB_VERSION = -mmacosx-version-min=10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++DARWIN_MIN_CRT_VERSION = -mmacosx-version-min=10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/t-darwin-rpath libgcc/config/t-darwin-rpath
</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 0000000..e73d7f3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/t-darwin-rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,2 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Use @rpath and add a search path to exes and dylibs that depend on this.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SHLIB_RPATH = @rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/config/t-slibgcc-darwin libgcc/config/t-slibgcc-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a8f6966..878b5c6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/config/t-slibgcc-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/config/t-slibgcc-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Build a shared libgcc library with the darwin linker.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Build a shared libgcc library able to use embedded runpaths.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SHLIB_SOVERSION = 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SHLIB_SO_MINVERSION = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,7 +6,6 @@ SHLIB_VERSTRING = -compatibility_version $(SHLIB_SO_MINVERSION) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -current_version $(SHLIB_SOVERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SHLIB_EXT = .dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SHLIB_LC = -lSystem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-SHLIB_INSTALL_DIR = $(slibdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SHLIB_MKMAP = $(srcdir)/mkmap-flat.awk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SHLIB_MKMAP_OPTS = -v leading_underscore=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,11 +22,16 @@ SHLIB_SONAME = @shlib_base_name@$(SHLIB_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # subdir. The code under MULTIBUILDTOP combines these into a single FAT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # library, that is what we eventually install.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# When enable_darwin_at_rpath is true, use @rpath instead of $(slibdir) for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# this and dylibs that depend on this. So this def must come first and be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# overridden in a make fragment that depends on the rpath setting.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++SHLIB_RPATH = $(slibdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SHLIB_LINK = $(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -install_name $(SHLIB_INSTALL_DIR)/$(SHLIB_INSTALL_NAME) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -install_name $(SHLIB_RPATH)/$(SHLIB_INSTALL_NAME) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -single_module -o $(SHLIB_DIR)/$(SHLIB_SONAME) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wl,-exported_symbols_list,$(SHLIB_MAP) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(SHLIB_VERSTRING) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(SHLIB_VERSTRING) -nodefaultrpaths \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @multilib_flags@ @shlib_objs@ $(SHLIB_LC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # we do our own thing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -63,9 +67,9 @@ EHS_INSTNAME = libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgcc_ehs$(SHLIB_EXT): $(LIBEHSOBJS) $(extra-parts)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mkdir -p $(MULTIDIR)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(CC) $(LIBGCC2_CFLAGS) $(LDFLAGS) -dynamiclib -nodefaultlibs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -install_name $(SHLIB_INSTALL_DIR)/$(EHS_INSTNAME) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -install_name $(SHLIB_RPATH)/$(EHS_INSTNAME) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -o $(MULTIDIR)/libgcc_ehs$(SHLIB_EXT) $(SHLIB_VERSTRING) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(LIBEHSOBJS) $(SHLIB_LC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -nodefaultrpaths $(LIBEHSOBJS) $(SHLIB_LC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ all: libgcc_ehs$(SHLIB_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -121,12 +125,12 @@ libgcc_s.1.dylib: all-multi libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp ../$${mlib}/libgcc/$${mlib}/libgcc_ehs$(SHLIB_EXT) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ./libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arch=`$(LIPO) -info libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} | sed -e 's/.*:\ //'` ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(CC) -arch $${arch} -nodefaultlibs -dynamiclib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(CC) -arch $${arch} -nodefaultlibs -dynamiclib -nodefaultrpaths \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -o libgcc_s.1$(SHLIB_EXT)_T_$${mlib} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wl,-reexport_library,libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wl,-reexport_library,libgcc_ehs.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -install_name $(SHLIB_INSTALL_DIR)/libgcc_s.1.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -compatibility_version 1 -current_version 1 ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -install_name $(SHLIB_RPATH)/libgcc_s.1.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -compatibility_version 1 -current_version 1.1 ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(LIPO) -output libgcc_s.1$(SHLIB_EXT) -create libgcc_s.1$(SHLIB_EXT)_T*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -140,13 +144,13 @@ libgcc_s.1.dylib: all-multi libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp ../$${mlib}/libgcc/$${mlib}/libgcc_s$(SHLIB_EXT) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ./libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} || exit 1 ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ arch=`$(LIPO) -info libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} | sed -e 's/.*:\ //'` ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(CC) -arch $${arch} -nodefaultlibs -dynamiclib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(CC) -arch $${arch} -nodefaultlibs -dynamiclib -nodefaultrpaths \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -o libgcc_s.1$(SHLIB_EXT)_T_$${mlib} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wl,-reexport_library,libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T_$${mlib} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -lSystem \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -Wl,-reexported_symbols_list,$(srcdir)/config/darwin-unwind.ver \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -install_name $(SHLIB_INSTALL_DIR)/libgcc_s.1.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -compatibility_version 1 -current_version 1 ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -install_name $(SHLIB_RPATH)/libgcc_s.1.dylib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -compatibility_version 1 -current_version 1.1 ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(LIPO) -output libgcc_s.1$(SHLIB_EXT) -create libgcc_s.1$(SHLIB_EXT)_T*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)_T*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/configure libgcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 26bf757..1dc1569 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -654,6 +654,7 @@ build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_aix_soname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_vtable_verify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_gcov
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++off_stack_trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgcc_topdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_alias
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -701,6 +702,7 @@ with_target_subdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_cross_host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_off_stack_trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_gcov
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_vtable_verify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_aix_soname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1342,6 +1344,9 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
</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;'>+ --disable-shared don't provide a shared libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-off-stack-trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Specify whether to support generating off-stack trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-gcov don't provide libgcov and related host tools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-vtable-verify Enable vtable verification feature
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --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:#e0ffe0;'>+@@ -2252,6 +2257,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;'>++# Check whether --enable-off-stack-trampolines was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_off_stack_trampolines+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_off_stack_trampolines;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case "$target" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x86_64-*-linux* | x86_64-*-darwin1[4-9]* | x86_64-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64*-*-linux* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64*-*darwin* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as_fn_error $? "Configure option --enable-off-stack-trampolines is not supported \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for this platform" "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=no
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case "$target" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=no
</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;'>++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;'>+ # Check whether --enable-gcov was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_gcov+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enableval=$enable_gcov;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/configure.ac libgcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bff6e54..14657fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -68,6 +68,35 @@ AC_ARG_ENABLE(shared,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ], [enable_shared=yes])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_ARG_ENABLE([off-stack-trampolines],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [AS_HELP_STRING([--enable-off-stack-trampolines]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [Specify whether to support generating off-stack trampolines])],[
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case "$target" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ x86_64-*-linux* | x86_64-*-darwin1[[4-9]]* | x86_64-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64*-*-linux* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=$enableval
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64*-*darwin* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=$enableval
</span><span style='display:block; white-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_MSG_ERROR([Configure option --enable-off-stack-trampolines is not supported \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for this platform])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=no
</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;'>++ *-*-darwin2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ off_stack_trampolines=no
</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(off_stack_trampolines)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(gcov,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [ --disable-gcov don't provide libgcov and related host tools],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [], [enable_gcov=yes])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgcc/libgcc-std.ver.in libgcc/libgcc-std.ver.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a04cf14..79dc49e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/libgcc-std.ver.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/libgcc-std.ver.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1943,4 +1943,7 @@ GCC_4.8.0 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GCC_7.0.0 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __PFX__divmoddi4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __PFX__divmodti4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_nested_func_ptr_created
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __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;'>+diff --git libgcc/libgcc2.h libgcc/libgcc2.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1c20ffc..2fb7a05 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgcc/libgcc2.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgcc/libgcc2.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,6 +29,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma GCC visibility push(default)
</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;'>++extern void __builtin_nested_func_ptr_created (void *, void *, void **);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extern void __builtin_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;'>+ extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void __clear_cache (void *, void *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void __eprintf (const char *, const char *, unsigned int, const char *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgfortran/Makefile.am libgfortran/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a8a2191..d455dc6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgfortran/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,6 +29,10 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version_arg =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version_dep =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extra_ldflags_libgfortran += -nodefaultexport -nodefaultrpaths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extra_ldflags_libgfortran += -Wl,-rpath,@loader_path/
</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;'>+ gfor_c_HEADERS = $(srcdir)/ISO_Fortran_binding.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gfor_cdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -42,7 +46,7 @@ libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(LTLDFLAGS) $(LIBQUADLIB) ../libbacktrace/libbacktrace.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(HWCAP_LDFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -lm $(extra_ldflags_libgfortran) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(LIBM) $(extra_ldflags_libgfortran) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(version_arg) -Wc,-shared-libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgfortran/Makefile.in libgfortran/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 312a682..cd98098 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgfortran/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -91,8 +91,11 @@ POST_UNINSTALL = :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build_triplet = @build@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ host_triplet = @host@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_triplet = @target@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@LIBGFOR_MINIMAL_TRUE@am__append_1 = -DLIBGFOR_MINIMAL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@LIBGFOR_MINIMAL_FALSE@am__append_2 = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@am__append_1 = -nodefaultexport \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@ -nodefaultrpaths \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@ -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@LIBGFOR_MINIMAL_TRUE@am__append_2 = -DLIBGFOR_MINIMAL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@LIBGFOR_MINIMAL_FALSE@am__append_3 = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@io/close.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@io/file_pos.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@io/format.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,7 +113,7 @@ target_triplet = @target@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@io/fbuf.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@io/async.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@LIBGFOR_MINIMAL_FALSE@am__append_3 = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@LIBGFOR_MINIMAL_FALSE@am__append_4 = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@intrinsics/access.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@intrinsics/c99_functions.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@intrinsics/chdir.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -143,9 +146,9 @@ target_triplet = @target@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@intrinsics/umask.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@intrinsics/unlink.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@IEEE_SUPPORT_TRUE@am__append_4 = ieee/ieee_helper.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@LIBGFOR_MINIMAL_TRUE@am__append_5 = runtime/minimal.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@LIBGFOR_MINIMAL_FALSE@am__append_6 = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@IEEE_SUPPORT_TRUE@am__append_5 = ieee/ieee_helper.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@LIBGFOR_MINIMAL_TRUE@am__append_6 = runtime/minimal.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@LIBGFOR_MINIMAL_FALSE@am__append_7 = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@runtime/backtrace.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@runtime/convert_char.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGFOR_MINIMAL_FALSE@runtime/environ.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -157,7 +160,7 @@ target_triplet = @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;'>+ # dummy sources for libtool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@onestep_TRUE@am__append_7 = libgfortran_c.c libgfortran_f.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@onestep_TRUE@am__append_8 = libgfortran_c.c libgfortran_f.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ subdir = .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -569,7 +572,7 @@ AMTAR = @AMTAR@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Some targets require additional compiler options for IEEE compatibility.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_CFLAGS = @AM_CFLAGS@ -fcx-fortran-rules $(SECTION_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(IEEE_FLAGS) $(am__append_1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(IEEE_FLAGS) $(am__append_2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_FCFLAGS = @AM_FCFLAGS@ $(IEEE_FLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AR = @AR@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -608,6 +611,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LD = @LD@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS = @LDFLAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBM = @LIBM@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBOBJS = @LIBOBJS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBQUADINCLUDE = @LIBQUADINCLUDE@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBQUADLIB = @LIBQUADLIB@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -670,7 +674,8 @@ dvidir = @dvidir@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared = @enable_shared@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static = @enable_static@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exec_prefix = @exec_prefix@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extra_ldflags_libgfortran = @extra_ldflags_libgfortran@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++extra_ldflags_libgfortran = @extra_ldflags_libgfortran@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(am__append_1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ get_gcc_base_ver = @get_gcc_base_ver@
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -731,7 +736,7 @@ libgfortran_la_LINK = $(LINK) $(libgfortran_la_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgfortran_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(LTLDFLAGS) $(LIBQUADLIB) ../libbacktrace/libbacktrace.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(HWCAP_LDFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -lm $(extra_ldflags_libgfortran) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(LIBM) $(extra_ldflags_libgfortran) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(version_arg) -Wc,-shared-libgcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -752,7 +757,7 @@ AM_CPPFLAGS = -iquote$(srcdir)/io -I$(srcdir)/$(MULTISRCTOP)../gcc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -I$(MULTIBUILDTOP)../libbacktrace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -I../libbacktrace
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-gfor_io_src = io/size_from_kind.c $(am__append_2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++gfor_io_src = io/size_from_kind.c $(am__append_3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gfor_io_headers = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ io/io.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ io/fbuf.h \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -774,7 +779,7 @@ gfor_helper_src = intrinsics/associated.c intrinsics/abort.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ intrinsics/selected_int_kind.f90 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ intrinsics/selected_real_kind.f90 intrinsics/trigd.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ intrinsics/unpack_generic.c runtime/in_pack_generic.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- runtime/in_unpack_generic.c $(am__append_3) $(am__append_4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ runtime/in_unpack_generic.c $(am__append_4) $(am__append_5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @IEEE_SUPPORT_FALSE@gfor_ieee_src =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @IEEE_SUPPORT_TRUE@gfor_ieee_src = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @IEEE_SUPPORT_TRUE@ieee/ieee_arithmetic.F90 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -782,8 +787,8 @@ gfor_helper_src = intrinsics/associated.c intrinsics/abort.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @IEEE_SUPPORT_TRUE@ieee/ieee_features.F90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ gfor_src = runtime/bounds.c runtime/compile_options.c runtime/memory.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- runtime/string.c runtime/select.c $(am__append_5) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(am__append_6)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ runtime/string.c runtime/select.c $(am__append_6) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(am__append_7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i_all_c = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(srcdir)/generated/all_l1.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(srcdir)/generated/all_l2.c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1537,7 +1542,7 @@ intrinsics/random_init.f90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BUILT_SOURCES = $(gfor_built_src) $(gfor_built_specific_src) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(gfor_built_specific2_src) $(gfor_misc_specifics) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(am__append_7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(am__append_8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ prereq_SRC = $(gfor_src) $(gfor_built_src) $(gfor_io_src) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(gfor_helper_src) $(gfor_ieee_src) $(gfor_io_headers) $(gfor_specific_src)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgfortran/config/fpu-aarch64.h libgfortran/config/fpu-aarch64.h
</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 0000000..0746f42
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/config/fpu-aarch64.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,331 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* FPU-related code for aarch64.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Copyright (C) 2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Contributed by Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++This file is part of the GNU Fortran runtime library (libgfortran).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Libgfortran is free software; you can redistribute it and/or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++modify it under the terms of the GNU General Public
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++License as published by the Free Software Foundation; either
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++version 3 of the License, or (at your option) any later version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Libgfortran is distributed in the hope that it will be useful,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++but WITHOUT ANY WARRANTY; without even the implied warranty of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++GNU General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Under Section 7 of GPL version 3, you are granted additional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++permissions described in the GCC Runtime Library Exception, version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++3.1, as published by the Free Software Foundation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++You should have received a copy of the GNU General Public License and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++a copy of the GCC Runtime Library Exception along with this program;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++<http://www.gnu.org/licenses/>. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Rounding mask and modes */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FPCR_RM_MASK 0x0c00000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_TONEAREST 0x0000000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_UPWARD 0x0400000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_DOWNWARD 0x0800000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_TOWARDZERO 0x0c00000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_MAP_FZ 0x1000000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Exceptions */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_INVALID 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_DIVBYZERO 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_OVERFLOW 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_UNDERFLOW 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_INEXACT 16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_ALL_EXCEPT (FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FE_EXCEPT_SHIFT 8
</span><span style='display:block; white-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 structure corresponds to the layout of the block
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ written by FSTENV. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++struct fenv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int __fpcr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int __fpsr;
</span><span style='display:block; white-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 we can actually store the FPU state in the allocated size. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_Static_assert (sizeof(struct fenv) <= (size_t) GFC_FPE_STATE_BUFFER_SIZE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "GFC_FPE_STATE_BUFFER_SIZE is too small");
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set_fpu (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (options.fpe & GFC_FPE_DENORMAL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ estr_write ("Fortran runtime warning: Floating point 'denormal operand' "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "exception not supported.\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set_fpu_trap_exceptions (options.fpe, 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;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++get_fpu_trap_exceptions (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpcr, exceptions;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int res = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpcr = __builtin_aarch64_get_fpcr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exceptions = (fpcr >> FE_EXCEPT_SHIFT) & FE_ALL_EXCEPT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (exceptions & FE_INVALID) res |= GFC_FPE_INVALID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (exceptions & FE_DIVBYZERO) res |= GFC_FPE_ZERO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (exceptions & FE_OVERFLOW) res |= GFC_FPE_OVERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (exceptions & FE_UNDERFLOW) res |= GFC_FPE_UNDERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (exceptions & FE_INEXACT) res |= GFC_FPE_INEXACT;
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void set_fpu_trap_exceptions (int trap, int notrap)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int mode_set = 0, mode_clr = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpsr, fpsr_new;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpcr, fpcr_new;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (trap & GFC_FPE_INVALID)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_set |= FE_INVALID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (notrap & GFC_FPE_INVALID)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_clr |= FE_INVALID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (trap & GFC_FPE_ZERO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_set |= FE_DIVBYZERO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (notrap & GFC_FPE_ZERO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_clr |= FE_DIVBYZERO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (trap & GFC_FPE_OVERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_set |= FE_OVERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (notrap & GFC_FPE_OVERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_clr |= FE_OVERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (trap & GFC_FPE_UNDERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_set |= FE_UNDERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (notrap & GFC_FPE_UNDERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_clr |= FE_UNDERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (trap & GFC_FPE_INEXACT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_set |= FE_INEXACT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (notrap & GFC_FPE_INEXACT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mode_clr |= FE_INEXACT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Clear stalled exception flags. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpsr = __builtin_aarch64_get_fpsr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpsr_new = fpsr & ~FE_ALL_EXCEPT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fpsr_new != fpsr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_aarch64_set_fpsr(fpsr_new);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpcr_new = fpcr = __builtin_aarch64_get_fpcr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpcr_new |= (mode_set << FE_EXCEPT_SHIFT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpcr_new &= ~(mode_clr << FE_EXCEPT_SHIFT);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fpcr_new != fpcr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_aarch64_set_fpcr(fpcr_new);
</span><span style='display:block; white-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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++support_fpu_flag (int flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (flag & GFC_FPE_DENORMAL)
</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 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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++support_fpu_trap (int flag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (flag & GFC_FPE_DENORMAL)
</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 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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++get_fpu_except_flags (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpsr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpsr = __builtin_aarch64_get_fpsr() & FE_ALL_EXCEPT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fpsr & FE_INVALID)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result |= GFC_FPE_INVALID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fpsr & FE_DIVBYZERO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result |= GFC_FPE_ZERO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fpsr & FE_OVERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result |= GFC_FPE_OVERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fpsr & FE_UNDERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result |= GFC_FPE_UNDERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fpsr & FE_INEXACT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ result |= GFC_FPE_INEXACT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set_fpu_except_flags (int set, int clear)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int exc_set = 0, exc_clr = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpsr, fpsr_new;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (set & GFC_FPE_INVALID)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_set |= FE_INVALID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (clear & GFC_FPE_INVALID)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_clr |= FE_INVALID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (set & GFC_FPE_ZERO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_set |= FE_DIVBYZERO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (clear & GFC_FPE_ZERO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_clr |= FE_DIVBYZERO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (set & GFC_FPE_OVERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_set |= FE_OVERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (clear & GFC_FPE_OVERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_clr |= FE_OVERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (set & GFC_FPE_UNDERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_set |= FE_UNDERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (clear & GFC_FPE_UNDERFLOW)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_clr |= FE_UNDERFLOW;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (set & GFC_FPE_INEXACT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_set |= FE_INEXACT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (clear & GFC_FPE_INEXACT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ exc_clr |= FE_INEXACT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpsr_new = fpsr = __builtin_aarch64_get_fpsr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpsr_new &= ~exc_clr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpsr_new |= exc_set;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (fpsr_new != fpsr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_aarch64_set_fpsr(fpsr_new);
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++get_fpu_state (void *state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct fenv *envp = state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ envp->__fpcr = __builtin_aarch64_get_fpcr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ envp->__fpsr = __builtin_aarch64_get_fpsr();
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set_fpu_state (void *state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ struct fenv *envp = state;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_aarch64_set_fpcr(envp->__fpcr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_aarch64_set_fpsr(envp->__fpsr);
</span><span style='display:block; white-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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++get_fpu_rounding_mode (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpcr = __builtin_aarch64_get_fpcr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpcr &= FPCR_RM_MASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ switch (fpcr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case FE_TONEAREST:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return GFC_FPE_TONEAREST;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case FE_UPWARD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return GFC_FPE_UPWARD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case FE_DOWNWARD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return GFC_FPE_DOWNWARD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case FE_TOWARDZERO:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return GFC_FPE_TOWARDZERO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ default:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return 0; /* Should be unreachable. */
</span><span style='display:block; white-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;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set_fpu_rounding_mode (int round)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpcr, round_mode;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ switch (round)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case GFC_FPE_TONEAREST:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ round_mode = FE_TONEAREST;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case GFC_FPE_UPWARD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ round_mode = FE_UPWARD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case GFC_FPE_DOWNWARD:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ round_mode = FE_DOWNWARD;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case GFC_FPE_TOWARDZERO:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ round_mode = FE_TOWARDZERO;
</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;'>++ return; /* Should be unreachable. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpcr = __builtin_aarch64_get_fpcr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Only set FPCR if requested mode is different from current. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ round_mode = (fpcr ^ round_mode) & FPCR_RM_MASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (round_mode != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_aarch64_set_fpcr(fpcr ^ round_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;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++support_fpu_rounding_mode (int mode __attribute__((unused)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++support_fpu_underflow_control (int kind __attribute__((unused)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Not supported for binary128. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return (kind == 4 || kind == 8) ? 1 : 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;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++get_fpu_underflow_mode (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpcr = __builtin_aarch64_get_fpcr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ /* Return 0 for abrupt underflow (flush to zero), 1 for gradual underflow. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return (fpcr & FE_MAP_FZ) ? 0 : 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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set_fpu_underflow_mode (int gradual __attribute__((unused)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ unsigned int fpcr = __builtin_aarch64_get_fpcr();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (gradual)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpcr &= ~FE_MAP_FZ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpcr |= FE_MAP_FZ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ __builtin_aarch64_set_fpcr(fpcr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgfortran/configure libgfortran/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1b4a8b1..0cf1b19 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgfortran/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -654,9 +654,12 @@ extra_ldflags_libgfortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_ct_FC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FCFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ FC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_host_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIPO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -818,6 +821,7 @@ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_largefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libquadmath_support
</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;'>+@@ -1473,6 +1477,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-largefile omit support for large files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libquadmath-support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ disable libquadmath support for Fortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9174,7 +9180,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;'>+@@ -10884,6 +10890,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10901,9 +10950,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -12721,7 +12774,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12724 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12777 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12827,7 +12880,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12830 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12883 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13064,6 +13117,147 @@ CC="$lt_save_CC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only expand once:
</span><span style='display:block; white-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=
</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;'>++*-ncr-sysv4.3*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-lmw $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin and then its argument prototype would still apply. */
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char _mwvalidcheckl ();
</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;'>++return _mwvalidcheckl ();
</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;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_mw__mwvalidcheckl=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_mw__mwvalidcheckl=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS=$ac_check_lib_save_LIBS
</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: $ac_cv_lib_mw__mwvalidcheckl" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBM="-lmw"
</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;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for cos in -lm... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ${ac_cv_lib_m_cos+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-lm $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin and then its argument prototype would still apply. */
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char cos ();
</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;'>++return cos ();
</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;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_m_cos=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_m_cos=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS=$ac_check_lib_save_LIBS
</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: $ac_cv_lib_m_cos" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$ac_cv_lib_m_cos" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "x$ac_cv_lib_m_cos" = xyes; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBM="$LIBM -lm"
</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;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for cos in -lm... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ${ac_cv_lib_m_cos+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-lm $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin and then its argument prototype would still apply. */
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char cos ();
</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;'>++return cos ();
</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;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_m_cos=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_m_cos=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS=$ac_check_lib_save_LIBS
</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: $ac_cv_lib_m_cos" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$ac_cv_lib_m_cos" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "x$ac_cv_lib_m_cos" = xyes; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBM="-lm"
</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;'>++esac
</span><span style='display:block; white-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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13088,6 +13282,14 @@ esac
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We need gfortran to compile parts of the library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14731,6 +14933,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_FC=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_FC=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_FC=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14748,9 +14993,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -16015,8 +16264,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # extra LD Flags which are required for targets
</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;'>+- # Darwin needs -single_module when linking libgfortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*-darwin[4567]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Earlier Darwin needs -single_module when linking libgfortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_ldflags_libgfortran=-Wl,-single_module
</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;'>+@@ -27392,6 +27641,10 @@ if test -z "${HAVE_HWCAP_TRUE}" && test -z "${HAVE_HWCAP_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"HAVE_HWCAP\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${LIBGFOR_BUILD_QUAD_TRUE}" && test -z "${LIBGFOR_BUILD_QUAD_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"LIBGFOR_BUILD_QUAD\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgfortran/configure.ac libgfortran/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 711dc60..f66aab0 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgfortran/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -251,9 +251,11 @@ AC_PROG_INSTALL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #AC_MSG_NOTICE([====== Starting libtool configuration])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_LIBTOOL_DLOPEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LT_LIB_M
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACX_LT_HOST_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</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;'>+ #AC_MSG_NOTICE([====== Finished libtool configuration]) ; sleep 10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # We need gfortran to compile parts of the library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -263,8 +265,8 @@ AC_PROG_FC(gfortran)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # extra LD Flags which are required for targets
</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;'>+- # Darwin needs -single_module when linking libgfortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-*-darwin[[4567]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Earlier Darwin needs -single_module when linking libgfortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_ldflags_libgfortran=-Wl,-single_module
</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;'>+diff --git libgfortran/configure.host libgfortran/configure.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5824f25..6f1183f3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgfortran/configure.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/configure.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,17 +36,29 @@ if test "x${have_feenableexcept}" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ieee_support='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;'>+-# x86 asm should be used instead of glibc, since glibc doesn't support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# the x86 denormal exception.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "${host_cpu}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # x86 asm should be used instead of glibc, since glibc doesn't support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # the x86 denormal exception.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ i?86 | x86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "x${have_soft_float}" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fpu_host='fpu-generic'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ieee_support='no'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fpu_host='fpu-387'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ieee_support='yes'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ieee_support='yes'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # use asm on aarch64-darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case "${host_os}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fpu_host='fpu-aarch64'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ieee_support='yes'
</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;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Some targets require additional compiler options for NaN/Inf.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgfortran/kinds-override.h libgfortran/kinds-override.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index baa0f7e1..ddc97ef 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgfortran/kinds-override.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/kinds-override.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -23,24 +23,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <http://www.gnu.org/licenses/>. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/* What are the C types corresponding to the real(kind=10) and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- real(kind=16) types? We currently rely on the following assumptions:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -- if real(kind=10) exists, i.e. if HAVE_GFC_REAL_10 is defined,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- then it is necessarily the "long double" type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -- if real(kind=16) exists, then:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * if HAVE_GFC_REAL_10, real(kind=16) is "__float128"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * otherwise, real(kind=16) is "long double"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- To allow to change this in the future, we create the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- GFC_REAL_16_IS_FLOAT128 macro that is used throughout libgfortran. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if defined(HAVE_GFC_REAL_16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if defined(HAVE_GFC_REAL_10)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# define GFC_REAL_16_IS_FLOAT128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# if !defined(HAVE_FLOAT128)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# error "Where has __float128 gone?"
</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 GFC_REAL_16_IS_LONG_DOUBLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Ensure that TFmode is available under. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(GFC_REAL_16_IS_FLOAT128) && !defined(HAVE_FLOAT128)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# error "Where has __float128 gone?"
</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;'>+diff --git libgfortran/libgfortran.spec.in libgfortran/libgfortran.spec.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 95aa3f8..367d485 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgfortran/libgfortran.spec.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/libgfortran.spec.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5,4 +5,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %rename lib liborig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-*lib: @LIBQUADSPEC@ -lm %(libgcc) %(liborig)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++*lib: @LIBQUADSPEC@ @LIBM@ %(libgcc) %(liborig)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgfortran/mk-kinds-h.sh libgfortran/mk-kinds-h.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 98a95ab..49f65a3 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgfortran/mk-kinds-h.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgfortran/mk-kinds-h.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -61,15 +61,19 @@ for k in $possible_real_kinds; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $k in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4) ctype="float" ; cplxtype="complex float" ; suffix="f" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8) ctype="double" ; cplxtype="complex double" ; suffix="" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # If we have a REAL(KIND=10), it is always long double
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 10) ctype="long double" ; cplxtype="complex long double" ; suffix="l" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 16) if [ $long_double_kind -eq 10 ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # If we have a REAL(KIND=16), it is either long double or __float128
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 16) if [ $long_double_kind -ne 16 ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ctype="__float128"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cplxtype="_Complex float __attribute__((mode(TC)))"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ suffix="q"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "#define GFC_REAL_16_IS_FLOAT128"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ctype="long double"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cplxtype="complex long double"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ suffix="l"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "#define GFC_REAL_16_IS_LONG_DOUBLE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *) echo "$0: Unknown type" >&2 ; exit 1 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgo/configure.ac libgo/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f800d44..b34cbf3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgo/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgo/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,6 +49,7 @@ AC_LIBTOOL_DLOPEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CC_FOR_BUILD=${CC_FOR_BUILD:-gcc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(CC_FOR_BUILD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgomp/Makefile.am libgomp/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 669b9e4..eb0c9a2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgomp/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgomp/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,9 +53,13 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_version_script =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_version_dep =
</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;'>+ libgomp_version_info = -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libgomp_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_la_LDFLAGS = $(libgomp_version_info) $(libgomp_version_script) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(lt_host_flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(lt_host_flags) $(libgomp_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_la_DEPENDENCIES = $(libgomp_version_dep)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_la_LINK = $(LINK) $(libgomp_la_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgomp/Makefile.in libgomp/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ae5d9d5..3f4467a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgomp/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgomp/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -560,8 +560,9 @@ nodist_toolexeclib_HEADERS = libgomp.spec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGOMP_BUILD_VERSIONED_SHLIB_GNU_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@libgomp_version_dep = libgomp.ver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBGOMP_BUILD_VERSIONED_SHLIB_TRUE@libgomp_version_dep = libgomp.ver-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_version_info = -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libgomp_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_la_LDFLAGS = $(libgomp_version_info) $(libgomp_version_script) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(lt_host_flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(lt_host_flags) $(libgomp_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_la_DEPENDENCIES = $(libgomp_version_dep)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgomp_la_LINK = $(LINK) $(libgomp_la_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgomp/configure libgomp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5240f7e..6b9c137 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgomp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgomp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -695,6 +695,8 @@ FC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_host_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -834,6 +836,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_cuda_driver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_cuda_driver_include
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1494,6 +1497,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable make rules and dependencies not useful (and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sometimes confusing) to the casual installer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7645,7 +7650,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;'>+@@ -9618,6 +9623,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9635,9 +9683,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -11434,7 +11486,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11437 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11489 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11540,7 +11592,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11543 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11595 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11801,6 +11853,14 @@ esac
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13476,6 +13536,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_FC=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_FC=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_FC=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13493,9 +13596,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -17199,6 +17306,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"BUILD_INFO\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libgomp/configure.ac libgomp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ef5d293..4b572bb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libgomp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libgomp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -146,6 +146,7 @@ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACX_LT_HOST_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_MAINTAINER_MODE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libhsail-rt/configure libhsail-rt/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 33e6148..22a5060 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libhsail-rt/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libhsail-rt/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -640,6 +640,8 @@ toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexecdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIPO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -780,6 +782,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</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;'>+@@ -1432,6 +1435,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</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;'>+@@ -9425,6 +9430,56 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNSET,darwin1[56789]*|UNSET,darwin20*|10.1[123456789][,.]*|11.*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9442,10 +9497,19 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#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;'>+- 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;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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:#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_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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "NOT using Darwin @rpath" 1>&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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:#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;'>++ 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;'>++ fi
</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;'>+ ld_shlibs=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11241,7 +11305,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11244 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11308 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11347,7 +11411,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11350 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11414 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12223,6 +12287,56 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNSET,darwin[45678]*|UNSET,rhapsody*|10.[01234][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ UNSET,darwin1[56789]*|UNSET,darwin20*|10.1[123456789][,.]*|11.*[,.]* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 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;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12240,12 +12354,25 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_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;'>+- 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;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "using Darwin @rpath" 1>&5
</span><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 @rpath/\$soname \$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_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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ echo "NOT using Darwin @rpath" 1>&5
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_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;'>++ 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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><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 @rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -14843,6 +14970,14 @@ if test -z "${MAC_LINKER_SCRIPT_TRUE}" && test -z "${MAC_LINKER_SCRIPT_FALSE}";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAC_LINKER_SCRIPT\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</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;'>+ : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libitm/Makefile.am libitm/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3f31ad3..712aeec 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libitm/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libitm/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,7 +54,10 @@ libitm_version_info = -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # want or need libstdc++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libitm_la_DEPENDENCIES = $(libitm_version_dep)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libitm_la_LINK = $(LINK) $(libitm_la_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libitm_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script) $(libitm_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libitm_la_SOURCES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc barrier.cc beginend.cc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libitm/Makefile.in libitm/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7f53ea9..53e1151 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libitm/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libitm/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -481,7 +481,8 @@ libitm_version_info = -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # want or need libstdc++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libitm_la_DEPENDENCIES = $(libitm_version_dep)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libitm_la_LINK = $(LINK) $(libitm_la_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libitm_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libitm_la_LDFLAGS = $(libitm_version_info) $(libitm_version_script) $(libitm_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libitm_la_SOURCES = aatree.cc alloc.cc alloc_c.cc alloc_cpp.cc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ barrier.cc beginend.cc clone.cc eh_cpp.cc local.cc query.cc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ retry.cc rwlock.cc useraction.cc util.cc sjlj.S tls.cc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libitm/config/aarch64/sjlj.S libitm/config/aarch64/sjlj.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e2093ca..0435d6d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libitm/config/aarch64/sjlj.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libitm/config/aarch64/sjlj.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,10 +28,19 @@
</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;'>+ .align 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __ELF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .global _ITM_beginTransaction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .type _ITM_beginTransaction, %function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _ITM_beginTransaction:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif __MACH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .global __ITM_beginTransaction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ITM_beginTransaction:
</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;'>+ cfi_startproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ BTI_C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mov x1, sp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,8 +62,13 @@ _ITM_beginTransaction:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Invoke GTM_begin_transaction with the struct we just built. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mov x1, sp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __ELF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bl GTM_begin_transaction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif __MACH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ bl _GTM_begin_transaction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#error "unexpected object format"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Return; we don't need to restore any of the call-saved regs. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ldp x29, x30, [sp], 11*16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfi_adjust_cfa_offset(-11*16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -62,14 +76,23 @@ _ITM_beginTransaction:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfi_restore(x30)
</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;'>++#if __ELF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .size _ITM_beginTransaction, . - _ITM_beginTransaction
</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;'>+ .align 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __ELF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .global GTM_longjmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .hidden GTM_longjmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .type GTM_longjmp, %function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GTM_longjmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif __MACH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ .private_extern _GTM_longjmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_GTM_longjmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* The first parameter becomes the return value (x0).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ The third parameter is ignored for now. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfi_startproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,7 +112,9 @@ GTM_longjmp:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mov sp, x3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ br x30
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __ELF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .size GTM_longjmp, . - GTM_longjmp
</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;'>+ /* GNU_PROPERTY_AARCH64_* macros from elf.h for use in asm code. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FEATURE_1_AND 0xc0000000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libitm/configure libitm/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ea31a1d..3a7c24d 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libitm/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libitm/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -660,6 +660,8 @@ libtool_VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -810,6 +812,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_linux_futex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_tls
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1461,6 +1464,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable make rules and dependencies not useful (and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sometimes confusing) to the casual installer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8276,7 +8281,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;'>+@@ -10250,6 +10255,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10267,9 +10315,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -12066,7 +12118,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12069 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12121 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12172,7 +12224,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12175 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12227 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13048,6 +13100,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13065,12 +13160,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -15432,6 +15535,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18173,6 +18284,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"BUILD_INFO\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libitm/configure.ac libitm/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9422889..c2a47f1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libitm/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libitm/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -157,6 +157,7 @@ AM_CONDITIONAL(BUILD_INFO, test $gcc_cv_prog_makeinfo_modern = "yes")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_MAINTAINER_MODE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libitm/configure.tgt libitm/configure.tgt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d1beb5c..e0c952b 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libitm/configure.tgt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libitm/configure.tgt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Map the target cpu to an ARCH sub-directory. At the same time,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # work out any special compilation flags as necessary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case "${target_cpu}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- aarch64*) ARCH=aarch64 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ aarch64* | arm64*) ARCH=aarch64 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ alpha*) ARCH=alpha ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rs6000 | powerpc*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ XCFLAGS="${XCFLAGS} -mhtm"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libitm/testsuite/lib/libitm.exp libitm/testsuite/lib/libitm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b3d247b..8f9adab 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libitm/testsuite/lib/libitm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libitm/testsuite/lib/libitm.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -158,6 +158,7 @@ proc libitm_init { 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;'>+ 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;'>+ lappend ALWAYS_CFLAGS "additional_flags=-shared-libgcc"
</span><span style='display:block; white-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 libitm/testsuite/libitm.c++/c++.exp libitm/testsuite/libitm.c++/c++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c858385..c6b174d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libitm/testsuite/libitm.c++/c++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libitm/testsuite/libitm.c++/c++.exp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -56,8 +56,10 @@ if { $lang_test_file_found } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Gather a list of all tests.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set tests [lsort [glob -nocomplain $srcdir/$subdir/*.C]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set stdcxxadder ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { $blddir != "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_path}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ set stdcxxadder "-B ${blddir}/${lang_library_path}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ld_library_path "$always_ld_library_path"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,7 +74,7 @@ if { $lang_test_file_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;'>+ # Main loop.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- dg-runtest $tests "" $libstdcxx_includes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ dg-runtest $tests $stdcxxadder $libstdcxx_includes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</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;'>+diff --git libobjc/configure libobjc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 32c389f..4b8b776 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libobjc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libobjc/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -636,6 +636,8 @@ OBJC_BOEHM_GC_LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OBJC_BOEHM_GC_INCLUDES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OBJC_BOEHM_GC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OBJC_GCFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ SET_MAKE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -755,6 +757,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_tls
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_objc_gc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_target_bdw_gc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1392,6 +1395,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-tls Use thread-local storage [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-objc-gc enable use of Boehm's garbage collector with the GNU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Objective-C runtime
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3431,10 +3436,21 @@ esac
</span><span style='display:block; white-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;'>+- *-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # Darwin needs -single_module when linking libobjc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin[4567]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Earlier Darwin versions need -single_module when linking libobjc; they
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # do not support @rpath.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_ldflags_libobjc='$(lt_host_flags) -Wl,-single_module'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Otherwise, single_module is the default and multi-module is ignored and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # obsolete.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_ldflags_libobjc='$(lt_host_flags) -nodefaultrpaths'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_ldflags_libobjc +='$(lt_host_flags) -Wl,-rpath,@loader_path'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_ldflags_libobjc='$(lt_host_flags)'
</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;'>+ *-cygwin*|*-mingw*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Tell libtool to build DLLs on Windows
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_ldflags_libobjc='$(lt_host_flags)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6963,7 +6979,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;'>+@@ -8940,6 +8956,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8957,9 +9016,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -10777,7 +10840,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 10780 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10843 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10883,7 +10946,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 10886 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10949 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11155,6 +11218,15 @@ $as_echo "no" >&6; }
</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$enable_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # Headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # -------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11896,6 +11968,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</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;'>+ : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libobjc/configure.ac libobjc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9c8aa82..cd540b8 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libobjc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libobjc/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -148,10 +148,21 @@ m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # extra LD Flags which are required for targets
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACX_LT_HOST_FLAGS
</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;'>+- # Darwin needs -single_module when linking libobjc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin[[4567]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Earlier Darwin versions need -single_module when linking libobjc; they
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # do not support @rpath.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_ldflags_libobjc='$(lt_host_flags) -Wl,-single_module'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Otherwise, single_module is the default and multi-module is ignored and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # obsolete.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_ldflags_libobjc='$(lt_host_flags) -nodefaultrpaths'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_ldflags_libobjc +='$(lt_host_flags) -Wl,-rpath,@loader_path'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extra_ldflags_libobjc='$(lt_host_flags)'
</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;'>+ *-cygwin*|*-mingw*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Tell libtool to build DLLs on Windows
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extra_ldflags_libobjc='$(lt_host_flags)'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -182,6 +193,8 @@ AM_PROG_CC_C_O
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_PROG_MAKE_SET
</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;'>++
</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;'>+ # -------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git liboffloadmic/configure liboffloadmic/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cd01179..9dab284 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- liboffloadmic/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ liboffloadmic/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -639,6 +639,8 @@ link_offloadmic_host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_cv_dlopen_libs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexecdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -782,6 +784,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</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;'>+@@ -1434,6 +1437,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</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;'>+@@ -7900,23 +7905,25 @@ _LT_EOF
</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: $lt_cv_ld_force_load" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case $host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rhapsody* | darwin1.[012])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Allow for Darwin 4-7 (macOS 10.0-10.3) although these are not expect to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # build without first building modern cctools / linker.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host_cpu-$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-rhapsody* | *-darwin1.[012])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- darwin1.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin1.*)
</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;'>+- darwin*) # darwin 5.x on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # if running on 10.5 or later, the deployment target defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # to the OS version, if on x86, and 10.4, the deployment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # target defaults to 10.4. Don't you love it?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin*)
</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][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;'>+- 10.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- esac
</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;'>++ ;;
</span><span style='display:block; white-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;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9614,6 +9621,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9631,9 +9681,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -11430,7 +11484,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11433 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11487 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11536,7 +11590,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11539 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11593 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12412,6 +12466,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12429,12 +12526,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -14794,6 +14899,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only expand once:
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # Forbid libtool to hardcode RPATH, because we want to be able to specify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # library search directory using LD_LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_into_libs=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15009,6 +15123,10 @@ if test -z "${LIBOFFLOADMIC_HOST_TRUE}" && test -z "${LIBOFFLOADMIC_HOST_FALSE}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"LIBOFFLOADMIC_HOST\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</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;'>+ : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git liboffloadmic/configure.ac liboffloadmic/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f64f182..b96e7ea 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- liboffloadmic/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ liboffloadmic/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -118,6 +118,8 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_LIBTOOL_DLOPEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Forbid libtool to hardcode RPATH, because we want to be able to specify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # library search directory using LD_LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_into_libs=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git liboffloadmic/plugin/Makefile.in liboffloadmic/plugin/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8d5ad00..c53f2d3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- liboffloadmic/plugin/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ liboffloadmic/plugin/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -123,10 +123,10 @@ subdir = .
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ am__aclocal_m4_deps = $(top_srcdir)/../../config/acx.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_srcdir)/../../config/depstand.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(top_srcdir)/../../config/toolexeclibdir.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_srcdir)/../../config/lead-dot.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_srcdir)/../../config/multi.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_srcdir)/../../config/override.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(top_srcdir)/../../config/toolexeclibdir.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_srcdir)/../../libtool.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_srcdir)/../../ltoptions.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_srcdir)/../../ltsugar.m4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git liboffloadmic/plugin/aclocal.m4 liboffloadmic/plugin/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9fa1d12..1bb9140 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- liboffloadmic/plugin/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ liboffloadmic/plugin/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1169,10 +1169,10 @@ AC_SUBST([am__untar])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../../config/acx.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../../config/depstand.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-m4_include([../../config/toolexeclibdir.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../../config/lead-dot.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../../config/multi.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../../config/override.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++m4_include([../../config/toolexeclibdir.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../../libtool.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../../ltoptions.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_include([../../ltsugar.m4])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git liboffloadmic/plugin/configure liboffloadmic/plugin/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cf48522..d5fad1a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- liboffloadmic/plugin/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ liboffloadmic/plugin/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -635,6 +635,8 @@ 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;'>+ toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexecdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -778,6 +780,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</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;'>+@@ -1431,6 +1434,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</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;'>+@@ -7280,23 +7285,25 @@ _LT_EOF
</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: $lt_cv_ld_force_load" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case $host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rhapsody* | darwin1.[012])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Allow for Darwin 4-7 (macOS 10.0-10.3) although these are not expect to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # build without first building modern cctools / linker.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host_cpu-$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-rhapsody* | *-darwin1.[012])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- darwin1.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin1.*)
</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;'>+- darwin*) # darwin 5.x on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # if running on 10.5 or later, the deployment target defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # to the OS version, if on x86, and 10.4, the deployment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # target defaults to 10.4. Don't you love it?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin*)
</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][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;'>+- 10.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- esac
</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;'>++ ;;
</span><span style='display:block; white-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;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9261,6 +9268,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9278,9 +9328,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -11077,7 +11131,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11080 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11134 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11183,7 +11237,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11186 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11240 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12059,6 +12113,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12076,12 +12173,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -14441,6 +14546,15 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only expand once:
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # Forbid libtool to hardcode RPATH, because we want to be able to specify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # library search directory using LD_LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_into_libs=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14644,6 +14758,10 @@ if test -z "${PLUGIN_HOST_TRUE}" && test -z "${PLUGIN_HOST_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"PLUGIN_HOST\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</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;'>+ : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git liboffloadmic/plugin/configure.ac liboffloadmic/plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index cbcd013..3329b03 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- liboffloadmic/plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ liboffloadmic/plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -134,6 +134,8 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_LIBTOOL_DLOPEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Forbid libtool to hardcode RPATH, because we want to be able to specify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # library search directory using LD_LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_into_libs=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/configure libphobos/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 29595b9..60497aa 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -705,6 +705,8 @@ libphobos_builddir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ get_gcc_base_ver
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ phobos_compiler_shared_flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ phobos_compiler_pic_flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIPO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -830,6 +832,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</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;'>+ enable_werror
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_libatomic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1481,6 +1484,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-werror turns on -Werror [default=no]
</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;'>+ Specify that runtime libraries should be installed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8128,7 +8133,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;'>+@@ -9833,6 +9838,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9850,9 +9898,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -11649,7 +11701,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11652 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11704 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11755,7 +11807,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11758 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11810 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13280,6 +13332,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_D=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_D=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_D=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13297,9 +13392,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -13899,6 +13998,14 @@ CFLAGS=$lt_save_CFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GDCFLAGS=$gdc_save_DFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test x$enable_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # libtool variables for Phobos shared and position-independent compiles.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15578,6 +15685,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${DRUNTIME_CPU_AARCH64_TRUE}" && test -z "${DRUNTIME_CPU_AARCH64_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"DRUNTIME_CPU_AARCH64\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/configure.ac libphobos/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c21da59..7b52ab7 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77,6 +77,7 @@ AC_SUBST(CFLAGS_FOR_BUILD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LT_INIT(dlopen)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ WITH_LOCAL_DRUNTIME([LT_LANG([D])], [])
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # libtool variables for Phobos shared and position-independent compiles.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/libdruntime/Makefile.am libphobos/libdruntime/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1d340a0..740a8f2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/libdruntime/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/libdruntime/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -121,8 +121,11 @@ ALL_DRUNTIME_SOURCES = $(DRUNTIME_DSOURCES) $(DRUNTIME_CSOURCES) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexeclib_LTLIBRARIES = libgdruntime.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_SOURCES = $(ALL_DRUNTIME_SOURCES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_LIBTOOLFLAGS =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libgdruntime_darwin_rpath = -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../src,-Bgcc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -version-info $(libtool_VERSION) $(libgdruntime_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_LIBADD = $(LIBATOMIC) $(LIBBACKTRACE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_DEPENDENCIES = $(DRTSTUFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Also override library link commands: This is not strictly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/libdruntime/Makefile.in libphobos/libdruntime/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3fddbc3..f441ce4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/libdruntime/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/libdruntime/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -753,8 +753,9 @@ ALL_DRUNTIME_SOURCES = $(DRUNTIME_DSOURCES) $(DRUNTIME_CSOURCES) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexeclib_LTLIBRARIES = libgdruntime.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_SOURCES = $(ALL_DRUNTIME_SOURCES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_LIBTOOLFLAGS =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libgdruntime_darwin_rpath = -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../src,-Bgcc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -version-info $(libtool_VERSION) $(libgdruntime_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_LIBADD = $(LIBATOMIC) $(LIBBACKTRACE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgdruntime_la_DEPENDENCIES = $(DRTSTUFF)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/src/Makefile.am libphobos/src/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9fb416e..4efa69f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/src/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/src/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -40,8 +40,11 @@ toolexeclib_DATA = libgphobos.spec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexeclib_LTLIBRARIES = libgphobos.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_LIBTOOLFLAGS =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libgphobos_darwin_rpath = -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../libdruntime/gcc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -version-info $(libtool_VERSION) $(libgphobos_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_LIBADD = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ../libdruntime/libgdruntime_convenience.la $(LIBZ)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_DEPENDENCIES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libphobos/src/Makefile.in libphobos/src/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4b1ae86..4da0021 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libphobos/src/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libphobos/src/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -488,8 +488,9 @@ toolexeclib_DATA = libgphobos.spec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexeclib_LTLIBRARIES = libgphobos.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_SOURCES = $(ALL_PHOBOS_SOURCES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_LIBTOOLFLAGS =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libgphobos_darwin_rpath = -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_LDFLAGS = -Wc,-nophoboslib,-dstartfiles,-B../libdruntime/gcc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -version-info $(libtool_VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -version-info $(libtool_VERSION) $(libgphobos_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libgphobos_la_LIBADD = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ../libdruntime/libgdruntime_convenience.la $(LIBZ)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libquadmath/Makefile.am libquadmath/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 35dffb4..f85d38f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libquadmath/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libquadmath/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,8 +36,12 @@ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexeclib_LTLIBRARIES = libquadmath.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libquadmath_la_LIBADD =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libquadmath_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libquadmath_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(version_arg) $(lt_host_flags) -lm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(version_arg) $(lt_host_flags) $(LIBM) $(libquadmath_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libquadmath/Makefile.in libquadmath/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8c01121..1f30d17 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libquadmath/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libquadmath/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -355,6 +355,7 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LD = @LD@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LDFLAGS = @LDFLAGS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBM = @LIBM@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBOBJS = @LIBOBJS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBS = @LIBS@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBTOOL = @LIBTOOL@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -463,8 +464,9 @@ AUTOMAKE_OPTIONS = foreign info-in-builddir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @BUILD_LIBQUADMATH_TRUE@@LIBQUAD_USE_SYMVER_SUN_TRUE@@LIBQUAD_USE_SYMVER_TRUE@version_dep = quadmath.map-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @BUILD_LIBQUADMATH_TRUE@toolexeclib_LTLIBRARIES = libquadmath.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @BUILD_LIBQUADMATH_TRUE@libquadmath_la_LIBADD =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@BUILD_LIBQUADMATH_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@libquadmath_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @BUILD_LIBQUADMATH_TRUE@libquadmath_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@BUILD_LIBQUADMATH_TRUE@ $(version_arg) $(lt_host_flags) -lm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@BUILD_LIBQUADMATH_TRUE@ $(version_arg) $(lt_host_flags) $(LIBM) $(libquadmath_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @BUILD_LIBQUADMATH_TRUE@libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @BUILD_LIBQUADMATH_TRUE@nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libquadmath/configure libquadmath/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b5b212c..75bcf1d 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libquadmath/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libquadmath/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -644,11 +644,14 @@ LIBQUAD_USE_SYMVER_GNU_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBQUAD_USE_SYMVER_GNU_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBQUAD_USE_SYMVER_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBQUAD_USE_SYMVER_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexecdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MAINTAINER_MODE_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_host_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -785,6 +788,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_maintainer_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_symvers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1435,6 +1439,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-maintainer-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable make rules and dependencies not useful (and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sometimes confusing) to the casual installer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7267,7 +7273,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 +8985,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8996,9 +9045,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -10816,7 +10869,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 10819 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10872 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10922,7 +10975,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 10925 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10978 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11183,6 +11236,14 @@ esac
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12147,6 +12208,148 @@ esac
</span><span style='display:block; white-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;'>++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;'>++*-ncr-sysv4.3*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-lmw $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin and then its argument prototype would still apply. */
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char _mwvalidcheckl ();
</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;'>++return _mwvalidcheckl ();
</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;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_mw__mwvalidcheckl=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_mw__mwvalidcheckl=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS=$ac_check_lib_save_LIBS
</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: $ac_cv_lib_mw__mwvalidcheckl" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBM="-lmw"
</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;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for cos in -lm... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ${ac_cv_lib_m_cos+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-lm $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin and then its argument prototype would still apply. */
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char cos ();
</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;'>++return cos ();
</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;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_m_cos=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_m_cos=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS=$ac_check_lib_save_LIBS
</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: $ac_cv_lib_m_cos" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$ac_cv_lib_m_cos" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "x$ac_cv_lib_m_cos" = xyes; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBM="$LIBM -lm"
</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;'>++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking for cos in -lm... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ${ac_cv_lib_m_cos+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_check_lib_save_LIBS=$LIBS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS="-lm $LIBS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$gcc_no_link = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Override any GCC internal prototype to avoid an error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ Use char because int might match the return type of a GCC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ builtin and then its argument prototype would still apply. */
</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;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++char cos ();
</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;'>++return cos ();
</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;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_link "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_m_cos=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ac_cv_lib_m_cos=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core conftest.err conftest.$ac_objext \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ conftest$ac_exeext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++LIBS=$ac_check_lib_save_LIBS
</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: $ac_cv_lib_m_cos" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$ac_cv_lib_m_cos" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "x$ac_cv_lib_m_cos" = xyes; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ LIBM="-lm"
</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;'>++esac
</span><span style='display:block; white-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 ac_header in fenv.h langinfo.h locale.h wchar.h wctype.h limits.h ctype.h printf.h errno.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ do :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13379,6 +13582,10 @@ if test -z "${BUILD_INFO_TRUE}" && test -z "${BUILD_INFO_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"BUILD_INFO\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libquadmath/configure.ac libquadmath/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f9d745e..2431d69 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libquadmath/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libquadmath/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -59,6 +59,7 @@ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACX_LT_HOST_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_MAINTAINER_MODE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -121,6 +122,8 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(toolexecdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(toolexeclibdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_CHECK_LIBM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CHECK_HEADERS(fenv.h langinfo.h locale.h wchar.h wctype.h limits.h ctype.h printf.h errno.h)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBQUAD_CHECK_MATH_H_SIGNGAM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/asan/Makefile.am libsanitizer/asan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7bba555..415fda5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/asan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/asan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,7 +60,11 @@ libasan_la_LIBADD += $(top_builddir)/libbacktrace/libsanitizer_libbacktrace.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libasan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libasan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_libasan)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libasan_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libasan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(link_libasan) $(libasan_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libasan_preinit.o: asan_preinit.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp $< $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/asan/Makefile.in libsanitizer/asan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bad15b7..f4984a9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/asan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/asan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -462,7 +462,10 @@ libasan_la_LIBADD = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/sanitizer_common/libsanitizer_common.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/lsan/libsanitizer_lsan.la $(am__append_2) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(am__append_3) $(LIBSTDCXX_RAW_CXX_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libasan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_libasan)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libasan_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libasan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(link_libasan) $(libasan_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Work around what appears to be a GNU make bug handling MAKEFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # values defined in terms of make variables, as is the case for CC and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/configure libsanitizer/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ed0c15e..cc3f7f6 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -662,6 +662,8 @@ LSAN_SUPPORTED_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LSAN_SUPPORTED_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TSAN_SUPPORTED_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TSAN_SUPPORTED_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CXXCPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -813,6 +815,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</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;'>+ enable_cet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1466,6 +1469,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-cet enable Intel CET in target libraries [default=no]
</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;'>+@@ -8842,7 +8847,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;'>+@@ -10547,6 +10552,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10564,9 +10612,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -12363,7 +12415,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12366 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12418 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12469,7 +12521,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12472 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12524 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13345,6 +13397,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13362,12 +13457,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -15777,6 +15880,15 @@ esac
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # The cast to long int works around a bug in the HP C Compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17075,6 +17187,10 @@ if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${TSAN_SUPPORTED_TRUE}" && test -z "${TSAN_SUPPORTED_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"TSAN_SUPPORTED\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/configure.ac libsanitizer/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a0950c2..90409a5 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -85,6 +85,8 @@ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_CHECK_SIZEOF([void *])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${multilib}" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/lsan/Makefile.am libsanitizer/lsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 62ea17d..d26be2c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/lsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/lsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,8 +39,11 @@ if LIBBACKTRACE_SUPPORTED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ liblsan_la_LIBADD += $(top_builddir)/libbacktrace/libsanitizer_libbacktrace.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ liblsan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-liblsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_liblsan)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++liblsan_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++liblsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(link_liblsan) $(liblsan_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ liblsan_preinit.o: lsan_preinit.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp $< $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/lsan/Makefile.in libsanitizer/lsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index acc76ca..99bcd95 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/lsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/lsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -408,7 +408,10 @@ liblsan_la_LIBADD = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/sanitizer_common/libsanitizer_common.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/interception/libinterception.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(am__append_1) $(LIBSTDCXX_RAW_CXX_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-liblsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_liblsan)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@liblsan_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++liblsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(link_liblsan) $(liblsan_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Work around what appears to be a GNU make bug handling MAKEFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # values defined in terms of make variables, as is the case for CC and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -782,7 +785,6 @@ uninstall-am: uninstall-nodist_toolexeclibHEADERS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PRECIOUS: Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ liblsan_preinit.o: lsan_preinit.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp $< $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/sanitizer_common/sanitizer_mac.h libsanitizer/sanitizer_common/sanitizer_mac.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2257883..d916870 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/sanitizer_common/sanitizer_mac.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/sanitizer_common/sanitizer_mac.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -14,6 +14,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "sanitizer_common.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "sanitizer_platform.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* TARGET_OS_OSX is not present in SDKs before Darwin16 (macOS 10.12) use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ TARGET_OS_MAC (we have no support for iOS in any form for these versions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ so there's no ambiguity). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined(TARGET_OS_OSX) && TARGET_OS_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define TARGET_OS_OSX 1
</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;'>++/* Other TARGET_OS_xxx are not present on earlier versions, define them to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 0 (we have no support for them; they are not valid targets anyway). */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef TARGET_OS_IOS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_OS_IOS 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef TARGET_OS_TV
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_OS_TV 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef TARGET_OS_WATCH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define TARGET_OS_WATCH 0
</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 SANITIZER_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "sanitizer_posix.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/tsan/Makefile.am libsanitizer/tsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5d37abd..18e65b4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/tsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/tsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,7 +57,11 @@ libtsan_la_LIBADD += $(top_builddir)/libbacktrace/libsanitizer_libbacktrace.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtsan_la_DEPENDENCIES +=$(top_builddir)/libbacktrace/libsanitizer_libbacktrace.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtsan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libtsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_libtsan)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libtsan_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libtsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(link_libtsan) $(libtsan_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtsan_preinit.o: tsan_preinit.o
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cp $< $@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/tsan/Makefile.in libsanitizer/tsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7489642..63e093d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/tsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/tsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -461,7 +461,10 @@ libtsan_la_DEPENDENCIES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/sanitizer_common/libsanitizer_common.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/interception/libinterception.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(TSAN_TARGET_DEPENDENT_OBJECTS) $(am__append_2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libtsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_libtsan)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libtsan_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libtsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(link_libtsan) $(libtsan_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Work around what appears to be a GNU make bug handling MAKEFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # values defined in terms of make variables, as is the case for CC and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/ubsan/Makefile.am libsanitizer/ubsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 46021d6..0d07ea2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/ubsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/ubsan/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,11 @@ if LIBBACKTRACE_SUPPORTED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libubsan_la_LIBADD += $(top_builddir)/libbacktrace/libsanitizer_libbacktrace.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libubsan_la_LIBADD += $(LIBSTDCXX_RAW_CXX_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libubsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_libubsan)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libubsan_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libubsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(link_libubsan) $(libubsan_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Use special rules for files that require RTTI support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ubsan_handlers_cxx.% ubsan_type_hash.% ubsan_type_hash_itanium.% : AM_CXXFLAGS += -frtti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libsanitizer/ubsan/Makefile.in libsanitizer/ubsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 654cb64..4931004 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libsanitizer/ubsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libsanitizer/ubsan/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -396,7 +396,10 @@ libubsan_la_SOURCES = $(ubsan_files)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libubsan_la_LIBADD = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/sanitizer_common/libsanitizer_common.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(am__append_1) $(am__append_2) $(LIBSTDCXX_RAW_CXX_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-libubsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(link_libubsan)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libubsan_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libubsan_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(link_libubsan) $(libubsan_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Work around what appears to be a GNU make bug handling MAKEFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # values defined in terms of make variables, as is the case for CC and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libssp/Makefile.am libssp/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 45fee02..2d48b86 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libssp/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libssp/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,8 +49,11 @@ libssp_la_SOURCES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ vsnprintf-chk.c vsprintf-chk.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libssp_la_LIBADD =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libssp_la_DEPENDENCIES = $(version_dep) $(libssp_la_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libssp_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libssp_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(version_arg) $(lt_host_flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(version_arg) $(lt_host_flags) $(libssp_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libssp_nonshared_la_SOURCES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ssp-local.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libssp/Makefile.in libssp/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index bc8a0dc..0732270 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libssp/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libssp/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -376,8 +376,9 @@ libssp_la_SOURCES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libssp_la_LIBADD =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libssp_la_DEPENDENCIES = $(version_dep) $(libssp_la_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libssp_darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libssp_la_LDFLAGS = -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- $(version_arg) $(lt_host_flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(version_arg) $(lt_host_flags) $(libssp_darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libssp_nonshared_la_SOURCES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ssp-local.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libssp/configure libssp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index db527f4..095f5dc 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libssp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libssp/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -636,6 +636,8 @@ 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;'>+ toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexecdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_host_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -781,6 +783,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_toolexeclibdir
</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;'>+@@ -1426,6 +1429,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</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;'>+@@ -7449,7 +7454,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;'>+@@ -9161,6 +9166,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9178,9 +9226,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -10998,7 +11050,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11001 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11053 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11104,7 +11156,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11107 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 11159 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11382,6 +11434,15 @@ 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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # Calculate toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Also toolexecdir, though it's only used in toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case ${version_specific_libs} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11591,6 +11652,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;'>+ as_fn_error $? "conditional \"LIBSSP_USE_SYMVER_SUN\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</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;'>+ : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libssp/configure.ac libssp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f30f81c..90778e2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libssp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libssp/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -165,6 +165,8 @@ AC_SUBST(enable_static)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GCC_WITH_TOOLEXECLIBDIR
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Calculate toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Also toolexecdir, though it's only used in toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case ${version_specific_libs} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/configure libstdc++-v3/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 766a0a8..b7bdc9a 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -771,6 +771,8 @@ GLIBCXX_HOSTED_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ glibcxx_compiler_shared_flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ glibcxx_compiler_pic_flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ glibcxx_lt_pic_flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_host_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -906,6 +908,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_hosted_libstdcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libstdcxx_verbose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libstdcxx_pch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1591,6 +1594,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-hosted-libstdcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ only build freestanding C++ runtime support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libstdcxx-verbose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8384,7 +8389,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;'>+@@ -10224,6 +10229,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10241,9 +10289,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -12061,7 +12113,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12064 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12116 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12167,7 +12219,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12170 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12222 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13049,6 +13101,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13066,12 +13161,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -15458,6 +15561,14 @@ esac
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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 "$enable_vtable_verify" = yes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ predep_objects_CXX="${predep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_start.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15859,7 +15970,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Fake what AC_TRY_COMPILE does.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext << EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 15862 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 15973 "configure"
</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;'>+ typedef bool atomic_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15894,7 +16005,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f conftest*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext << EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 15897 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16008 "configure"
</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;'>+ typedef short atomic_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15929,7 +16040,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f conftest*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext << EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 15932 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16043 "configure"
</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;'>+ // NB: _Atomic_word not necessarily int.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15965,7 +16076,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f conftest*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext << EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 15968 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16079 "configure"
</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;'>+ typedef long long atomic_type;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16118,7 +16229,7 @@ $as_echo "mutex" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # unnecessary for this test.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext << EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16121 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16232 "configure"
</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;'>+ _Decimal32 d1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16160,7 +16271,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # unnecessary for this test.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext << EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16163 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16274 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<typename T1, typename T2>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct same
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { typedef T2 type; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16194,7 +16305,7 @@ $as_echo "$enable_int128" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f conftest*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext << EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 16197 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 16308 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ template<typename T1, typename T2>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct same
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ { typedef T2 type; };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -77540,6 +77651,10 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${GLIBCXX_HOSTED_TRUE}" && test -z "${GLIBCXX_HOSTED_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"GLIBCXX_HOSTED\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/configure.ac libstdc++-v3/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 07cf05b..4899f26 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,6 +97,7 @@ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACX_LT_HOST_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$enable_vtable_verify" = yes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ predep_objects_CXX="${predep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_start.o"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/configure.host libstdc++-v3/configure.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 898db37..4a3c1ef 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/configure.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/configure.host
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -240,11 +240,6 @@ case "${host_os}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin8 | darwin8.* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For 8+ compatibility is better if not -flat_namespace.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case "${host_cpu}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- i[34567]86 | x86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- OPTIMIZE_CXXFLAGS="${OPTIMIZE_CXXFLAGS} -fvisibility-inlines-hidden"
</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;'>+ os_include_dir="os/bsd/darwin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/src/Makefile.am libstdc++-v3/src/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9a97b88..5e2ff1d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/src/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/src/Makefile.am
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -104,8 +104,13 @@ libstdc___la_DEPENDENCIES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/src/c++11/libc++11convenience.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/src/c++17/libc++17convenience.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ENABLE_DARWIN_AT_RPATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++libstdc___darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</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;'>+ libstdc___la_LDFLAGS = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -version-info $(libtool_VERSION) ${version_arg} -lm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -version-info $(libtool_VERSION) ${version_arg} -lm \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(libstdc___darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libstdc++-v3/src/Makefile.in libstdc++-v3/src/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8b9b857..8d929e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libstdc++-v3/src/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libstdc++-v3/src/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -513,8 +513,10 @@ libstdc___la_DEPENDENCIES = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/src/c++11/libc++11convenience.la \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $(top_builddir)/src/c++17/libc++17convenience.la
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@ENABLE_DARWIN_AT_RPATH_TRUE@libstdc___darwin_rpath = -nodefaultrpaths -Wl,-rpath,@loader_path/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libstdc___la_LDFLAGS = \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- -version-info $(libtool_VERSION) ${version_arg} -lm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ -version-info $(libtool_VERSION) ${version_arg} -lm \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ $(libstdc___darwin_rpath)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libtool.m4 libtool.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0020654..c0f0b9e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libtool.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libtool.m4
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1039,6 +1039,45 @@ _LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_defun([_LT_DARWIN_LINKER_FEATURES],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_require([_LT_REQUIRED_DARWIN_CHECKS])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AC_ARG_ENABLE([darwin-at-rpath],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ AS_HELP_STRING([--enable-darwin-at-path],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [install libraries with @rpath/library-name, requires rpaths to be added to executables]),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _LT_TAGVAR(hardcode_direct, $1)=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _LT_TAGVAR(hardcode_automatic, $1)=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1056,13 +1095,21 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_if([$1], [CXX],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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 -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}"
</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;'>+@@ -4213,6 +4260,7 @@ _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [Compiler flag to prevent dynamic linking])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ])# _LT_COMPILER_PIC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_LT_TAGVAR(enable_darwin_at_rpath, $1)=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # _LT_LINKER_SHLIBS([TAGNAME])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # ----------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libvtv/configure libvtv/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4de60cf..a51022c 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libvtv/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libvtv/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -640,6 +640,8 @@ VTV_CYGMIN_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ VTV_CYGMIN_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ XCFLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtool_VERSION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_host_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -797,6 +799,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_cet
</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;'>+@@ -1446,6 +1449,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-cet enable Intel CET in target libraries [default=no]
</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;'>+@@ -8743,7 +8748,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 +10453,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10465,9 +10513,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -12264,7 +12316,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12267 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12319 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12370,7 +12422,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12373 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12425 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13246,6 +13298,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct_CXX=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic_CXX=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13263,12 +13358,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><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 \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
</span><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 \$rpath/\$soname \$verstring${_lt_dsymutil}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 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}"
</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;'>+@@ -15652,6 +15755,14 @@ esac
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # For libtool versioning info, format is CURRENT:REVISION:AGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtool_VERSION=1:0:0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15993,6 +16104,10 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${VTV_CYGMIN_TRUE}" && test -z "${VTV_CYGMIN_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"VTV_CYGMIN\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git libvtv/configure.ac libvtv/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f3b937e..50aaadb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libvtv/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libvtv/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -153,6 +153,7 @@ AM_PROG_LIBTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ACX_LT_HOST_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_shared)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(enable_static)
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For libtool versioning info, format is CURRENT:REVISION:AGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ libtool_VERSION=1:0:0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lto-plugin/configure lto-plugin/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 36c6ecc..e5e6b11 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lto-plugin/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lto-plugin/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -634,6 +634,8 @@ LTLIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIBOBJS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ target_noncanonical
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_host_flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LIPO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -779,6 +781,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</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;'>+@@ -1424,6 +1427,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</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;'>+@@ -8416,23 +8421,25 @@ _LT_EOF
</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: $lt_cv_ld_force_load" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$lt_cv_ld_force_load" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case $host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- rhapsody* | darwin1.[012])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Allow for Darwin 4-7 (macOS 10.0-10.3) although these are not expect to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # build without first building modern cctools / linker.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case $host_cpu-$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-rhapsody* | *-darwin1.[012])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- darwin1.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin1.*)
</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;'>+- darwin*) # darwin 5.x on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # if running on 10.5 or later, the deployment target defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # to the OS version, if on x86, and 10.4, the deployment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- # target defaults to 10.4. Don't you love it?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *-darwin*)
</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][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;'>+- 10.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- esac
</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;'>++ ;;
</span><span style='display:block; white-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;'>+ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10131,6 +10138,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10148,9 +10198,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -11947,7 +12001,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 11950 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12004 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12053,7 +12107,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 12056 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 12110 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12290,6 +12344,14 @@ CC="$lt_save_CC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only expand once:
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+@@ -12524,6 +12586,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</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;'>+ : "${CONFIG_STATUS=./config.status}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ac_write_fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git lto-plugin/configure.ac lto-plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7e6f729..14a56c1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- lto-plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ lto-plugin/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,6 +51,7 @@ AC_SUBST(real_target_noncanonical)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GCC_BASE_VER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_LIBTOOL
</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;'>+ ACX_LT_HOST_FLAGS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(target_noncanonical)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_TYPE_INT64_T
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git zlib/configure zlib/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 46a3591..070214c 100755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- zlib/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ zlib/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -639,6 +639,8 @@ TARGET_LIBRARY_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ TARGET_LIBRARY_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ toolexecdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_FALSE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ENABLE_DARWIN_AT_RPATH_TRUE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ OTOOL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -774,6 +776,7 @@ with_pic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_fast_install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_gnu_ld
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_libtool_lock
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++enable_darwin_at_rpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with_toolexeclibdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enable_host_shared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1416,6 +1419,8 @@ Optional Features:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-fast-install[=PKGS]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ optimize for fast installation [default=yes]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-libtool-lock avoid locking (might break parallel builds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ --enable-darwin-at-path install libraries with @rpath/library-name, requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ rpaths to be added to executables
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Optional Packages:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6838,7 +6843,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;'>+@@ -8817,6 +8822,49 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ darwin* | rhapsody*)
</span><span style='display:block; white-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;'>++ # Publish an arg to allow the user to select that Darwin host (and target)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # libraries should be given install-names like @rpath/libfoo.dylib. This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # requires that the user of the library then adds an 'rpath' to the DSO that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # needs access.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: there are defaults below, for systems that support rpaths. The person
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # configuring can override the defaults for any system version that supports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # them - they are, however, forced off for system versions without support.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # Check whether --enable-darwin-at-rpath was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "${enable_darwin_at_rpath+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enableval=$enable_darwin_at_rpath; if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # This is not supported before macOS 10.5 / Darwin9.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=no
</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;'>++ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # As above, before 10.5 / Darwin9 this does not work.
</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;'>++ enable_darwin_at_rpath=no
</span><span style='display:block; white-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 cannot build and test reliably on macOS 10.11+ (Darwin15+) without use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # of rpaths, since runpaths set via DYLD_LIBRARY_PATH are elided by key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # system executables (e.g. /bin/sh). Force rpaths on for these systems.
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>++ enable_darwin_at_rpath=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # NOTE: we are not (yet) doing anything for 10.5 .. 10.10, since they can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ # work with either DYLD_LIBRARY_PATH or embedded rpaths.
</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;'>++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;'>+ archive_cmds_need_lc=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_direct=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ hardcode_automatic=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8834,9 +8882,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "$_lt_dar_can_shared" = "yes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ output_verbose_link_cmd=func_echo_all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- 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:#e0ffe0;'>++ _lt_install_name='\$rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if test "x$enable_darwin_at_rpath" = "xyes"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ _lt_install_name='@rpath/\$soname'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ fi
</span><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><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;'>+@@ -10654,7 +10706,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 10657 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10709 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10760,7 +10812,7 @@ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lt_status=$lt_dlunknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat > conftest.$ac_ext <<_LT_EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#line 10763 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#line 10815 "configure"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "confdefs.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if HAVE_DLFCN_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10997,6 +11049,14 @@ CC="$lt_save_CC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Only expand once:
</span><span style='display:block; white-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_darwin_at_rpath = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_TRUE='#'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ENABLE_DARWIN_AT_RPATH_FALSE=
</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;'>+ # Find CPP now so that any conditional tests below won't do it and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # thereby make the resulting definitions conditional.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11627,6 +11687,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++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:#e0ffe0;'>++ as_fn_error $? "conditional \"ENABLE_DARWIN_AT_RPATH\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test -z "${TARGET_LIBRARY_TRUE}" && test -z "${TARGET_LIBRARY_FALSE}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "conditional \"TARGET_LIBRARY\" was never defined.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally." "$LINENO" 5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git zlib/configure.ac zlib/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index ad9ec73..cd56ad3 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- zlib/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ zlib/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -60,6 +60,7 @@ m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST(CFLAGS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_PROG_LIBTOOL
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Find CPP now so that any conditional tests below won't do it and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # thereby make the resulting definitions conditional.
</span></pre><pre style='margin:0'>
</pre>