Rolling out upgrades to binutils 2.22 based on release branch.

This release includes bunches of fixes on binutils 2.22.

The binutils version after upgrade keeps to be 2.22.

Performance test performed for three boards - parrot, daisy and x86-alex.
  Bootperf testing
  PerfV2
No noticeable change introduced in this CL.

Correctness test cleared for daisy/parrot/x86-alex.
  cbuildbot chromiumos-sdk
  cbuildbot --hwtest daisy-release daisy_sping-release lumpy-release x86-alex-release, bootperf/perfv2

TEST=listed above
BUG=None

Change-Id: I52c0e6823b121ce2fa684329853046450c95e009
Reviewed-on: https://chromium-review.googlesource.com/194324
Reviewed-by: Luis Lozano <llozano@chromium.org>
Tested-by: Han Shen <shenhan@google.com>
Commit-Queue: Han Shen <shenhan@google.com>
diff --git a/OWNERS b/OWNERS
index 8598a65..fdf94a7 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,3 +1,4 @@
+set noparent
 shenhan@chromium.org
 cmtice@chromium.org
 llozano@chromium.org
diff --git a/README.google b/README.google
new file mode 100644
index 0000000..d6bc446
--- /dev/null
+++ b/README.google
@@ -0,0 +1,1168 @@
+Patches applied to binutils-2.22:
+
+Please include a change to this file with each patch, *and* each
+subsequent modification of the patch.  Do NOT combine patch
+checkins, keep them separate.
+
+Append new entries to the end of this file. Each entry shall include:
+ * The list of files modified by the patch,
+ * The status of the patch (whether it's been checked in upstream,
+   or is a local patch),
+ * The local 'owner' responsible for the patch, and
+ * A description of the patch (preferably including bug numbers).
+
+Please include entries for both local patches and for patches which
+have been checked in to (or back-ported from) the upstream sources.
+When checking in changes made upstream, add an entry to this file but
+DO NOT add entries to the GNU ChangeLog files.
+
+gas/as.c
+  Status: local
+  Owner: eraman
+  Ignore --save-temps flag (to enable use of the GNU assembler with a
+  compiler that passes --save-temps for MAO).
+
+
+gold/dwarf_reader.cc
+gold/i386.cc
+gold/resolve.cc
+gold/x86_64.cc
+  Status: Upstream
+  Owner: ccoutant
+  Fix C++11 warnings about narrowing in initializers.
+  http://sourceware.org/ml/binutils-cvs/2011-12/msg00095.html
+
+gold/options.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport dnovillo's patch to fix bug in option parsing.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00006.html
+
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+  Status: local
+  Owner: aaw
+  Disable the initpri3b test.  GCC 4.7 no longer executes functions from the
+  .ctors and .dtors sections when built against binutils-2.22.
+
+gas/as.c
+gas/as.h
+gas/doc/as.texinfo
+gas/read.c
+gas/testsuite/gas/all/incbin.d
+  Status: google local
+  Owner: aaw
+  Disable .incbin, unless explicitly enabled with new flag --allow-incbin.
+
+bfd/doc/bfd.info
+binutils/doc/Makefile.am
+binutils/doc/Makefile.in
+binutils/doc/addr2line.1
+binutils/doc/ar.1
+binutils/doc/binutils.info
+binutils/doc/dlltool.1
+binutils/doc/elfedit.1
+binutils/doc/nlmconv.1
+binutils/doc/nm.1
+binutils/doc/objcopy.1
+binutils/doc/objdump.1
+binutils/doc/ranlib.1
+binutils/doc/readelf.1
+binutils/doc/size.1
+binutils/doc/strings.1
+binutils/doc/strip.1
+binutils/doc/windmc.1
+binutils/doc/windres.1
+etc/configure.info
+etc/standards.info
+gas/doc/Makefile.am
+gas/doc/Makefile.in
+gas/doc/as.1
+gas/doc/as.info
+gprof/Makefile.am
+gprof/Makefile.in
+gprof/gprof.1
+gprof/gprof.info
+ld/Makefile.am
+ld/Makefile.in
+ld/ld.1
+ld/ld.info
+  Status: local
+  Owner: aaw
+  Remove all pre-formatted manual and info pages so that they will
+  consistently be formatted during the build process.  When formatting them,
+  pass --date=" " to pod2man to avoid including build dates.
+
+gas/config/tc-arm.c
+  Status: local workaround
+  Owner: kbaclawski
+  Fixed an uninitialized variable warning in line 6569 (under gcc 4.4.3), that
+  prevented arm-linux-gnueabi targeted cross compiler to build cleanly.
+
+ltmain.sh
+  Status: libtool 74c8993c178a1386ea5e2363a01d919738402f30 (not in binutils yet)
+  Owner: cgd
+  Sort output of 'find' to ensure deterministic builds.
+
+gold/Makefile.am
+gold/Makefile.in
+gold/configure
+gold/configure.ac
+gold/testsuite/Makefile.in
+  Status: Backport
+  Owner: simonb
+  Backport upstream fix that adds --with-gold-ldflags and --with-gold-ldadd.
+  http://sourceware.org/ml/binutils/2011-09/msg00123.html
+
+gold/gold.cc
+gold/options.cc
+gold/incremental.cc
+gold/symtab.cc
+  Status: Backport
+  Owner: ccoutant
+  Integrate CLs 55764 and 55815 from binutils-2.21.
+  (55764) Backport upstream patch to fix problem with incremental linking and
+  --gc-sections.
+  http://sourceware.org/ml/binutils-cvs/2011-09/msg00099.html
+  (55815) Backport upstream patch to fix problems with incremental linking and
+  shared libraries when all references to a PLT come from changed files.
+  Also fixes a problem when a changed object file references a versioned
+  symbol defined in an unchanged shared library.
+  http://sourceware.org/ml/binutils-cvs/2011-09/msg00124.html
+
+gold/gold.cc
+gold/plugin.cc
+gold/layout.cc
+gold/layout.h
+gold/plugin.cc
+gold/plugin.h
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/plugin_final_layout.sh
+gold/testsuite/plugin_final_layout.cc
+gold/testsuite/plugin_section_order.c
+  Status: Backport
+  Owner: tmsriram
+  Integrate CL 55837 from binutils-2.21.
+  Backport upstream patch to fix a bug in plugin section order and delayed
+  layout.
+  http://www.cygwin.com/ml/binutils/2011-09/msg00265.html
+
+include/demangle.h
+libiberty/cp-demangle.c
+libiberty/testsuite/demangle-expected
+  Status: Backport
+  Owner: ppluzhnikov
+  Integrate CLs 55889 and 55914 from binutils-2.21.
+  For http://b/2713120, backport Cary's upstream fix to demangle cloned
+  functions.
+  http://gcc.gnu.org/ml/gcc-patches/2011-02/msg01545.html
+  http://gcc.gnu.org/viewcvs?view=revision&revision=179132
+
+gold/output.cc
+gold/output.h
+gold/powerpc.cc
+gold/sparc.cc
+gold/x86_64.cc
+  Status: Backport
+  Owner: ccoutant
+  [Originally backported to binutils-2.21 as part of CL 56015.]
+  Backport upstream patch for PR gold/13249 (gold creates incorrect RELATIVE
+  dynamic relocation for local IFUNC GOT entries).
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00040.html
+
+gold/fileread.cc
+gold/incremental.cc
+gold/incremental.h
+gold/output.cc
+gold/plugin.cc
+gold/readsyms.cc
+  Status: Backport
+  Owner: ccoutant
+  Integrate CLs 56018, 56036, 56110, 56146, 56151 from binutils-2.21.
+  (56018) Backport upstream patch to add support for --print-symbol-counts
+  for incremental links and plugins.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00041.html
+  (56036) Backport upstream patch to fix problem with --incremental-base when
+  base file is too large.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00055.html
+  (56110) Backport upstream patch to fix problem detecting truncated or
+  corrupt files.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00078.html
+  (56146) Backport upstream patch to fix crash when member of lib group
+  can't be opened.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00080.html
+  (56151) Backport upstream patch to fix problem detecting out-of-space
+  condition when calling posix_fallocate.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00086.html
+
+gold/expression.cc
+gold/i386.cc
+gold/options.h
+gold/script.cc
+gold/script.h
+gold/script-sections.cc
+gold/symtab.cc
+gold/symtab.cc
+gold/symtab.h
+gold/x86_64.cc
+gold/testsuite/script_test_2.t
+  Status: Backport
+  Owner: ccoutant
+  Integrate CLs 56268, 56366, 56367, 56368, 56708 from binutils-2.21.
+  (56268) Add --no-gnu-unique option to disable STB_GNU_UNIQUE binding.
+  (Adapted from CL 49473.)
+  (56366) Backport upstream patch to fix internal error on TLS relocation.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00186.html
+  (56367) Backport upstream patch to fix problems with assignment to dot in
+  linker scripts.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00188.html
+  (56368) Backport upstream patch to not gc symbols that go into dynamic
+  symbol table.
+  http://cygwin.com/ml/binutils/2011-10/msg00306.html
+  (56708) Backport upstream patch to fix linker crash.
+  http://www.cygwin.com/ml/binutils-cvs/2011-10/msg00095.html
+
+gprof/hist.c
+  Status: Backport
+  Owner: carrot
+  Integrate CL 56274 from binutils-2.21.
+  Backport upstream patch to fix the out of range of an array index in gprof.
+  http://sourceware.org/bugzilla/show_bug.cgi?id=13325.
+
+binutils/Makefile.am
+binutils/Makefile.in
+  Status: Backport
+  Owner: yunlian
+  Integrate CL 56431 from binutils-2.21.
+  Backport upstream patch to fix out of treebuilding with syslex regens.
+  http://sourceware.org/ml/binutils-cvs/2011-10/msg00158.html
+
+gold/arm.cc
+  Status: Upstream
+  Owner: dougkwan
+  Integrate CL 58241 from binutils-2.21.
+  Fix PIE crashes on ARM.
+  http://sourceware.org/ml/binutils-cvs/2012-02/msg00012.html
+
+gas/config/tc-i386.c
+gas/config/tc-i386.h
+  Status: local
+  Owner: martint
+  Move types/enums/structs/macros used by MAO into header-file.
+
+gold/dirsearch.cc
+gold/dirsearch.h
+gold/script.cc.cc
+gold/yyscript.y
+  Status: Backport
+  Owner: saugustine
+  Integrate CLs 56741, 56860 from binutils-2.21.
+  (56741) Backport upstream patch to fix INCLUDE syntax errors.
+  http://sourceware.org/ml/binutils/2011-11/msg00089.html
+  (56860) Backport upstream patch to implement INCLUDE directive.
+  http://sourceware.org/ml/binutils/2011-11/msg00165.html
+
+ld/lexsup.c
+  Status: Local
+  Owner: dougkwan
+  Add dummy --icf option to ld for gold compatibility.
+
+elfcpp/dwarf.h
+gold/dwarf_reader.cc
+gold/reduced_debug_output.cc
+  Status: Backport
+  Update DWARF enums with DWARF-4 and Fission extensions.
+  Fix bug in handling of DW_LNE_define_file opcode.
+  http://sourceware.org/ml/binutils-cvs/2012-03/msg00043.html
+  http://sourceware.org/ml/binutils-cvs/2012-03/msg00044.html
+
+gas/testsuite/gas/arm/mapmisc.d
+  Status: Google local
+  Owner: dougkwan
+  Integrate CL 55082 from binutils-2.21.
+  Enable .incbin to make test pass.
+
+gold/int_encoding.cc
+gold/int_encoding.h
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/leb128_unittest.cc
+  Status: Backport
+  Owner: ccoutant
+  Port CL 58078 from binutils-2.21.
+  Add inlined fast path for decoding LEB128 numbers.
+  Backport from upstream patch:
+  http://sourceware.org/ml/binutils-cvs/2012-01/msg00118.html
+
+gold/arm.cc
+  Status: Backport
+  Owner: dougkwan
+  Backport fix from upstream for ARM regression.
+  http://sourceware.org/ml/binutils-cvs/2012-03/msg00059.html
+
+gold/arm.cc
+gold/gold.cc
+gold/target.h
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/arm_exidx_test.s
+gold/testsuite/arm_exidx_test.sh
+  Status: Backport
+  Owner: dougkwan
+  Backport fix from upstream for __exidx_start & __exidx_end section
+  symbols on ARM.
+  http://sourceware.org/ml/binutils-cvs/2012-03/msg00086.html
+
+gold/arm.cc
+gold/layout.cc
+  Status: Backport
+  Owner: dougkwan
+  Backport fix from upstream for -z relro.
+  http://sourceware.org/ml/binutils-cvs/2012-03/msg00064.html
+  http://sourceware.org/ml/binutils-cvs/2012-03/msg00067.html
+
+gold/incremental.cc
+  Status: Local
+  Owner: ccoutant
+  Incremental linker performance:
+  Don't store section names in incremental info (unless debugging).
+
+gold/dwarf_reader.cc
+gold/dwarf_reader.h
+gold/gdb-index.cc
+gold/gdb-index.h
+gold/merge.cc
+gold/object.cc
+gold/object.h
+gold/readsyms.cc
+gold/testsuite/gdb_index_test.cc
+gold/testsuite/gdb_index_test_1.sh
+gold/testsuite/gdb_index_test_2.sh
+  Status: Backport
+  Owner: ccoutant
+  Backport support for pre-decompressed debug sections and --gdb-index option.
+  http://sourceware.org/ml/binutils-cvs/2012-02/msg00137.html
+  http://sourceware.org/ml/binutils-cvs/2012-03/msg00001.html
+  http://sourceware.org/ml/binutils-cvs/2012-03/msg00094.html
+
+gold/Makefile.am
+gold/Makefile.in
+gold/dynobj.h
+gold/incremental.cc
+gold/incremental.h
+gold/layout.cc
+gold/layout.h
+gold/main.cc
+gold/options.h
+gold/plugin.cc
+gold/plugin.h
+gold/reloc.h
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/gdb_index_test.cc
+gold/testsuite/gdb_index_test_1.sh
+gold/testsuite/gdb_index_test_2.sh
+  Status: Backport
+  Owner: ccoutant
+  Checkin rest of above patch to support --gdb-index option.
+
+gold/gdb-index.cc
+  Status: Backport
+  Owner: ccoutant
+  Fix problem with --gdb-index where DW_AT_low_pc/high_pc is ignored.
+  http://sourceware.org/ml/binutils-cvs/2012-04/msg00031.html
+
+gold/archive.cc
+gold/options.h
+gold/symtab.cc
+  Status: Backport
+  Owner: ccoutant
+  Add --export-dynamic-symbol option.
+  http://sourceware.org/ml/binutils/2012-04/msg00128.html
+
+binutils/doc/binutils.texi
+binutils/objcopy.c
+  Status: Backport
+  Owner: ccoutant
+  Fix strip/objcopy to produce deterministic output when stripping archives.
+  http://sourceware.org/ml/binutils-cvs/2012-04/msg00102.html
+
+bfd/elfcode.h
+  Status: backport
+  Owner: ppluzhnikov
+  For b/6410576, backport fix for PR binutils/12451
+  http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elfcode.h.diff?cvsroot=src&r1=1.109&r2=1.111
+
+gold/options.cc
+  Status: Upstream
+  Owner: ccoutant
+  Integrate CL 58455 from binutils-2.21.
+  Backport fix for internal error when -pie and -static are both on.
+  http://sourceware.org/ml/binutils-cvs/2012-02/msg00074.html
+
+binutils/doc/binutils.texi
+binutils/dwarf.c
+binutils/dwarf.h
+binutils/objdump.c
+binutils/readelf.c
+include/dwarf2.h
+  Status: Upstream
+  Owner: ccoutant
+  Backport Fission support for objdump/readelf.
+  http://sourceware.org/ml/binutils-cvs/2012-01/msg00123.html
+  http://sourceware.org/ml/binutils-cvs/2012-01/msg00123.html
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00009.html
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00072.html
+
+binutils/doc/binutils.texi
+binutils/objcopy.c
+  Status: Upstream
+  Owner: ccoutant
+  Backport Fission support for objcopy/strip.
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00049.html
+
+gold/layout.cc
+gold/testsuite/relro_test.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport fix for problem with -z relro.
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00087.html
+
+gold/symtab.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream patch to fix problem with --export-dynamic-symbol when
+  a versioned symbol is found in a shared object (b/6529486).
+  http://sourceware.org/ml/binutils/2012-05/msg00331.html
+
+gold/symtab.cc
+  Status: Backport
+  Owner: ccoutant
+  Update fix for b/6529486 to match upstream commit.
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00170.html
+
+ld/scripttempl/armbpabi.sc
+ld/scripttempl/elf.sc
+ld/scripttempl/elf64hppa.sc
+ld/scripttempl/elfxtensa.sc
+ld/scripttempl/mep.sc
+gold/layout.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport gold and gnu ld fixes for problem with relro and symbols that
+  begin with "ro" (b/6543153).
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00173.html
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00176.html
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00177.html
+
+gold/dwarf_reader.cc
+gold/dwarf_reader.h
+gold/gdb-index.cc
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/gdb_index_test_3.c
+gold/testsuite/gdb_index_test_3.sh
+  Status: Backport
+  Owner: ccoutant
+  Backport patches to support DW_AT_high_pc as a constant offset.
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00003.html
+  http://sourceware.org/ml/binutils-cvs/2012-05/msg00004.html
+
+gold/testsuite/gdb_index_test_3.sh
+  Status: Backport
+  Owner: ccoutant
+  Make shell script executable.
+
+gold/dynobj.cc
+  Status: Backport
+  Owner: ccoutant
+  Fix internal error with --output-symbol-counts.
+  http://sourceware.org/ml/binutils/2012-06/msg00035.html
+
+gold/options.h
+gold/output.cc
+  Status: Upstream
+  Add --[no-]posix-fallocate and --[no-]mmap-output-file options;
+  set --no-posix-fallocate as the default (b/4080187).
+
+gold/layout.cc
+gold/options.h
+  Status: Backport
+  Owner: ccoutant
+  Fix --strip-debug-gdb to work with compressed debug sections;
+  automatically strip pubnames, pubtypes and aranges sections when
+  generating .gdb_index; add .debug_macro to list of gdb sections.
+  http://sourceware.org/ml/binutils-cvs/2012-06/msg00026.html
+
+gold/gold.cc
+gold/layout.cc
+gold/layout.h
+gold/object.h
+gold/reloc.cc
+  Status: Local
+  Owner: ccoutant
+  Add --build-id=md5-incr option to implement incremental build-id
+  generation for incremental links.
+
+bfd/bfd-in2.h
+bfd/bfd.c
+bfd/coff-rs6000.c
+bfd/coff64-rs6000.c
+bfd/coffgen.c
+bfd/dwarf2.c
+bfd/elf-bfd.h
+bfd/elf.c
+bfd/elf32-arm.c
+bfd/elf64-alpha.c
+bfd/elfxx-mips.c
+bfd/libbfd-in.h
+bfd/libbfd.c
+bfd/libbfd.h
+bfd/targets.c
+binutils/addr2line.c
+binutils/objdump.c
+  Status: Backport
+  Owner: tejohnson
+  Add a new interface bfd_find_nearest_line_discriminator() to
+  also return the discriminator (which was previously being ignored when
+  reading the dwarf), and also add support to print non-zero
+  discriminators along with the source position information from objdump
+  and addr2line.
+  http://sourceware.org/ml/binutils-cvs/2012-07/msg00089.html
+
+bfd/dwarf2.c
+  Status: Backport
+  Owner: tejohnson
+  Missing initialization caused failures for the mips target.
+  http://sourceware.org/ml/binutils-cvs/2012-07/msg00101.html
+
+gas/config/tc-i386.c
+gas/doc/c-i386.texi
+gas/testsuite/gas/i386/i386.exp
+gas/testsuite/gas/i386/vmfunc.d
+gas/testsuite/gas/i386/vmfunc.s
+gas/testsuite/gas/i386/x86-64-vmfunc.d
+opcodes/i386-dis.c
+opcodes/i386-gen.c
+opcodes/i386-init.h
+opcodes/i386-opc.h
+opcodes/i386-opc.tbl
+opcodes/i386-tbl.h
+  Status: Backport
+  Owner: eraman
+  Add vmfunc.
+  http://sourceware.org/ml/binutils-cvs/2012-01/msg00071.html
+
+gas/config/tc-i386.c
+gas/config/tc-i386.h
+gas/doc/c-i386.texi
+gas/testsuite/gas/i386/hle-intel.d
+gas/testsuite/gas/i386/hle.d
+gas/testsuite/gas/i386/hlebad.l
+gas/testsuite/gas/i386/hlebad.s
+gas/testsuite/gas/i386/rtm-intel.d
+gas/testsuite/gas/i386/rtm.d
+gas/testsuite/gas/i386/rtm.s
+gas/testsuite/gas/i386/x86-64-hle-intel.d
+gas/testsuite/gas/i386/x86-64-hle.d
+gas/testsuite/gas/i386/x86-64-hle.s
+gas/testsuite/gas/i386/x86-64-hlebad.l
+gas/testsuite/gas/i386/x86-64-hlebad.s
+gas/testsuite/gas/i386/x86-64-rtm-intel.d
+gas/testsuite/gas/i386/x86-64-rtm.d
+gas/testsuite/gas/i386/x86-64-rtm.s
+include/opcode/i386.h
+opcodes/i386-dis.c
+opcodes/i386-gen.c
+opcodes/i386-init.h
+opcodes/i386-opc.h
+opcodes/i386-opc.tbl
+opcodes/i386-tbl.h
+  Status: Backport
+  Owner: eraman
+  ImplementIntel Transactional Synchronization Extensions.
+  http://sourceware.org/ml/binutils-cvs/2012-02/msg00030.html
+
+gas/config/tc-i386.c
+opcodes/i386-opc.h
+  Status: Backport
+  Owner: eraman
+  Add HLEPrefixNone/HLEPrefixLock/HLEPrefixAny/HLEPrefixRelease.
+  http://sourceware.org/ml/binutils-cvs/2012-02/msg00103.html
+
+gold/configure
+gold/configure.ac
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/gdb_index_test_1.sh
+gold/testsuite/gdb_index_test_2.sh
+gold/testsuite/gdb_index_test_3.sh
+gold/testsuite/gdb_index_test_4.sh
+gold/testsuite/gdb_index_test_comm.sh
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream configure change to disable gdb_index tests
+  where GCC is not recent enough.
+  http://sourceware.org/ml/binutils-cvs/2012-07/msg00072.html
+
+binutils/dwarf.c
+include/gdb/gdb-index.h
+  Status: Backport
+  Owner: saugustine
+  Backport change to display gdb_index v7.
+  http://sourceware.org/ml/binutils-cvs/2012-07/msg00007.html
+
+gold/symtab.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport fix for internal error with --gc-sections and undefined
+  symbol named by --export-dynamic-symbol.
+  http://sourceware.org/ml/binutils-cvs/2012-08/msg00141.html
+
+gold/layout.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport fix for internal error with --emit-relocs and GROUP sections.
+  http://sourceware.org/ml/binutils-cvs/2012-08/msg00146.html
+
+binutils/dwarf.c
+  Status: Upstream
+  Owner: dje
+  Pretty-print static/global flag of .gdb_index symbols.
+  http://sourceware.org/ml/binutils/2012-09/msg00114.html
+
+gold/gdb-index.cc
+gold/gdb-index.h
+  Status: Backport
+  Owner: saugustine
+  Backport fix for relobject/section/offset bug in pubnames reading.
+  http://sourceware.org/ml/binutils/2012-09/msg00092.html
+
+gold/gdb-index.cc
+gold/gdb-index.h
+  Status: Local
+  Owner: saugustine
+  Generate gdb-index from .debug_gnu_pubnames.
+
+bfd/elf64-ppc.c
+  Status: Backport
+  Owner: dougkwan
+  Backport upstream fix for b/7120813.
+  http://sourceware.org/ml/binutils-cvs/2012-09/msg00077.html
+
+bfd/dwarf2.c
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream patch to support relative form of DW_AT_high_pc.
+  http://sourceware.org/ml/binutils-cvs/2012-04/msg00119.html
+
+bfd/elf-bfd.h
+bfd/elf.c
+bfd/elf64-ppc.c
+bfd/elfxx-target.h
+  Status: Backport
+  Owner: dougkwan
+  Backport upstream patch to fix addr2line on PowerPC64.
+  http://sourceware.org/ml/binutils-cvs/2012-01/msg00109.html
+
+bfd/elf64-ppc.c
+  Status: Backport
+  Owner: dougkwan
+  Backport upstream performance fix for PR 13897
+  http://sourceware.org/ml/binutils-cvs/2012-04/msg00038.html
+  http://sourceware.org/ml/binutils-cvs/2012-06/msg00004.html
+
+bfd/elf-bfd.h
+bfd/elf.c
+bfd/elf64-ppc.c
+  Status: Backport
+  Owner: dougwan
+  Backport a dependent change for PR 13897's fix.
+  http://sourceware.org/ml/binutils-cvs/2012-02/msg00026.html
+
+bfd/elf-bfd.h
+bfd/elf.c
+bfd/elf64-ppc.c
+  Status: Backport
+  Owner: dougwan
+  Backport last patch for upstream performance fix for PR 13897
+  http://sourceware.org/ml/binutils-cvs/2012-06/msg00011.html
+
+gold/layout.cc
+  Status: Local
+  Owner: ccoutant
+  Fix linker to strip .debug_gnu_pubnames/pubtypes when generating
+  .gdb_index.
+
+bfd/elf.c
+  Status: Backport
+  Owner: dje
+  Fix http://sourceware.org/bugzilla/show_bug.cgi?id=14662
+  to make strip remove .gdb_index.
+
+binutils/dwarf.h
+  Status: Backport
+  Owner: ccoutant
+  Add missing enum for gdb_index section.
+  http://sourceware.org/ml/binutils-cvs/2011-09/msg00130.html
+
+binutils/dwarf.c
+include/dwarf2.h
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream patch to add readelf support for DW_OP_GNU_const_index.
+  http://sourceware.org/ml/binutils-cvs/2012-09/msg00036.html
+
+gold/layout.cc
+  Status: Backport
+  Owner: tmsriram
+  Keep SHF_EXCLUDE sections when doing relocatable links.
+  http://sourceware.org/ml/binutils/2012-10/msg00172.html
+
+binutils/dwarf.c
+binutils/dwarf.h
+binutils/elfcomm.c
+binutils/elfcomm.h
+binutils/objdump.c
+binutils/readelf.c
+  Status: Upstream
+  Backport patches to add readelf support for dwp files.
+  http://sourceware.org/ml/binutils-cvs/2012-02/msg00075.html
+  http://sourceware.org/ml/binutils/2012-10/msg00233.html
+
+gold/Makefile.am
+gold/Makefile.in
+gold/dwarf_reader.cc
+gold/dwarf_reader.h
+gold/dwp.cc
+gold/dwp.h
+gold/fileread.cc
+gold/fileread.h
+gold/gdb-index.cc
+gold/object.h
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/dwp_test.h
+gold/testsuite/dwp_test_1.cc
+gold/testsuite/dwp_test_1.s
+gold/testsuite/dwp_test_1.sh
+gold/testsuite/dwp_test_1b.cc
+gold/testsuite/dwp_test_1b.s
+gold/testsuite/dwp_test_2.cc
+gold/testsuite/dwp_test_2.s
+gold/testsuite/dwp_test_2.sh
+gold/testsuite/dwp_test_main.cc
+gold/testsuite/dwp_test_main.s
+  Status: Upstream
+  Backport patches to add dwp utility to binutils/gold.
+  http://sourceware.org/ml/binutils/2012-10/msg00229.html
+  http://sourceware.org/ml/binutils/2012-10/msg00230.html
+  http://sourceware.org/ml/binutils/2012-10/msg00231.html
+  http://sourceware.org/ml/binutils/2012-10/msg00232.html
+  http://sourceware.org/ml/binutils/2012-10/msg00234.html
+  http://sourceware.org/ml/binutils/2012-10/msg00235.html
+
+gold/dwp.cc
+  Status: Upstream
+  Fix C++11 warning.
+
+gold/Makefile.am
+gold/Makefile.in
+  Status: Upstream
+  Add install commands for dwp utility.
+
+gas/as.c
+  Status: Backport
+  Owner: simonb
+  Backport upstream patch for as -statistics.
+  http://sourceware.org/ml/binutils/2012-10/msg00248.html
+
+binutils/objcopy.c
+binutils/testsuite/binutils-all/i386/compressed-1b.d
+binutils/testsuite/binutils-all/i386/compressed-1c.d
+binutils/testsuite/binutils-all/x86-64/compressed-1b.d
+binutils/testsuite/binutils-all/x86-64/compressed-1c.d
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream patch to handle empty relocations sections properly
+  in objcopy.
+  http://sourceware.org/ml/binutils-cvs/2012-04/msg00049.html
+
+gold/dwarf_reader.cc
+gold/dwarf_reader.h
+  Status: Local
+  Owner: ccoutant
+  Fix DWARF reader to recognize compressed debug sections everywhere.
+  When reading GNU-style pubnames tables, read to end of table
+  instead of stopping when die_offset == 0.
+
+gold/dwarf_reader.cc
+  Status: Local
+  Owner: ccoutant
+  Fix "set but not used" error.
+
+ld/ldmain.c
+  Status: Backport
+  Owner: simonb
+  Backport upstream patch for ld -stats
+  http://sourceware.org/ml/binutils/2012-10/msg00378.html
+
+gold/arm.cc
+gold/common.cc
+gold/dwarf_reader.cc
+gold/ehframe.cc
+gold/incremental.cc
+gold/powerpc.cc
+  Status: Backport
+  Owner: saugustine
+  Backport upstream patch for unused typedefs
+  http://sourceware.org/ml/binutils/2012-07/msg00108.html
+
+gold/gold.cc
+gold/layout.cc
+gold/layout.h
+gold/object.cc
+gold/output.cc
+gold/plugin.cc
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/plugin_final_layout.sh
+gold/testsuite/plugin_section_order.c
+include/plugin-api.h
+  Status: Backport
+  Owner: tmsriram
+  Backport upstream patch to enable plugin APIs to map specific
+  function sections to unique segments.
+  http://sourceware.org/ml/binutils/2012-08/msg00447.html
+
+Makefile.def
+Makefile.in
+  Status: Backport
+  Owner: shenhan
+  Backport upstream patch for PR binutils/4970.
+  http://sourceware.org/ml/binutils/2012-08/msg00451.html
+
+gold/dwp.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream patch to fix dwp internal error when adding
+  a duplicate CU.
+  http://sourceware.org/ml/binutils-cvs/2012-12/msg00082.html
+
+gold/layout.cc
+gold/layout.h
+gold/output.cc
+testsuite/Makefile.am
+testsuite/Makefile.in
+testsuite/text_section_grouping.cc
+testsuite/text_section_grouping.sh
+  Status:Backport
+  Owner:tmsriram
+  Backport patches http://sourceware.org/ml/binutils/2012-11/msg00319.html
+  and http://sourceware.org/ml/binutils/2012-12/msg00227.html to allow gold
+  to group ".text.hot", ".text.unlikely", ".text.startup" and ".text.exit"
+  sections by default.
+
+gold/output.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream patch to fix incremental update problem exposed by
+  text section reordering.
+  http://sourceware.org/ml/binutils-cvs/2013-01/msg00039.html
+
+gold/output.h
+gold/script-sections.cc
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+  Status: Backport
+  Owner: tmsriram
+  Backport patch http://sourceware.org/ml/binutils/2013-01/msg00108.html
+  to allow linker scripts and section ordering to co-exist.
+
+gold/dwp.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport patches to fix 32-bit build problem, check for bad fwrite return
+  value, and add --help option.
+  http://sourceware.org/ml/binutils-cvs/2012-10/msg00132.html
+  http://sourceware.org/ml/binutils-cvs/2012-10/msg00133.html
+  http://sourceware.org/ml/binutils-cvs/2012-10/msg00162.html
+
+gold/layout.cc
+gold/testsuite/plugin_final_layout.cc
+  Status: Backport
+  Owner: tmsriram
+  Backport patch http://sourceware.org/ml/binutils/2013-01/msg00252.html to
+  fix a bug in function reordering.
+
+gold/layout.cc
+gold/options.h
+gold/output.cc
+gold/output.h
+testsuite/Makefile.am
+testsuite/Makefile.in
+testsuite/text_section_grouping.sh
+  Status: Backport
+  Owner: tmsriram
+  Backport patch http://sourceware.org/ml/binutils/2013-01/msg00357.html to
+  fix a bug in default text section ordering in gold.
+
+binutils/dwarf.c
+  Status: Backport
+  Owner: ccoutant
+  Backport patches to fix problems with readelf dumping of loclists and
+  addr tables.
+  http://sourceware.org/ml/binutils/2013-01/msg00379.html
+  http://sourceware.org/ml/binutils/2013-01/msg00388.html
+
+gold/dwp.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport patch to add --exec option to dwp.
+  http://sourceware.org/ml/binutils-cvs/2013-01/msg00181.html
+
+include/plugin-api.h
+  Status: Backport
+  Owner: tmsriram
+  Backport to get plugin-api.h in sync with upstream binutils.
+  http://sourceware.org/ml/binutils/2013-02/msg00136.html
+  http://sourceware.org/ml/binutils/2012-06/msg00129.html
+
+binutils/dwarf.c
+binutils/dwarf.h
+binutils/objdump.c
+binutils/readelf.c
+  Status: Local
+  Owner: saugustine
+  Dump new accelerator tables .debug_[names|typenames|namespaces].
+
+binutils/dwarf.c
+elfcpp/dwarf.h
+include/dwarf2.h
+  Status: Backport
+  Owner: ccoutant
+  Add support for version 2 DWARF package file format.
+  http://sourceware.org/ml/binutils-cvs/2013-03/msg00000.html
+  http://sourceware.org/ml/binutils-cvs/2013-03/msg00001.html
+  http://sourceware.org/ml/binutils-cvs/2013-03/msg00002.html
+
+gold/dwp.cc
+gold/fileread.cc
+gold/fileread.h
+  Status: Local
+  Owner: ccoutant
+  Make dwp print warning instead of fatal error when it can't open
+  an input .dwo file.
+
+gold/dwarf_reader.cc
+gold/object.cc
+gold/testsuite/gdb_index_test.cc
+gold/testsuite/gdb_index_test_comm.sh
+  Status: Backport
+  Owner: ccoutant
+  Backport patch to support new FORM codes in DWARF reader.
+  http://sourceware.org/ml/binutils-cvs/2012-09/msg00038.html
+
+gold/archive.cc
+  Status: Backport
+  Owner: tmsriram
+  Backport patch to make linker plugin APIs work with archives:
+  http://sourceware.org/ml/binutils/2013-03/msg00322.html 
+
+gold/layout.cc
+gold/script-sections.cc
+gold/symtab.cc
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/script_test_11.c
+gold/testsuite/script_test_11.t
+  Status: Backport
+  Owner: ccoutant
+  Backport patches to fix problems with dot assignment in scripts
+  used with -r option.
+  http://sourceware.org/ml/binutils-cvs/2013-04/msg00069.html
+  http://sourceware.org/ml/binutils-cvs/2013-04/msg00070.html
+  http://sourceware.org/ml/binutils-cvs/2013-04/msg00071.html
+
+gold/layout.cc
+  Status: Local
+  Owner: tmsriram
+  Map input section name prefixes "_function_patch_prologue." and
+  "_function_patch_epilogue." to output section names 
+  "_function_patch_prologue" and "_function_patch_epilogue".
+  The compiler patch that creates these sections:
+  http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01835.html
+
+gold/dwp.h
+gold/dwp.cc
+  Status: Local
+  Owner: ccoutant
+  Add --verify-only option to dwp.
+
+gold/object.cc
+gold/object.h
+gold/symtab.h
+gold/target-reloc.h
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/debug_msg.sh
+gold/testsuite/missing_key_func.cc
+gold/testsuite/missing_key_func.sh
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream patches to fix problem where non-function symbols
+  in error messages are labelled as "function", and to add an extra
+  line of info when vtable symbols are undefined.
+  http://sourceware.org/ml/binutils-cvs/2013-05/msg00099.html
+  http://sourceware.org/ml/binutils-cvs/2013-05/msg00100.html
+
+include/demangle.h
+libiberty/cp-demangle.c
+libiberty/testsuite/demangle-expected
+  Status: Backport
+  Owner: ccoutant
+  Backport demangler patches to sync binutils with GCC 4.8.
+  r179772 | ian | 2011-10-10 13:34:20 -0700 (Mon, 10 Oct 2011) | 5 lines
+  r180944 | jason | 2011-11-04 05:54:08 -0700 (Fri, 04 Nov 2011) | 20 lines
+  r181154 | aldyh | 2011-11-08 03:13:41 -0800 (Tue, 08 Nov 2011) | 2 lines
+  r182969 | jason | 2012-01-06 13:39:34 -0800 (Fri, 06 Jan 2012) | 3 lines
+  r182970 | jason | 2012-01-06 13:39:43 -0800 (Fri, 06 Jan 2012) | 32 lines
+  r183072 | jason | 2012-01-10 09:02:52 -0800 (Tue, 10 Jan 2012) | 2 lines
+  r185082 | jason | 2012-03-07 15:19:06 -0800 (Wed, 07 Mar 2012) | 2 lines
+  r185595 | jason | 2012-03-20 21:04:39 -0700 (Tue, 20 Mar 2012) | 6 lines
+  r187773 | tromey | 2012-05-22 06:55:02 -0700 (Tue, 22 May 2012) | 4 lines
+  r189630 | jason | 2012-07-18 12:51:36 -0700 (Wed, 18 Jul 2012) | 3 lines
+  r192211 | jason | 2012-10-08 07:45:37 -0700 (Mon, 08 Oct 2012) | 24 lines
+  r193367 | jason | 2012-11-09 08:14:37 -0800 (Fri, 09 Nov 2012) | 22 lines
+  r193401 | jason | 2012-11-10 18:11:15 -0800 (Sat, 10 Nov 2012) | 2 lines
+  r196065 | jason | 2013-02-14 17:26:44 -0800 (Thu, 14 Feb 2013) | 8 lines
+  r197436 | jason | 2013-04-03 10:24:12 -0700 (Wed, 03 Apr 2013) | 16 lines
+
+gold/dwarf_reader.cc
+gold/dwarf_reader.h
+  Status: Backport
+  Owner: ccoutant
+  Backport upstream patch to fix problem building gdb index on piii.
+  http://sourceware.org/ml/binutils-cvs/2013-07/msg00004.html
+
+gold/dwarf_reader.cc
+gold/dwarf_reader.h
+gold/gdb-index.cc
+gold/gdb-index.h
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+  Status: local in two patches
+  Owner: saugustine
+  Newer editions of GCC generate DW_AT_gnu_pubnames attribute
+  with a DW_FORM_flag_present, rather than as
+  DW_FORM_sec_offset.  Add support for reading them as such.
+
+gold/resolve.cc
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/plugin_test_tls.sh
+gold/testsuite/two_file_test_2_tls.cc
+gold/testsuite/two_file_test_tls.cc
+  Status: Backport
+  Owner: ccoutant
+  Backport patch to fix LTO problem with __thread variables.
+  http://sourceware.org/ml/binutils-cvs/2013-06/msg00058.html
+
+gold/Makefile.am
+gold/Makefile.in
+  Status: Backport
+  Owner: bmoses
+  Backport changes made to the (above-backported) dwp Makefile
+  targets during upstream review.  Namely, to put it in
+  bin_PROGRAMS so that it gets installed correctly when we are
+  building a cross-compiler.  See discussion here:
+  http://sourceware.org/ml/binutils/2012-10/msg00261.html
+  http://sourceware.org/ml/binutils/2012-10/msg00262.html
+
+binutils/dwarf.c
+  Status: Backport
+  Owner: saugustine
+  Backport handling for gdb_index version 8.
+  https://sourceware.org/ml/binutils/2013-01/msg00350.html
+
+gold/configure.ac
+gold/configure
+gold/Makefile.am
+gold/Makefile.in
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+  Status: local
+  Owner: bmoses
+  Add a Gold configure option to run tests using the native
+  build tools, even if we are building for a non-native
+  target.
+
+libiberty/cp-demangle.c
+libiberty/testsuite/demangle-expected
+  Status: Backport
+  Owner: ppluzhnikov
+  Backport cxxfilter fix for local source name demangling.
+  http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=203476
+
+gas/write.c
+  Status: Backport
+  Owner: bmoses
+  Backport fix to avoid uninitialized variable warning.
+  https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=4fc0b46e62cec696390862c9eb7d80b35d24f0f8
+
+gold/options.cc
+gold/options.h
+gold/symtab.cc
+gold/symtab.h
+gold/testsuite/Makefile.am
+gold/testsuite/dynamic_list_2.cc
+gold/testsuite/dynamic_list_2.t
+gold/testsuite/dynamic_list_lib1.cc
+gold/testsuite/dynamic_list_lib2.cc
+gold/testsuite/gc_dynamic_list_test.c
+gold/testsuite/gc_dynamic_list_test.sh
+gold/testsuite/gc_dynamic_list_test.t
+gold/testsuite/Makefile.in
+  Status: Backport
+  Owner: ccoutant
+  Fix problems with --dynamic-list option.
+  https://sourceware.org/ml/binutils-cvs/2014-02/msg00023.html
+
+gold/errors.cc
+gold/target-reloc.h
+  Status: Backport
+  Owner: ccoutant
+  Fix issues with gold undefined symbol diagnostics.
+  https://sourceware.org/ml/binutils-cvs/2014-02/msg00025.html
+
+gold/errors.cc
+  Status: local
+  Owner: ccoutant
+  Add local go/missingkeymethod link to missing vtable error message.
+
+binutils/readelf.c
+  Status: backport
+  Owner: ccoutant
+  Add readelf support for gold version note sections.
+  https://sourceware.org/ml/binutils-cvs/2014-02/msg00026.html
+
+gold/archive.cc
+gold/testsuite/Makefile.am
+gold/testsuite/Makefile.in
+gold/testsuite/weak_undef_file3.cc
+gold/testsuite/weak_undef_file4.cc
+gold/testsuite/weak_undef_test_2.cc
+  Status: backport
+  Owner: ccoutant
+  Fix problem where -u is ignored when a weak undef is seen.
+  Backported from:
+  https://sourceware.org/ml/binutils-cvs/2014-02/msg00031.html
+
+libiberty/cp-demangle.c
+libiberty/cp-demangle.h
+libiberty/testsuite/demangle-expected
+  Status: backport
+  Owner: ccoutant
+  Fix demangler to handle conversion operators correctly.
+  Backported from GCC trunk at r205292.
diff --git a/bfd/.gitignore b/bfd/.gitignore
new file mode 100644
index 0000000..3316133
--- /dev/null
+++ b/bfd/.gitignore
@@ -0,0 +1,40 @@
+/bfd-in3.h
+/bfd.h
+/bfd_stdint.h
+/bfdver.h
+/elf32-ia64.c
+/elf32-target.h
+/elf64-ia64.c
+/elf64-target.h
+/libtool-soversion
+/ofiles
+/peigen.c
+/pepigen.c
+/pex64igen.c
+/stmp-bfd-h
+/targmatch.h
+
+/doc/aoutx.texi
+/doc/archive.texi
+/doc/archures.texi
+/doc/bfdio.texi
+/doc/bfdt.texi
+/doc/bfdver.texi
+/doc/bfdwin.texi
+/doc/cache.texi
+/doc/chew
+/doc/coffcode.texi
+/doc/core.texi
+/doc/elf.texi
+/doc/elfcode.texi
+/doc/format.texi
+/doc/hash.texi
+/doc/init.texi
+/doc/libbfd.texi
+/doc/linker.texi
+/doc/mmo.texi
+/doc/opncls.texi
+/doc/reloc.texi
+/doc/section.texi
+/doc/syms.texi
+/doc/targets.texi
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 8eb6741..9550393 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -10388,7 +10388,7 @@
       if (unresolved_reloc
           && !((input_section->flags & SEC_DEBUGGING) != 0
                && h->def_dynamic)
-          && _bfd_elf_section_offset (output_bfd, info, input_section,
+	  && _bfd_elf_section_offset (output_bfd, info, input_section,
                                       rel->r_offset) != (bfd_vma) -1)
 	{
 	  (*_bfd_error_handler)
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index d75f69a..923674b 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -4238,8 +4238,9 @@
       if (unresolved_reloc
 	  && !((input_section->flags & SEC_DEBUGGING) != 0
 	       && h->def_dynamic)
-          && _bfd_elf_section_offset (output_bfd, info, input_section,
+	  && _bfd_elf_section_offset (output_bfd, info, input_section,
                                       rel->r_offset) != (bfd_vma) -1)
+
 	{
 	  (*_bfd_error_handler)
 	    (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index c8c11a8..7c7abea 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -13573,7 +13573,7 @@
       if (unresolved_reloc
 	  && !((input_section->flags & SEC_DEBUGGING) != 0
 	       && h->elf.def_dynamic)
-          && _bfd_elf_section_offset (output_bfd, info, input_section,
+	  && _bfd_elf_section_offset (output_bfd, info, input_section,
                                       rel->r_offset) != (bfd_vma) -1)
 	{
 	  info->callbacks->einfo
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 42ed936..ca7df35 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -4087,7 +4087,7 @@
       if (unresolved_reloc
 	  && !((input_section->flags & SEC_DEBUGGING) != 0
 	       && h->def_dynamic)
-          && _bfd_elf_section_offset (output_bfd, info, input_section,
+	  && _bfd_elf_section_offset (output_bfd, info, input_section,
                                       rel->r_offset) != (bfd_vma) -1)
 	(*_bfd_error_handler)
 	  (_("%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"),
diff --git a/binutils/.gitignore b/binutils/.gitignore
new file mode 100644
index 0000000..1934ea0
--- /dev/null
+++ b/binutils/.gitignore
@@ -0,0 +1,58 @@
+/addr2line
+/ar
+/bin2c
+/coffdump
+/cxxfilt
+/dlltool
+/dllwrap
+/elfedit
+/nlmconv
+/nm-new
+/objcopy
+/objdump
+/ranlib
+/readelf
+/size
+/srconv
+/strings
+/strip-new
+/sysdump
+/sysinfo
+/windmc
+/windres
+
+/arlex.c
+/arparse.c
+/arparse.h
+/deflex.c
+/defparse.c
+/defparse.h
+/mcparse.c
+/mcparse.h
+/nlmheader.c
+/nlmheader.h
+/rcparse.c
+/rcparse.h
+/sysinfo.c
+/sysinfo.h
+/syslex.c
+/sysroff.c
+/sysroff.h
+
+/doc/addr2line.1
+/doc/ar.1
+/doc/c++filt.1
+/doc/cxxfilt.man
+/doc/dlltool.1
+/doc/elfedit.1
+/doc/nlmconv.1
+/doc/nm.1
+/doc/objcopy.1
+/doc/objdump.1
+/doc/ranlib.1
+/doc/readelf.1
+/doc/size.1
+/doc/strings.1
+/doc/strip.1
+/doc/windmc.1
+/doc/windres.1
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index d26b850..e9e0923 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -64,6 +64,7 @@
 int do_trace_aranges;
 int do_debug_addr;
 int do_debug_cu_index;
+int do_debug_accel_tables;
 int do_wide;
 
 int dwarf_cutoff_level = -1;
@@ -71,6 +72,36 @@
 
 int dwarf_check = 0;
 
+/* Collection of CU/TU section sets from .debug_cu_index and .debug_tu_index
+   sections.  For version 1 package files, each set is stored in SHNDX_POOL
+   as a zero-terminated list of section indexes comprising one set of debug
+   sections from a .dwo file.  */
+
+static int cu_tu_indexes_read = 0;
+static unsigned int *shndx_pool = NULL;
+static unsigned int shndx_pool_size = 0;
+static unsigned int shndx_pool_used = 0;
+
+/* For version 2 package files, each set contains an array of section offsets
+   and an array of section sizes, giving the offset and size of the
+   contribution from a CU or TU within one of the debug sections.
+   When displaying debug info from a package file, we need to use these
+   tables to locate the corresponding contributions to each section.  */
+
+struct cu_tu_set
+{
+  uint64_t signature;
+  dwarf_vma section_offsets[DW_SECT_MAX];
+  size_t section_sizes[DW_SECT_MAX];
+};
+
+static int cu_count = 0;
+static int tu_count = 0;
+static struct cu_tu_set *cu_sets = NULL;
+static struct cu_tu_set *tu_sets = NULL;
+
+static void load_cu_tu_indexes (void *file);
+
 /* Values for do_debug_lines.  */
 #define FLAG_DEBUG_LINES_RAW	 1
 #define FLAG_DEBUG_LINES_DECODED 2
@@ -445,7 +476,8 @@
 }
 
 static const char *
-fetch_indexed_string (dwarf_vma idx, dwarf_vma offset_size, int dwo)
+fetch_indexed_string (dwarf_vma idx, struct cu_tu_set *this_set,
+		      dwarf_vma offset_size, int dwo)
 {
   enum dwarf_section_display_enum str_sec_idx = dwo ? str_dwo : str;
   enum dwarf_section_display_enum idx_sec_idx = dwo ? str_index_dwo : str_index;
@@ -460,6 +492,8 @@
 
   /* DWARF sections under Mach-O have non-zero addresses.  */
   index_offset -= index_section->address;
+  if (this_set != NULL)
+    index_offset += this_set->section_offsets [DW_SECT_STR_OFFSETS];
   if (index_offset > index_section->size)
     {
       warn (_("DW_FORM_GNU_str_index offset too big: %s\n"),
@@ -1344,6 +1378,38 @@
   return need_frame_base;
 }
 
+/* Find the CU or TU set corresponding to the given CU_OFFSET.
+   This is used for DWARF package files.  */
+
+static struct cu_tu_set *
+find_cu_tu_set_v2 (dwarf_vma cu_offset, int do_types)
+{
+  struct cu_tu_set *p;
+  unsigned int nsets;
+  unsigned int dw_sect;
+
+  if (do_types)
+    {
+      p = tu_sets;
+      nsets = tu_count;
+      dw_sect = DW_SECT_TYPES;
+    }
+  else
+    {
+      p = cu_sets;
+      nsets = cu_count;
+      dw_sect = DW_SECT_INFO;
+    }
+  while (nsets > 0)
+    {
+      if (p->section_offsets [dw_sect] == cu_offset)
+	return p;
+      p++;
+      nsets--;
+    }
+  return NULL;
+}
+
 static unsigned char *
 read_and_display_attr_value (unsigned long attribute,
 			     unsigned long form,
@@ -1354,7 +1420,8 @@
 			     int dwarf_version,
 			     debug_info * debug_info_p,
 			     int do_loc,
-			     struct dwarf_section * section)
+			     struct dwarf_section * section,
+			     struct cu_tu_set * this_set)
 {
   dwarf_vma uvalue = 0;
   unsigned char *block_start = NULL;
@@ -1440,7 +1507,7 @@
 					  cu_offset, pointer_size,
 					  offset_size, dwarf_version,
 					  debug_info_p, do_loc,
-					  section);
+					  section, this_set);
     case DW_FORM_GNU_addr_index:
       uvalue = read_leb128 (data, & bytes_read, 0);
       data += bytes_read;
@@ -1559,7 +1626,7 @@
 
           printf (_(" (indexed string: 0x%s): %s"),
                   dwarf_vmatoa ("x", uvalue),
-                  fetch_indexed_string (uvalue, offset_size, dwo));
+                  fetch_indexed_string (uvalue, this_set, offset_size, dwo));
         }
       break;
 
@@ -1631,6 +1698,8 @@
 				 lmax, sizeof (*debug_info_p->have_frame_base));
 		  debug_info_p->max_loc_offsets = lmax;
 		}
+	      if (this_set != NULL)
+	        uvalue += this_set->section_offsets [DW_SECT_LOC];
 	      debug_info_p->loc_offsets [num] = uvalue;
 	      debug_info_p->have_frame_base [num] = have_frame_base;
 	      debug_info_p->num_loc_offsets++;
@@ -2134,20 +2203,20 @@
 		       int dwarf_version,
 		       debug_info * debug_info_p,
 		       int do_loc,
-		       struct dwarf_section * section)
+		       struct dwarf_section * section,
+		       struct cu_tu_set * this_set)
 {
   if (!do_loc)
     printf ("   %-18s:", get_AT_name (attribute));
   data = read_and_display_attr_value (attribute, form, data, cu_offset,
 				      pointer_size, offset_size,
 				      dwarf_version, debug_info_p,
-				      do_loc, section);
+				      do_loc, section, this_set);
   if (!do_loc)
     printf ("\n");
   return data;
 }
 
-
 /* Process the contents of a .debug_info section.  If do_loc is non-zero
    then we are scanning for location lists and we do not want to display
    anything to the user.  If do_types is non-zero, we are processing
@@ -2255,6 +2324,9 @@
       dwarf_vma signature_high = 0;
       dwarf_vma signature_low = 0;
       dwarf_vma type_offset = 0;
+      struct cu_tu_set *this_set;
+      dwarf_vma abbrev_base;
+      size_t abbrev_size;
 
       hdrptr = start;
 
@@ -2279,9 +2351,22 @@
 
       cu_offset = start - section_begin;
 
+      this_set = find_cu_tu_set_v2 (cu_offset, do_types);
+
       compunit.cu_abbrev_offset = byte_get (hdrptr, offset_size);
       hdrptr += offset_size;
 
+      if (this_set == NULL)
+	{
+	  abbrev_base = 0;
+	  abbrev_size = debug_displays [abbrev_sec].section.size;
+	}
+      else
+	{
+	  abbrev_base = this_set->section_offsets [DW_SECT_ABBREV];
+	  abbrev_size = this_set->section_sizes [DW_SECT_ABBREV];
+	}
+
       compunit.cu_pointer_size = byte_get (hdrptr, 1);
       hdrptr += 1;
 
@@ -2335,6 +2420,25 @@
 	      printf (_("   Type Offset:   0x%s\n"),
 		      dwarf_vmatoa ("x", type_offset));
 	    }
+	  if (this_set != NULL)
+	    {
+	      dwarf_vma *offsets = this_set->section_offsets;
+	      size_t *sizes = this_set->section_sizes;
+
+	      printf (_("   Section contributions:\n"));
+	      printf (_("    .debug_abbrev.dwo:       0x%s  0x%s\n"),
+		      dwarf_vmatoa ("x", offsets [DW_SECT_ABBREV]),
+		      dwarf_vmatoa ("x", sizes [DW_SECT_ABBREV]));
+	      printf (_("    .debug_line.dwo:         0x%s  0x%s\n"),
+		      dwarf_vmatoa ("x", offsets [DW_SECT_LINE]),
+		      dwarf_vmatoa ("x", sizes [DW_SECT_LINE]));
+	      printf (_("    .debug_loc.dwo:          0x%s  0x%s\n"),
+		      dwarf_vmatoa ("x", offsets [DW_SECT_LOC]),
+		      dwarf_vmatoa ("x", sizes [DW_SECT_LOC]));
+	      printf (_("    .debug_str_offsets.dwo:  0x%s  0x%s\n"),
+		      dwarf_vmatoa ("x", offsets [DW_SECT_STR_OFFSETS]),
+		      dwarf_vmatoa ("x", sizes [DW_SECT_STR_OFFSETS]));
+	    }
 	}
 
       if (cu_offset + compunit.cu_length + initial_length_size
@@ -2363,16 +2467,16 @@
 
       /* Process the abbrevs used by this compilation unit. DWARF
 	 sections under Mach-O have non-zero addresses.  */
-      if (compunit.cu_abbrev_offset >= debug_displays [abbrev_sec].section.size)
+      if (compunit.cu_abbrev_offset >= abbrev_size)
 	warn (_("Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section size (%lx)\n"),
 	      (unsigned long) compunit.cu_abbrev_offset,
-	      (unsigned long) debug_displays [abbrev_sec].section.size);
+	      (unsigned long) abbrev_size);
       else
 	process_abbrev_section
-	  ((unsigned char *) debug_displays [abbrev_sec].section.start
-	   + compunit.cu_abbrev_offset,
-	   (unsigned char *) debug_displays [abbrev_sec].section.start
-	   + debug_displays [abbrev_sec].section.size);
+	  (((unsigned char *) debug_displays [abbrev_sec].section.start
+	    + abbrev_base + compunit.cu_abbrev_offset),
+	   ((unsigned char *) debug_displays [abbrev_sec].section.start
+	    + abbrev_base + abbrev_size));
 
       level = 0;
       last_level = level;
@@ -2498,12 +2602,15 @@
 
 	      tags = read_and_display_attr (attr->attribute,
 					    attr->form,
-					    tags, cu_offset,
+					    tags,
+					    cu_offset,
 					    compunit.cu_pointer_size,
 					    offset_size,
 					    compunit.cu_version,
 					    arg,
-					    do_loc || ! do_printing, section);
+					    do_loc || ! do_printing,
+					    section,
+					    this_set);
 	    }
 
  	  if (entry->children)
@@ -2547,6 +2654,9 @@
   if (num_debug_info_entries > 0)
     return num_debug_info_entries;
 
+  /* If this is a DWARF package file, load the CU and TU indexes.  */
+  load_cu_tu_indexes (file);
+
   if (load_debug_section (info, file)
       && process_debug_info (&debug_displays [info].section, file, abbrev, 1, 0))
     return num_debug_info_entries;
@@ -3898,7 +4008,8 @@
 		      curr
 			= read_and_display_attr_value (0, byte_get (desc++, 1),
 						       curr, 0, 0, offset_size,
-						       version, NULL, 0, NULL);
+						       version, NULL, 0, NULL,
+						       NULL);
 		      if (n != nargs - 1)
 			printf (",");
 		    }
@@ -3988,6 +4099,8 @@
           break;
         }
 
+      printf ("    %8.8lx ", offset + (start - *start_ptr));
+
       /* Note: we use sign extension here in order to be sure that we can detect
          the -1 escape value.  Sign extension into the top 32 bits of a 32-bit
          address will not affect the values that we display since we always show
@@ -3997,8 +4110,6 @@
       end = byte_get_signed (start, pointer_size);
       start += pointer_size;
 
-      printf ("    %8.8lx ", offset);
-
       if (begin == 0 && end == 0)
         {
           printf (_("<End of list>\n"));
@@ -4060,6 +4171,17 @@
   *start_ptr = start;
 }
 
+/* Print a .debug_addr table index in decimal, surrounded by square brackets,
+   right-adjusted in a field of length LEN, and followed by a space.  */
+
+static void
+print_addr_index (unsigned int idx, unsigned int len)
+{
+  static char buf[15];
+  snprintf (buf, sizeof (buf), "[%d]", idx);
+  printf ("%*s ", len, buf);
+}
+
 /* Display a location list from a .dwo section. It uses address indexes rather
    than embedded addresses.  This code closely follows display_loc_list, but the
    two are sufficiently different that combining things is very ugly.  */
@@ -4080,14 +4202,14 @@
   int entry_type;
   unsigned short length;
   int need_frame_base;
-  dwarf_vma idx;
+  unsigned int idx;
   unsigned int bytes_read;
 
   while (1)
     {
-      printf ("    %8.8lx ", offset);
+      printf ("    %8.8lx ", offset + (start - *start_ptr));
 
-      if (start + 2 > section_end)
+      if (start >= section_end)
         {
           warn (_("Location list starting at offset 0x%lx is not terminated.\n"),
                 offset);
@@ -4099,31 +4221,42 @@
       switch (entry_type)
         {
           case 0: /* A terminating entry.  */
-            idx = byte_get (start, 1);
-            start++;
             *start_ptr = start;
-            if (idx == 0)
-              printf (_("<End of list>\n"));
-            else
-              warn (_("Location list starting at offset 0x%lx is not terminated.\n"),
-                    offset);
+	    printf (_("<End of list>\n"));
             return;
           case 1: /* A base-address entry.  */
             idx = read_leb128 (start, &bytes_read, 0);
             start += bytes_read;
-            print_dwarf_vma (idx, pointer_size);
-            printf (_("(base address index)\n"));
+            print_addr_index (idx, 8);
+            printf ("         ");
+            printf (_("(base address selection entry)\n"));
             continue;
-          case 2: /* A normal entry.  */
+          case 2: /* A start/end entry.  */
             idx = read_leb128 (start, &bytes_read, 0);
             start += bytes_read;
-            print_dwarf_vma (idx, pointer_size);
+            print_addr_index (idx, 8);
             idx = read_leb128 (start, &bytes_read, 0);
             start += bytes_read;
-            print_dwarf_vma (idx, pointer_size);
+            print_addr_index (idx, 8);
+            break;
+          case 3: /* A start/length entry.  */
+            idx = read_leb128 (start, &bytes_read, 0);
+            start += bytes_read;
+            print_addr_index (idx, 8);
+            idx = byte_get (start, 4);
+            start += 4;
+            printf ("%08x ", idx);
+            break;
+          case 4: /* An offset pair entry.  */
+            idx = byte_get (start, 4);
+            start += 4;
+            printf ("%08x ", idx);
+            idx = byte_get (start, 4);
+            start += 4;
+            printf ("%08x ", idx);
             break;
           default:
-            warn (_("Unknown location-list type 0x%x.\n"), entry_type);
+            warn (_("Unknown location list entry type 0x%x.\n"), entry_type);
             *start_ptr = start;
             return;
         }
@@ -4266,10 +4399,7 @@
   if (!locs_sorted)
     array = (unsigned int *) xcmalloc (num_loc_list, sizeof (unsigned int));
   printf (_("Contents of the %s section:\n\n"), section->name);
-  if (!is_dwo)
-    printf (_("    Offset   Begin    End      Expression\n"));
-  else
-    printf (_("    Offset   Begin idx End idx  Expression\n"));
+  printf (_("    Offset   Begin    End      Expression\n"));
 
   seen_first_offset = 0;
   for (i = first; i < num_debug_info_entries; i++)
@@ -4579,7 +4709,7 @@
 
   printf (_("Contents of the %s section:\n\n"), section->name);
 
-  debug_addr_info = (debug_info **) xmalloc (num_debug_info_entries + 1
+  debug_addr_info = (debug_info **) xmalloc ((num_debug_info_entries + 1)
                                              * sizeof (debug_info *));
 
   count = 0;
@@ -4597,19 +4727,22 @@
   for (i = 0; i < count; i++)
     {
       unsigned int idx;
+      unsigned int address_size = debug_addr_info [i]->pointer_size;
 
       printf (_("  For compilation unit at offset 0x%s:\n"),
               dwarf_vmatoa ("x", debug_addr_info [i]->cu_offset));
 
-      printf (_("\tIndex\tOffset\n"));
+      printf (_("\tIndex\tAddress\n"));
       entry = section->start + debug_addr_info [i]->addr_base;
       end = section->start + debug_addr_info [i + 1]->addr_base;
       idx = 0;
       while (entry < end)
         {
-          dwarf_vma base = byte_get (entry, debug_addr_info [i]->pointer_size);
-          printf (_("\t%d:\t%s\n"), idx, dwarf_vmatoa ("x", base));
-          entry += debug_addr_info [i]->pointer_size;
+          dwarf_vma base = byte_get (entry, address_size);
+          printf (_("\t%d:\t"), idx);
+          print_dwarf_vma (base, address_size);
+          printf ("\n");
+          entry += address_size;
           idx++;
         }
     }
@@ -5837,10 +5970,6 @@
   return 1;
 }
 
-#undef GET
-#undef LEB
-#undef SLEB
-
 static int
 display_gdb_index (struct dwarf_section *section,
 		   void *file ATTRIBUTE_UNUSED)
@@ -5870,7 +5999,7 @@
 
   /* Prior versions are obsolete, and future versions may not be
      backwards compatible.  */
-  if (version < 3 || version > 7)
+  if (version < 3 || version > 8)
     {
       warn (_("Unsupported version %lu.\n"), (unsigned long) version);
       return 0;
@@ -5883,6 +6012,10 @@
     warn (_("Version 5 does not include inlined functions.\n"));
   if (version < 7)
       warn (_("Version 6 does not include symbol attributes.\n"));
+  /* Version 7 indices generated by Gold have bad type unit references,
+     PR binutils/15021.  But we don't know if the index was generated by
+     Gold or not, so to avoid worrying users with gdb-generated indices
+     we say nothing for version 7 here.  */
 
   cu_list_offset = byte_get_little_endian (start + 4, 4);
   tu_list_offset = byte_get_little_endian (start + 8, 4);
@@ -6023,15 +6156,6 @@
   return 1;
 }
 
-/* Collection of CU/TU section sets from .debug_cu_index and .debug_tu_index
-   sections.  Each set is stored in SHNDX_POOL as a zero-terminated list of
-   section indexes comprising one set of debug sections from a .dwo file.  */
-
-int cu_tu_indexes_read = 0;
-unsigned int *shndx_pool = NULL;
-unsigned int shndx_pool_size = 0;
-unsigned int shndx_pool_used = 0;
-
 /* Pre-allocate enough space for the CU/TU sets needed.  */
 
 static void
@@ -6074,6 +6198,39 @@
   shndx_pool [shndx_pool_used++] = 0;
 }
 
+/* Return the short name of a DWARF section given by a DW_SECT enumerator.  */
+
+static const char *
+get_DW_SECT_short_name (unsigned int dw_sect)
+{
+  static char buf[16];
+
+  switch (dw_sect)
+    {
+      case DW_SECT_INFO:
+	return "info";
+      case DW_SECT_TYPES:
+	return "types";
+      case DW_SECT_ABBREV:
+	return "abbrev";
+      case DW_SECT_LINE:
+	return "line";
+      case DW_SECT_LOC:
+	return "loc";
+      case DW_SECT_STR_OFFSETS:
+	return "str_off";
+      case DW_SECT_MACINFO:
+	return "macinfo";
+      case DW_SECT_MACRO:
+	return "macro";
+      default:
+        break;
+    }
+
+  snprintf (buf, sizeof (buf), "%d", dw_sect);
+  return buf;
+}
+
 /* Process a CU or TU index.  If DO_DISPLAY is true, print the contents.  */
 
 static int
@@ -6085,24 +6242,30 @@
   unsigned char *pindex;
   unsigned char *ppool;
   unsigned int version;
+  unsigned int ncols = 0;
   unsigned int nused;
   unsigned int nslots;
   unsigned int i;
+  unsigned int j;
+  dwarf_vma signature_high;
+  dwarf_vma signature_low;
+  char buf[64];
 
   version = byte_get (phdr, 4);
+  if (version >= 2)
+    ncols = byte_get (phdr + 4, 4);
   nused = byte_get (phdr + 8, 4);
   nslots = byte_get (phdr + 12, 4);
   phash = phdr + 16;
   pindex = phash + nslots * 8;
   ppool = pindex + nslots * 4;
 
-  if (!do_display)
-    prealloc_cu_tu_list((limit - ppool) / 4);
-
   if (do_display)
     {
       printf (_("Contents of the %s section:\n\n"), section->name);
       printf (_("  Version:                 %d\n"), version);
+      if (version >= 2)
+	printf (_("  Number of columns:       %d\n"), ncols);
       printf (_("  Number of used entries:  %d\n"), nused);
       printf (_("  Number of slots:         %d\n\n"), nslots);
     }
@@ -6114,49 +6277,182 @@
       return 0;
     }
 
-  for (i = 0; i < nslots; i++)
+  if (version == 1)
     {
-      dwarf_vma signature_high;
-      dwarf_vma signature_low;
-      unsigned int j;
-      unsigned char *shndx_list;
-      unsigned int shndx;
-      char buf[64];
-
-      byte_get_64 (phash, &signature_high, &signature_low);
-      if (signature_high != 0 || signature_low != 0)
+      if (!do_display)
+	prealloc_cu_tu_list ((limit - ppool) / 4);
+      for (i = 0; i < nslots; i++)
 	{
-	  j = byte_get (pindex, 4);
-	  shndx_list = ppool + j * 4;
-	  if (do_display)
-	    printf (_("  [%3d] Signature:  0x%s  Sections: "),
-		    i, dwarf_vmatoa64 (signature_high, signature_low,
-				       buf, sizeof (buf)));
-	  for (;;)
+	  unsigned char *shndx_list;
+	  unsigned int shndx;
+
+	  byte_get_64 (phash, &signature_high, &signature_low);
+	  if (signature_high != 0 || signature_low != 0)
 	    {
-	      if (shndx_list >= limit)
-		{
-		  warn (_("Section %s too small for shndx pool\n"),
-			section->name);
-		  return 0;
-		}
-	      shndx = byte_get (shndx_list, 4);
-	      if (shndx == 0)
-		break;
+	      j = byte_get (pindex, 4);
+	      shndx_list = ppool + j * 4;
 	      if (do_display)
-		printf (" %d", shndx);
+		printf (_("  [%3d] Signature:  0x%s  Sections: "),
+			i, dwarf_vmatoa64 (signature_high, signature_low,
+					   buf, sizeof (buf)));
+	      for (;;)
+		{
+		  if (shndx_list >= limit)
+		    {
+		      warn (_("Section %s too small for shndx pool\n"),
+			    section->name);
+		      return 0;
+		    }
+		  shndx = byte_get (shndx_list, 4);
+		  if (shndx == 0)
+		    break;
+		  if (do_display)
+		    printf (" %d", shndx);
+		  else
+		    add_shndx_to_cu_tu_entry (shndx);
+		  shndx_list += 4;
+		}
+	      if (do_display)
+		printf ("\n");
 	      else
-		add_shndx_to_cu_tu_entry (shndx);
-	      shndx_list += 4;
+		end_cu_tu_entry ();
 	    }
-	  if (do_display)
-	    printf ("\n");
-	  else
-	    end_cu_tu_entry ();
+	  phash += 8;
+	  pindex += 4;
 	}
-      phash += 8;
-      pindex += 4;
     }
+  else if (version == 2)
+    {
+      unsigned int val;
+      unsigned int dw_sect;
+      unsigned char *ph = phash;
+      unsigned char *pi = pindex;
+      unsigned char *poffsets = ppool + ncols * 4;
+      unsigned char *psizes = poffsets + nused * ncols * 4;
+      unsigned char *pend = psizes + nused * ncols * 4;
+      bfd_boolean is_tu_index;
+      struct cu_tu_set *this_set = NULL;
+      unsigned int row;
+      unsigned char *prow;
+
+      is_tu_index = strcmp (section->name, ".debug_tu_index") == 0;
+
+      if (pend > limit)
+	{
+	  warn (_("Section %s too small for offset and size tables\n"),
+		section->name);
+	  return 0;
+	}
+
+      if (do_display)
+	{
+	  printf (_("  Offset table\n"));
+	  printf ("  slot  %-16s  ",
+		 is_tu_index ? _("signature") : _("dwo_id"));
+	}
+      else
+	{
+	  if (is_tu_index)
+	    {
+	      tu_count = nused;
+	      tu_sets = xcmalloc (nused, sizeof (struct cu_tu_set));
+	      this_set = tu_sets;
+	    }
+	  else
+	    {
+	      cu_count = nused;
+	      cu_sets = xcmalloc (nused, sizeof (struct cu_tu_set));
+	      this_set = cu_sets;
+	    }
+	}
+      if (do_display)
+	{
+	  for (j = 0; j < ncols; j++)
+	    {
+	      dw_sect = byte_get (ppool + j * 4, 4);
+	      printf (" %8s", get_DW_SECT_short_name (dw_sect));
+	    }
+	  printf ("\n");
+	}
+      for (i = 0; i < nslots; i++)
+	{
+	  byte_get_64 (ph, &signature_high, &signature_low);
+	  row = byte_get (pi, 4);
+	  if (row != 0)
+	    {
+	      if (!do_display)
+		memcpy (&this_set[row - 1].signature, ph, sizeof (uint64_t));
+	      prow = poffsets + (row - 1) * ncols * 4;
+	      if (do_display)
+		printf (_("  [%3d] 0x%s"),
+			i, dwarf_vmatoa64 (signature_high, signature_low,
+					   buf, sizeof (buf)));
+	      for (j = 0; j < ncols; j++)
+		{
+		  val = byte_get (prow + j * 4, 4);
+		  if (do_display)
+		    printf (" %8d", val);
+		  else
+		    {
+		      dw_sect = byte_get (ppool + j * 4, 4);
+		      this_set [row - 1].section_offsets [dw_sect] = val;
+		    }
+		}
+	      if (do_display)
+		printf ("\n");
+	    }
+	  ph += 8;
+	  pi += 4;
+	}
+
+      ph = phash;
+      pi = pindex;
+      if (do_display)
+        {
+	  printf ("\n");
+	  printf (_("  Size table\n"));
+	  printf ("  slot  %-16s  ",
+		 is_tu_index ? _("signature") : _("dwo_id"));
+        }
+      for (j = 0; j < ncols; j++)
+	{
+	  val = byte_get (ppool + j * 4, 4);
+	  if (do_display)
+	    printf (" %8s", get_DW_SECT_short_name (val));
+	}
+      if (do_display)
+	printf ("\n");
+      for (i = 0; i < nslots; i++)
+	{
+	  byte_get_64 (ph, &signature_high, &signature_low);
+	  row = byte_get (pi, 4);
+	  if (row != 0)
+	    {
+	      prow = psizes + (row - 1) * ncols * 4;
+	      if (do_display)
+		printf (_("  [%3d] 0x%s"),
+			i, dwarf_vmatoa64 (signature_high, signature_low,
+					   buf, sizeof (buf)));
+	      for (j = 0; j < ncols; j++)
+		{
+		  val = byte_get (prow + j * 4, 4);
+		  if (do_display)
+		    printf (" %8d", val);
+		  else
+		    {
+		      dw_sect = byte_get (ppool + j * 4, 4);
+		      this_set [row - 1].section_sizes [dw_sect] = val;
+		    }
+		}
+	      if (do_display)
+		printf ("\n");
+	    }
+	  ph += 8;
+	  pi += 4;
+	}
+    }
+  else if (do_display)
+    printf (_("  Unsupported version\n"));
 
   if (do_display)
       printf ("\n");
@@ -6217,6 +6513,187 @@
   return process_cu_tu_index (section, 1);
 }
 
+/* Return the type of the atom by name.  */
+
+static const char *
+get_atom_type_name (unsigned int type)
+{
+  switch (type)
+    {
+      case 0: return "None";
+      case 1: return "DIE Offset";
+      case 2: return "CU Offset ";
+      case 3: return "Tag";
+      case 4: return "Name Flags";
+      case 5: return "Type Flags";
+      case 6: return "Type Signature Index";
+    }
+  return NULL;
+}
+
+
+typedef struct
+{
+  uint16_t type;
+  uint16_t form;
+} accel_table_atom;
+
+/* Display any dwarf accelerator table.  Typically .debug_names,
+   debug_typenames or .debug_namespaces.  */
+
+static int
+display_debug_accel_table (struct dwarf_section *section,
+                           void *file ATTRIBUTE_UNUSED)
+{
+  unsigned long version;
+  unsigned long hash_function;
+  unsigned long bucket_count;
+  unsigned long hash_count;
+  unsigned long header_data_len;
+  unsigned long die_offset_base;
+  unsigned long atom_count;
+  unsigned char *start = section->start;
+  accel_table_atom *atoms;
+  uint32_t *buckets;
+  uint32_t *hashes;
+  uint32_t *offsets;
+  unsigned int bucket;
+  unsigned int i;
+
+  load_debug_section (str, file);
+
+  printf (_("Contents of the %s section:\n\n"), section->name);
+  printf (_("  Magic:              "));
+  for (i = 0; i < 4; i++)
+    printf ("%c", *start++);
+  if (section->start[0] == 'H' && section->start[1] == 'A'
+      && section->start[2] == 'S' && section->start[3] == 'H')
+    printf (_(" (Big Endian)\n"));
+  else if (section->start[0] == 'H' && section->start[1] == 'S'
+           && section->start[2] == 'A' && section->start[3] == 'H')
+    printf (_(" (Little Endian)\n"));
+  else
+    {
+      warn (_("Malformed debug accelerator table.\n"));
+      return 1;
+    }
+
+  version = GET (2);
+  hash_function = GET (2);
+  bucket_count = GET (4);
+  hash_count = GET (4);
+  header_data_len = GET (4);
+  die_offset_base = GET (4);
+  atom_count = GET (4);
+
+  printf (_("  Version:            %ld\n"), version);
+  printf (_("  Hash Function:      %ld "), hash_function);
+  if (hash_function == 0)
+    printf(_("(DJB Hash Function)\n"));
+  else
+    printf(_("(Unknown)\n"));
+  printf (_("  Buckets:            %ld\n"), bucket_count);
+  printf (_("  Hashes:             %ld\n"), hash_count);
+  printf (_("  Header Data Length: %ld\n"), header_data_len);
+  printf (_("  Die Offset Base:    %ld\n"), die_offset_base);
+  printf (_("  Atom Count:         %ld\n"), atom_count);
+
+  atoms = (accel_table_atom *) start;
+  for (i = 0; i < atom_count; i++)
+    {
+      printf (_("  Atom Type:          "));
+      printf ("%s ", get_atom_type_name (atoms[i].type));
+      printf ("(%s)\n", get_FORM_name (atoms[i].form));
+      start += 4;
+    }
+
+  printf (_("\n  bucket  slot     hash   offset\n"));
+  buckets = (uint32_t *) start;
+  hashes = buckets + bucket_count;
+  offsets = hashes + hash_count;
+
+  for (bucket = 0; bucket < bucket_count; bucket++)
+    {
+      uint32_t hash_offset = buckets[bucket];
+
+      if (hash_offset == 0xFFFFFFFF)
+        printf ("   [%3u]     %s", bucket, (_("<Empty>\n")));
+      else
+        {
+          unsigned int slot = 0;
+          printf ("   [%3u]   %3u ", bucket, slot);
+          print_dwarf_vma (hashes[hash_offset], 4);
+          print_dwarf_vma (offsets[hash_offset], 4);
+          printf ("\n");
+          hash_offset++;
+          slot++;
+
+          while (hash_offset != hash_count
+                 && hashes[hash_offset] % bucket_count == bucket)
+            {
+              printf ("           %3u ", slot);
+              print_dwarf_vma (hashes[hash_offset], 4);
+              print_dwarf_vma (offsets[hash_offset], 4);
+              printf ("\n");
+              hash_offset++;
+              slot++;
+            }
+        }
+    }
+
+  printf (_("\n  Atoms:\n"));
+  printf (_("      offset  key\n"));
+  start = (unsigned char *) (offsets + hash_count);
+  for (i = 0; i < hash_count; i++)
+    {
+      dwarf_vma offset = start - section->start;
+      dwarf_vma str_offset_value = GET(4);
+
+      /* N.B.: These tables use zero to terminate the list, but zero
+         is a valid offset into .debug_str.  Assume that the first
+         entry in a bucket is valid, whether or not it is zero.  If a
+         subsequent entry is zero, terminate the search.  This means
+         that certain strings with colliding hashes will never be
+         found in the table, resulting in the occasional slow lookup,
+         but is a limitation of version 1 of the tables.  */
+      do
+        {
+          dwarf_vma hash_data_count = GET(4);
+          unsigned int j;
+
+          printf ("    ");
+          print_dwarf_vma (offset, 4);
+          printf (" %s\n", fetch_indirect_string (str_offset_value));
+          for (j = 0; j < hash_data_count; j++)
+            {
+              unsigned int k;
+
+              printf("              %s", get_atom_type_name (atoms[0].type));
+              start = read_and_display_attr_value (0, atoms[0].form, start,
+                                                   0, 4, 4, 4, NULL, 0,
+                                                   section, NULL);
+              for (k = 1; k < atom_count; k++)
+                {
+                  printf(", %s", get_atom_type_name (atoms[k].type));
+                  start = read_and_display_attr_value (0, atoms[k].form, start,
+                                                       0, 4, 4, 4, NULL, 0,
+                                                       section, NULL);
+                }
+              printf("\n");
+            }
+          str_offset_value = GET(4);
+        }
+      while (str_offset_value != 0);
+    }
+
+  printf ("\n");
+  return 0;
+}
+
+#undef GET
+#undef LEB
+#undef SLEB
+
 static int
 display_debug_not_supported (struct dwarf_section *section,
 			     void *file ATTRIBUTE_UNUSED)
@@ -6305,6 +6782,7 @@
       /* Please keep this table alpha- sorted.  */
       { "Ranges", & do_debug_ranges, 1 },
       { "abbrev", & do_debug_abbrevs, 1 },
+      { "accel_tables", & do_debug_accel_tables, 1 },
       { "addr", & do_debug_addr, 1 },
       { "aranges", & do_debug_aranges, 1 },
       { "cu_index", & do_debug_cu_index, 1 },
@@ -6454,13 +6932,14 @@
   do_trace_aranges = 1;
   do_debug_addr = 1;
   do_debug_cu_index = 1;
+  do_debug_accel_tables = 1;
 }
 
 struct dwarf_section_display debug_displays[] =
 {
-  { { ".debug_abbrev",	    ".zdebug_abbrev",	NULL, NULL, 0, 0, 0 },
+  { { ".debug_abbrev",	    ".zdebug_abbrev",   NULL, NULL, 0, 0, 0 },
     display_debug_abbrev,   &do_debug_abbrevs,	0 },
-  { { ".debug_aranges",	    ".zdebug_aranges",	NULL, NULL, 0, 0, 0 },
+  { { ".debug_aranges",	    ".zdebug_aranges",  NULL, NULL, 0, 0, 0 },
     display_debug_aranges,  &do_debug_aranges,	1 },
   { { ".debug_frame",       ".zdebug_frame",	NULL, NULL, 0, 0, 0 },
     display_debug_frames,   &do_debug_frames,	1 },
@@ -6526,4 +7005,10 @@
     display_cu_index,       &do_debug_cu_index,	0 },
   { { ".debug_tu_index",    "",			NULL, NULL, 0, 0, 0 },
     display_cu_index,       &do_debug_cu_index,	0 },
+  { { ".debug_names",       ".zdebug_names",	 NULL, NULL, 0, 0, 0 },
+    display_debug_accel_table, &do_debug_accel_tables,	1 },
+  { { ".debug_typenames",   ".zdebug_typenames", NULL, NULL, 0, 0, 0 },
+    display_debug_accel_table, &do_debug_accel_tables,	1 },
+  { { ".debug_namespaces",  ".zdebug_namespaces", NULL, NULL, 0, 0, 0 },
+    display_debug_accel_table, &do_debug_accel_tables,	1 },
 };
diff --git a/binutils/dwarf.h b/binutils/dwarf.h
index 2d00b83..758e83a 100644
--- a/binutils/dwarf.h
+++ b/binutils/dwarf.h
@@ -145,6 +145,9 @@
   debug_addr,
   dwp_cu_index,
   dwp_tu_index,
+  debug_names,
+  debug_typenames,
+  debug_namespaces,
   max
 };
 
@@ -222,6 +225,7 @@
 extern int do_trace_aranges;
 extern int do_debug_addr;
 extern int do_debug_cu_index;
+extern int do_debug_accel_tables;
 extern int do_wide;
 
 extern int dwarf_cutoff_level;
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 2279c43..69a598b 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -219,7 +219,7 @@
   --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n\
           =frames-interp,=str,=loc,=Ranges,=pubtypes,\n\
           =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n\
-          =addr,=cu_index]\n\
+          =addr,=cu_index,=accel_tables]\n\
                            Display DWARF info in the file\n\
   -t, --syms               Display the contents of the symbol table(s)\n\
   -T, --dynamic-syms       Display the contents of the dynamic symbol table\n\
diff --git a/binutils/readelf.c b/binutils/readelf.c
index a5e511c..ae1c4d1 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -3201,7 +3201,7 @@
   --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n\
                =frames-interp,=str,=loc,=Ranges,=pubtypes,\n\
                =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n\
-               =addr,=cu_index]\n\
+               =addr,=cu_index,=accel_tables]\n\
                          Display the contents of DWARF2 debug sections\n"));
   fprintf (stream, _("\
   --dwarf-depth=N        Do not display DIEs at depth N or greater\n\
@@ -4625,7 +4625,7 @@
 		|| do_debug_lines || do_debug_pubnames || do_debug_pubtypes
 		|| do_debug_aranges || do_debug_frames || do_debug_macinfo
 		|| do_debug_str || do_debug_loc || do_debug_ranges
-		|| do_debug_addr || do_debug_cu_index)
+		|| do_debug_addr || do_debug_cu_index || do_debug_accel_tables)
 	       && (const_strneq (name, ".debug_")
                    || const_strneq (name, ".zdebug_")))
 	{
@@ -4651,6 +4651,9 @@
 	      || (do_debug_addr     && const_strneq (name, "addr"))
 	      || (do_debug_cu_index && const_strneq (name, "cu_index"))
 	      || (do_debug_cu_index && const_strneq (name, "tu_index"))
+	      || (do_debug_accel_tables && const_strneq (name, "names"))
+	      || (do_debug_accel_tables && const_strneq (name, "typenames"))
+	      || (do_debug_accel_tables && const_strneq (name, "namespaces"))
 	      )
 	    request_dump_bynumber (i, DEBUG_DUMP);
 	}
@@ -12553,6 +12556,17 @@
 		major, minor, subminor);
       }
       break;
+
+    case NT_GNU_GOLD_VERSION:
+      {
+	unsigned long i;
+
+	printf (_("    Version: "));
+	for (i = 0; i < pnote->descsz && pnote->descdata[i] != '\0'; ++i)
+	  printf ("%c", pnote->descdata[i]);
+	printf ("\n");
+      }
+      break;
     }
 
   return 1;
diff --git a/elfcpp/dwarf.h b/elfcpp/dwarf.h
index a4e7a13..c630f99 100644
--- a/elfcpp/dwarf.h
+++ b/elfcpp/dwarf.h
@@ -688,44 +688,59 @@
 
 // Source language names and codes.
 enum DW_LANG
-  {
-    DW_LANG_C89 = 0x0001,
-    DW_LANG_C = 0x0002,
-    DW_LANG_Ada83 = 0x0003,
-    DW_LANG_C_plus_plus = 0x0004,
-    DW_LANG_Cobol74 = 0x0005,
-    DW_LANG_Cobol85 = 0x0006,
-    DW_LANG_Fortran77 = 0x0007,
-    DW_LANG_Fortran90 = 0x0008,
-    DW_LANG_Pascal83 = 0x0009,
-    DW_LANG_Modula2 = 0x000a,
-    // DWARF 3.
-    DW_LANG_Java = 0x000b,
-    DW_LANG_C99 = 0x000c,
-    DW_LANG_Ada95 = 0x000d,
-    DW_LANG_Fortran95 = 0x000e,
-    DW_LANG_PLI = 0x000f,
-    DW_LANG_ObjC = 0x0010,
-    DW_LANG_ObjC_plus_plus = 0x0011,
-    DW_LANG_UPC = 0x0012,
-    DW_LANG_D = 0x0013,
-    // DWARF 4.
-    DW_LANG_Python = 0x0014,
-    // DWARF 5.
-    DW_LANG_Go = 0x0016,
-    DW_LANG_lo_user = 0x8000,	// Implementation-defined range start.
-    DW_LANG_hi_user = 0xffff,	// Implementation-defined range start.
-    // MIPS.
-    DW_LANG_Mips_Assembler = 0x8001,
-    // UPC.
-    DW_LANG_Upc = 0x8765,
-    // HP extensions.
-    DW_LANG_HP_Bliss     = 0x8003,
-    DW_LANG_HP_Basic91   = 0x8004,
-    DW_LANG_HP_Pascal91  = 0x8005,
-    DW_LANG_HP_IMacro    = 0x8006,
-    DW_LANG_HP_Assembler = 0x8007
-  };
+{
+  DW_LANG_C89 = 0x0001,
+  DW_LANG_C = 0x0002,
+  DW_LANG_Ada83 = 0x0003,
+  DW_LANG_C_plus_plus = 0x0004,
+  DW_LANG_Cobol74 = 0x0005,
+  DW_LANG_Cobol85 = 0x0006,
+  DW_LANG_Fortran77 = 0x0007,
+  DW_LANG_Fortran90 = 0x0008,
+  DW_LANG_Pascal83 = 0x0009,
+  DW_LANG_Modula2 = 0x000a,
+  // DWARF 3.
+  DW_LANG_Java = 0x000b,
+  DW_LANG_C99 = 0x000c,
+  DW_LANG_Ada95 = 0x000d,
+  DW_LANG_Fortran95 = 0x000e,
+  DW_LANG_PLI = 0x000f,
+  DW_LANG_ObjC = 0x0010,
+  DW_LANG_ObjC_plus_plus = 0x0011,
+  DW_LANG_UPC = 0x0012,
+  DW_LANG_D = 0x0013,
+  // DWARF 4.
+  DW_LANG_Python = 0x0014,
+  // DWARF 5.
+  DW_LANG_Go = 0x0016,
+  DW_LANG_lo_user = 0x8000,	// Implementation-defined range start.
+  DW_LANG_hi_user = 0xffff,	// Implementation-defined range start.
+  // MIPS.
+  DW_LANG_Mips_Assembler = 0x8001,
+  // UPC.
+  DW_LANG_Upc = 0x8765,
+  // HP extensions.
+  DW_LANG_HP_Bliss     = 0x8003,
+  DW_LANG_HP_Basic91   = 0x8004,
+  DW_LANG_HP_Pascal91  = 0x8005,
+  DW_LANG_HP_IMacro    = 0x8006,
+  DW_LANG_HP_Assembler = 0x8007
+};
+
+// DWARF section identifiers used in the package format.
+
+enum DW_SECT
+{
+  DW_SECT_INFO = 1,
+  DW_SECT_TYPES = 2,
+  DW_SECT_ABBREV = 3,
+  DW_SECT_LINE = 4,
+  DW_SECT_LOC = 5,
+  DW_SECT_STR_OFFSETS = 6,
+  DW_SECT_MACINFO = 7,
+  DW_SECT_MACRO = 8,
+  DW_SECT_MAX = DW_SECT_MACRO,
+};
 
 } // End namespace elfcpp.
 
diff --git a/gas/.gitignore b/gas/.gitignore
new file mode 100644
index 0000000..27d4887
--- /dev/null
+++ b/gas/.gitignore
@@ -0,0 +1,9 @@
+/as-new
+
+/itbl-cpu.h
+/obj-format.h
+/targ-cpu.h
+/targ-env.h
+
+/doc/as.1
+/doc/asconfig.texi
diff --git a/gas/as.c b/gas/as.c
index 3b1185b..56c5308 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -127,6 +127,9 @@
 #endif
 
 static long start_time;
+#ifdef HAVE_SBRK
+char *start_sbrk;
+#endif
 
 static int flag_macro_alternate;
 
@@ -997,7 +1000,7 @@
 	   myname, run_time / 1000000, run_time % 1000000);
 #ifdef HAVE_SBRK
   fprintf (stderr, _("%s: data size %ld\n"),
-	   myname, (long) (lim - (char *) &environ));
+	   myname, (long) (lim - start_sbrk));
 #endif
 
   subsegs_print_statistics (stderr);
@@ -1151,6 +1154,9 @@
   int macro_strip_at;
 
   start_time = get_run_time ();
+#ifdef HAVE_SBRK
+  start_sbrk = (char *) sbrk (0);
+#endif
 
 #if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
   setlocale (LC_MESSAGES, "");
diff --git a/gas/write.c b/gas/write.c
index a1e0205..a481e84 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -406,8 +406,8 @@
 	  prev_fix = frchp->fix_tail;
 	}
     }
-  gas_assert (prev_frag->fr_type != 0);
-  gas_assert (prev_frag != &dummy);
+  gas_assert (prev_frag != &dummy
+	      && prev_frag->fr_type != 0);
   prev_frag->fr_next = 0;
   return prev_frag;
 }
diff --git a/gold/Makefile.am b/gold/Makefile.am
index ebbbf89..ef256fa 100644
--- a/gold/Makefile.am
+++ b/gold/Makefile.am
@@ -34,7 +34,9 @@
 am__skiplex =
 am__skipyacc =
 
-noinst_PROGRAMS = ld-new incremental-dump dwp
+bin_PROGRAMS = dwp
+
+noinst_PROGRAMS = ld-new incremental-dump
 noinst_LIBRARIES = libgold.a
 
 CCFILES = \
@@ -172,7 +174,9 @@
 
 dwp_SOURCES = dwp.cc
 dwp_DEPENDENCIES = libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
-dwp_LDADD = libgold.a $(LIBIBERTY) $(LIBINTL) $(THREADSLIB) $(LIBDL)
+dwp_LDADD = libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) $(THREADSLIB) \
+	$(LIBDL)
+dwp_LDFLAGS = $(GOLD_LDFLAGS)
 
 # Use an explicit dependency for the bison generated header file.
 expression.$(OBJEXT): yyscript.h
@@ -184,18 +188,14 @@
 
 .PHONY: install-exec-local
 
-install-exec-local: ld-new$(EXEEXT) dwp$(EXEEXT)
+install-exec-local: ld-new$(EXEEXT)
 	$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(tooldir)/bin
 	n=`echo $(installed_linker) | sed '$(transform)'`; \
 	$(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(bindir)/$${n}$(EXEEXT); \
-	$(INSTALL_PROGRAM) dwp$(EXEEXT) $(DESTDIR)$(bindir)/dwp$(EXEEXT); \
 	if test "$(bindir)" != "$(tooldir)/bin"; then \
 	  rm -f $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \
-	  rm -f $(DESTDIR)$(tooldir)/bin/dwp$(EXEEXT); \
 	  ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT) >/dev/null 2>/dev/null \
 	  || $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \
-	  ln $(DESTDIR)$(bindir)/dwp$(EXEEXT) $(DESTDIR)$(tooldir)/bin/dwp$(EXEEXT) >/dev/null 2>/dev/null \
-	  || $(INSTALL_PROGRAM) dwp$(EXEEXT) $(DESTDIR)$(tooldir)/bin/dwp$(EXEEXT); \
 	fi; \
 	if test "x$(install_as_default)" = "xyes"; then \
 	  ld=`echo ld | sed '$(transform)'`; \
@@ -224,7 +224,7 @@
 # identical to ld1, since it was linked with the host linker.
 
 if GCC
-if NATIVE_LINKER
+if TEST_AS_NATIVE_LINKER
 
 gcctestdir1/ld: ld-new
 	test -d gcctestdir1 || mkdir -p gcctestdir1
diff --git a/gold/Makefile.in b/gold/Makefile.in
index 4c0bf72..1f88fa3 100644
--- a/gold/Makefile.in
+++ b/gold/Makefile.in
@@ -38,11 +38,12 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-noinst_PROGRAMS = ld-new$(EXEEXT) incremental-dump$(EXEEXT) \
-	dwp$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@check_PROGRAMS = ld1$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ld2$(EXEEXT) ld1-r$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ld2-r$(EXEEXT)
+bin_PROGRAMS = dwp$(EXEEXT)
+noinst_PROGRAMS = ld-new$(EXEEXT) incremental-dump$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@check_PROGRAMS = ld1$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ld2$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ld1-r$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ld2-r$(EXEEXT)
 subdir = .
 DIST_COMMON = NEWS README ChangeLog $(srcdir)/Makefile.in \
 	$(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -93,10 +94,13 @@
 am_libgold_a_OBJECTS = $(am__objects_1) $(am__objects_2) \
 	$(am__objects_3) $(am__objects_2)
 libgold_a_OBJECTS = $(am_libgold_a_OBJECTS)
-PROGRAMS = $(noinst_PROGRAMS)
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 am_dwp_OBJECTS = dwp.$(OBJEXT)
 dwp_OBJECTS = $(am_dwp_OBJECTS)
 am__DEPENDENCIES_1 =
+dwp_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(dwp_LDFLAGS) \
+	$(LDFLAGS) -o $@
 am_incremental_dump_OBJECTS = incremental-dump.$(OBJEXT)
 incremental_dump_OBJECTS = $(am_incremental_dump_OBJECTS)
 am__objects_4 = main.$(OBJEXT)
@@ -107,19 +111,23 @@
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 ld_new_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld_new_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld1_OBJECTS = $(am__objects_4)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ld1_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(am__objects_4)
 ld1_OBJECTS = $(am_ld1_OBJECTS)
 ld1_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld1_r_OBJECTS = $(am__objects_4)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ld1_r_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(am__objects_4)
 ld1_r_OBJECTS = $(am_ld1_r_OBJECTS)
 ld1_r_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_r_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld2_OBJECTS = $(am__objects_4)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ld2_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(am__objects_4)
 ld2_OBJECTS = $(am_ld2_OBJECTS)
 ld2_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld2_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld2_r_OBJECTS = $(am__objects_4)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ld2_r_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(am__objects_4)
 ld2_r_OBJECTS = $(am_ld2_r_OBJECTS)
 ld2_r_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld2_r_LDFLAGS) \
 	$(LDFLAGS) -o $@
@@ -516,25 +524,28 @@
 
 dwp_SOURCES = dwp.cc
 dwp_DEPENDENCIES = libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
-dwp_LDADD = libgold.a $(LIBIBERTY) $(LIBINTL) $(THREADSLIB) $(LIBDL)
+dwp_LDADD = libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) $(THREADSLIB) \
+	$(LIBDL)
+
+dwp_LDFLAGS = $(GOLD_LDFLAGS)
 POTFILES = $(CCFILES) $(HFILES) $(TARGETSOURCES)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_SOURCES = $(sources_var)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_LDADD = $(ldadd_var)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_LDFLAGS = -Bgcctestdir1/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_SOURCES = $(sources_var)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_LDADD = $(ldadd_var)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_LDFLAGS = -Bgcctestdir2/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_SOURCES = $(sources_var)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_LDADD = libgold-1-r.o $(ldadd_var)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld1_r_LDFLAGS = -Bgcctestdir1/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_r_SOURCES = $(sources_var)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_r_LDADD = libgold-2-r.o $(ldadd_var)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ld2_r_LDFLAGS = -Bgcctestdir2-r/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@TESTS = bootstrap-test bootstrap-test-r
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld1_SOURCES = $(sources_var)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld1_LDADD = $(ldadd_var)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld1_LDFLAGS = -Bgcctestdir1/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld2_SOURCES = $(sources_var)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld2_LDADD = $(ldadd_var)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld2_LDFLAGS = -Bgcctestdir2/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld1_r_SOURCES = $(sources_var)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld1_r_LDADD = libgold-1-r.o $(ldadd_var)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld1_r_LDFLAGS = -Bgcctestdir1/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld2_r_SOURCES = $(sources_var)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld2_r_LDADD = libgold-2-r.o $(ldadd_var)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ld2_r_LDFLAGS = -Bgcctestdir2-r/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@TESTS = bootstrap-test bootstrap-test-r
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
@@ -605,6 +616,43 @@
 	-rm -f libgold.a
 	$(libgold_a_AR) libgold.a $(libgold_a_OBJECTS) $(libgold_a_LIBADD)
 	$(RANLIB) libgold.a
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
 
 clean-checkPROGRAMS:
 	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
@@ -613,7 +661,7 @@
 	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
 dwp$(EXEEXT): $(dwp_OBJECTS) $(dwp_DEPENDENCIES) 
 	@rm -f dwp$(EXEEXT)
-	$(CXXLINK) $(dwp_OBJECTS) $(dwp_LDADD) $(LIBS)
+	$(dwp_LINK) $(dwp_OBJECTS) $(dwp_LDADD) $(LIBS)
 incremental-dump$(EXEEXT): $(incremental_dump_OBJECTS) $(incremental_dump_DEPENDENCIES) 
 	@rm -f incremental-dump$(EXEEXT)
 	$(CXXLINK) $(incremental_dump_OBJECTS) $(incremental_dump_LDADD) $(LIBS)
@@ -1032,6 +1080,9 @@
 all-am: Makefile $(LIBRARIES) $(PROGRAMS) config.h
 installdirs: installdirs-recursive
 installdirs-am:
+	for dir in "$(DESTDIR)$(bindir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
 install: install-recursive
 install-exec: install-exec-recursive
 install-data: install-data-recursive
@@ -1065,8 +1116,8 @@
 	-rm -f yyscript.h
 clean: clean-recursive
 
-clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \
-	clean-noinstPROGRAMS mostlyclean-am
+clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+	clean-noinstLIBRARIES clean-noinstPROGRAMS mostlyclean-am
 
 distclean: distclean-recursive
 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
@@ -1093,7 +1144,7 @@
 
 install-dvi-am:
 
-install-exec-am: install-exec-local
+install-exec-am: install-binPROGRAMS install-exec-local
 
 install-html: install-html-recursive
 
@@ -1134,7 +1185,7 @@
 
 ps-am:
 
-uninstall-am:
+uninstall-am: uninstall-binPROGRAMS
 
 .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check-am \
 	check-html ctags-recursive install-am install-strip recheck \
@@ -1142,19 +1193,20 @@
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am am--refresh check check-TESTS check-am check-html \
-	clean clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \
-	clean-noinstPROGRAMS ctags ctags-recursive distclean \
-	distclean-compile distclean-generic distclean-hdr \
-	distclean-tags dvi dvi-am html html-am info info-am install \
-	install-am install-data install-data-am install-data-local \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-exec-local install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am recheck recheck-html \
-	tags tags-recursive uninstall uninstall-am
+	clean clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+	clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \
+	ctags-recursive distclean distclean-compile distclean-generic \
+	distclean-hdr distclean-tags dvi dvi-am html html-am info \
+	info-am install install-am install-binPROGRAMS install-data \
+	install-data-am install-data-local install-dvi install-dvi-am \
+	install-exec install-exec-am install-exec-local install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+	ps ps-am recheck recheck-html tags tags-recursive uninstall \
+	uninstall-am uninstall-binPROGRAMS
 
 
 # Use an explicit dependency for the bison generated header file.
@@ -1167,18 +1219,14 @@
 
 .PHONY: install-exec-local
 
-install-exec-local: ld-new$(EXEEXT) dwp$(EXEEXT)
+install-exec-local: ld-new$(EXEEXT)
 	$(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(tooldir)/bin
 	n=`echo $(installed_linker) | sed '$(transform)'`; \
 	$(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(bindir)/$${n}$(EXEEXT); \
-	$(INSTALL_PROGRAM) dwp$(EXEEXT) $(DESTDIR)$(bindir)/dwp$(EXEEXT); \
 	if test "$(bindir)" != "$(tooldir)/bin"; then \
 	  rm -f $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \
-	  rm -f $(DESTDIR)$(tooldir)/bin/dwp$(EXEEXT); \
 	  ln $(DESTDIR)$(bindir)/$${n}$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT) >/dev/null 2>/dev/null \
 	  || $(INSTALL_PROGRAM) ld-new$(EXEEXT) $(DESTDIR)$(tooldir)/bin/$(installed_linker)$(EXEEXT); \
-	  ln $(DESTDIR)$(bindir)/dwp$(EXEEXT) $(DESTDIR)$(tooldir)/bin/dwp$(EXEEXT) >/dev/null 2>/dev/null \
-	  || $(INSTALL_PROGRAM) dwp$(EXEEXT) $(DESTDIR)$(tooldir)/bin/dwp$(EXEEXT); \
 	fi; \
 	if test "x$(install_as_default)" = "xyes"; then \
 	  ld=`echo ld | sed '$(transform)'`; \
@@ -1204,38 +1252,38 @@
 # build ld2.  ld1 and ld2 should be identical.  ld-new need not be
 # identical to ld1, since it was linked with the host linker.
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir1/ld: ld-new
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d gcctestdir1 || mkdir -p gcctestdir1
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f gcctestdir1/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	(cd gcctestdir1 && $(LN_S) ../ld-new ld)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gcctestdir1/ld: ld-new
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d gcctestdir1 || mkdir -p gcctestdir1
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f gcctestdir1/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	(cd gcctestdir1 && $(LN_S) ../ld-new ld)
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir2/ld: ld1
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d gcctestdir2 || mkdir -p gcctestdir2
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f gcctestdir2/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	(cd gcctestdir2 && $(LN_S) ../ld1 ld)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gcctestdir2/ld: ld1
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d gcctestdir2 || mkdir -p gcctestdir2
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f gcctestdir2/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	(cd gcctestdir2 && $(LN_S) ../ld1 ld)
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@bootstrap-test: ld2
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "#!/bin/sh" > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "cmp ld1 ld2" > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	chmod +x $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@bootstrap-test: ld2
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo "#!/bin/sh" > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo "cmp ld1 ld2" > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	chmod +x $@
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libgold-1-r.o: gcctestdir1/ld libgold.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir1/ld -o $@ -r --whole-archive libgold.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libgold-1-r.o: gcctestdir1/ld libgold.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir1/ld -o $@ -r --whole-archive libgold.a
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gcctestdir2-r/ld: ld1-r
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d gcctestdir2-r || mkdir -p gcctestdir2-r
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f gcctestdir2-r/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	(cd gcctestdir2-r && $(LN_S) ../ld1-r ld)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gcctestdir2-r/ld: ld1-r
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d gcctestdir2-r || mkdir -p gcctestdir2-r
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f gcctestdir2-r/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	(cd gcctestdir2-r && $(LN_S) ../ld1-r ld)
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libgold-2-r.o: gcctestdir2-r/ld libgold.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libgold-2-r.o: gcctestdir2-r/ld libgold.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@bootstrap-test-r: ld2-r
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "#!/bin/sh" > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo "cmp ld1-r ld2-r" > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	chmod +x $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@bootstrap-test-r: ld2-r
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo "#!/bin/sh" > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo "cmp ld1-r ld2-r" > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	chmod +x $@
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gold/archive.cc b/gold/archive.cc
index 4db813d..ef39988 100644
--- a/gold/archive.cc
+++ b/gold/archive.cc
@@ -96,46 +96,56 @@
 
   *symp = sym;
 
-  if (sym == NULL)
+  if (sym != NULL)
     {
-      // Check whether the symbol was named in a -u option.
-      if (parameters->options().is_undefined(sym_name))
-        {
-          *why = "-u ";
-          *why += sym_name;
-        }
-      else if (parameters->options().is_export_dynamic_symbol(sym_name))
-        {
-          *why = "--export-dynamic-symbol ";
-          *why += sym_name;
-        }
-      else if (layout->script_options()->is_referenced(sym_name))
-	{
-	  size_t alc = 100 + strlen(sym_name);
-	  char* buf = new char[alc];
-	  snprintf(buf, alc, _("script or expression reference to %s"),
-		   sym_name);
-	  *why = buf;
-	  delete[] buf;
-	}
-      else if (strcmp(sym_name, parameters->entry()) == 0)
-	{
-	  *why = "entry symbol ";
-	  *why += sym_name;
-	}
-      else
-	return Library_base::SHOULD_INCLUDE_UNKNOWN;
-    }
-  else if (!sym->is_undefined())
-    return Library_base::SHOULD_INCLUDE_NO;
-  // PR 12001: Do not include an archive when the undefined
-  // symbol has actually been defined on the command line.
-  else if (layout->script_options()->is_pending_assignment(sym_name))
-    return Library_base::SHOULD_INCLUDE_NO;
-  else if (sym->binding() == elfcpp::STB_WEAK)
-    return Library_base::SHOULD_INCLUDE_UNKNOWN;
+      if (!sym->is_undefined())
+	return Library_base::SHOULD_INCLUDE_NO;
 
-  return Library_base::SHOULD_INCLUDE_YES;
+      // PR 12001: Do not include an archive when the undefined
+      // symbol has actually been defined on the command line.
+      if (layout->script_options()->is_pending_assignment(sym_name))
+	return Library_base::SHOULD_INCLUDE_NO;
+
+      // If the symbol is weak undefined, we still need to check
+      // for other reasons (like a -u option).
+      if (sym->binding() != elfcpp::STB_WEAK)
+	return Library_base::SHOULD_INCLUDE_YES;
+    }
+
+  // Check whether the symbol was named in a -u option.
+  if (parameters->options().is_undefined(sym_name))
+    {
+      *why = "-u ";
+      *why += sym_name;
+      return Library_base::SHOULD_INCLUDE_YES;
+    }
+
+  if (parameters->options().is_export_dynamic_symbol(sym_name))
+    {
+      *why = "--export-dynamic-symbol ";
+      *why += sym_name;
+      return Library_base::SHOULD_INCLUDE_YES;
+    }
+
+  if (layout->script_options()->is_referenced(sym_name))
+    {
+      size_t alc = 100 + strlen(sym_name);
+      char* buf = new char[alc];
+      snprintf(buf, alc, _("script or expression reference to %s"),
+	       sym_name);
+      *why = buf;
+      delete[] buf;
+      return Library_base::SHOULD_INCLUDE_YES;
+    }
+
+  if (strcmp(sym_name, parameters->entry()) == 0)
+    {
+      *why = "entry symbol ";
+      *why += sym_name;
+      return Library_base::SHOULD_INCLUDE_YES;
+    }
+
+  return Library_base::SHOULD_INCLUDE_UNKNOWN;
 }
 
 // The header of an entry in the archive.  This is all readable text,
@@ -654,33 +664,45 @@
 				 &member_name))
     return NULL;
 
+  const unsigned char* ehdr;
+  int read_size;
+  Object *obj = NULL;
+  bool is_elf_obj = false;
+
+  if (is_elf_object(input_file, memoff, &ehdr, &read_size))
+    {
+      obj = make_elf_object((std::string(this->input_file_->filename())
+			     + "(" + member_name + ")"),
+			    input_file, memoff, ehdr, read_size,
+			    punconfigured);
+      is_elf_obj = true;
+    }
+
   if (parameters->options().has_plugins())
     {
-      Object* obj = parameters->options().plugins()->claim_file(input_file,
-                                                                memoff,
-                                                                memsize,
-								NULL);
-      if (obj != NULL)
+      Object* plugin_obj
+	= parameters->options().plugins()->claim_file(input_file,
+						      memoff,
+						      memsize,
+						      obj);
+      if (plugin_obj != NULL)
         {
           // The input file was claimed by a plugin, and its symbols
           // have been provided by the plugin.
-          return obj;
+	  // Delete its elf object.
+	  if (obj != NULL)
+	    delete obj;
+          return plugin_obj;
         }
     }
 
-  const unsigned char* ehdr;
-  int read_size;
-  if (!is_elf_object(input_file, memoff, &ehdr, &read_size))
+  if (!is_elf_obj)
     {
       gold_error(_("%s: member at %zu is not an ELF object"),
 		 this->name().c_str(), static_cast<size_t>(off));
       return NULL;
     }
 
-  Object* obj = make_elf_object((std::string(this->input_file_->filename())
-				 + "(" + member_name + ")"),
-				input_file, memoff, ehdr, read_size,
-				punconfigured);
   if (obj == NULL)
     return NULL;
   obj->set_no_export(this->no_export());
diff --git a/gold/arm.cc b/gold/arm.cc
index 7e50770..bc73bf7 100644
--- a/gold/arm.cc
+++ b/gold/arm.cc
@@ -3299,7 +3299,6 @@
 	const Symbol_value<32>* psymval)
   {
     typedef typename elfcpp::Swap_unaligned<16, big_endian>::Valtype Valtype;
-    typedef typename elfcpp::Swap<32, big_endian>::Valtype Reltype;
     Valtype val = elfcpp::Swap_unaligned<16, big_endian>::readval(view);
     int32_t addend = utils::sign_extend<16>(val);
     Arm_address x = psymval->value(object, addend);
@@ -5253,8 +5252,6 @@
   off_t offset = this->offset();
   const section_size_type oview_size = 8;
   unsigned char* const oview = of->get_output_view(offset, oview_size);
-  
-  typedef typename elfcpp::Swap_unaligned<32, big_endian>::Valtype Valtype;
 
   Output_section* os = this->relobj_->output_section(this->shndx_);
   gold_assert(os != NULL);
@@ -10943,8 +10940,6 @@
     elfcpp::Elf_types<32>::Elf_Swxword addend,
     Arm_address address)
 {
-  typedef typename Target_arm<big_endian>::Relocate Relocate;
-
   const Arm_relobj<big_endian>* arm_relobj =
     Arm_relobj<big_endian>::as_arm_relobj(relinfo->object);
 
diff --git a/gold/common.cc b/gold/common.cc
index 1a9aea8..b0c7d6e 100644
--- a/gold/common.cc
+++ b/gold/common.cc
@@ -1,6 +1,7 @@
 // common.cc -- handle common symbols for gold
 
-// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012
+// Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -222,9 +223,6 @@
     Mapfile* mapfile,
     Sort_commons_order sort_order)
 {
-  typedef typename Sized_symbol<size>::Value_type Value_type;
-  typedef typename Sized_symbol<size>::Size_type Size_type;
-
   // We've kept a list of all the common symbols.  But the symbol may
   // have been resolved to a defined symbol by now.  And it may be a
   // forwarder.  First remove all non-common symbols.
diff --git a/gold/configure b/gold/configure
index 8c5e664..764c891 100755
--- a/gold/configure
+++ b/gold/configure
@@ -631,8 +631,8 @@
 NATIVE_OR_CROSS_LINKER_TRUE
 GCC_FALSE
 GCC_TRUE
-NATIVE_LINKER_FALSE
-NATIVE_LINKER_TRUE
+TEST_AS_NATIVE_LINKER_FALSE
+TEST_AS_NATIVE_LINKER_TRUE
 MSGMERGE
 MSGFMT
 MKINSTALLDIRS
@@ -777,6 +777,7 @@
 enable_threads
 enable_plugins
 enable_targets
+enable_test_as_native
 enable_dependency_tracking
 enable_nls
 enable_werror
@@ -1425,6 +1426,7 @@
   --enable-threads        multi-threaded linking
   --enable-plugins        linker plugins
   --enable-targets        alternative target configurations
+  --enable-test-as-native  test as though linker is native
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
   --disable-nls           do not use Native Language Support
@@ -3378,6 +3380,26 @@
   done
 fi
 
+# Check whether --enable-test-as-native was given.
+if test "${enable_test_as_native+set}" = set; then :
+  enableval=$enable_test_as_native; case "${enableval}" in
+  no)
+    test_as_native=no
+    ;;
+  *)
+    test_as_native=yes
+    ;;
+esac
+else
+  if test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias"; then
+  test_as_native=yes
+else
+  test_as_native=no
+fi
+fi
+
+
+
 # See which specific instantiations we need.
 targetobjs=
 all_targets=
@@ -6184,12 +6206,12 @@
 
 
 
- if test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias"; then
-  NATIVE_LINKER_TRUE=
-  NATIVE_LINKER_FALSE='#'
+ if test "x$test_as_native" = "xyes"; then
+  TEST_AS_NATIVE_LINKER_TRUE=
+  TEST_AS_NATIVE_LINKER_FALSE='#'
 else
-  NATIVE_LINKER_TRUE='#'
-  NATIVE_LINKER_FALSE=
+  TEST_AS_NATIVE_LINKER_TRUE='#'
+  TEST_AS_NATIVE_LINKER_FALSE=
 fi
 
  if test "$GCC" = yes; then
@@ -7488,8 +7510,8 @@
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
-if test -z "${NATIVE_LINKER_TRUE}" && test -z "${NATIVE_LINKER_FALSE}"; then
-  as_fn_error "conditional \"NATIVE_LINKER\" was never defined.
+if test -z "${TEST_AS_NATIVE_LINKER_TRUE}" && test -z "${TEST_AS_NATIVE_LINKER_FALSE}"; then
+  as_fn_error "conditional \"TEST_AS_NATIVE_LINKER\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${GCC_TRUE}" && test -z "${GCC_FALSE}"; then
diff --git a/gold/configure.ac b/gold/configure.ac
index b9d7162..0d4b10a 100644
--- a/gold/configure.ac
+++ b/gold/configure.ac
@@ -130,6 +130,23 @@
   done
 fi
 
+AC_ARG_ENABLE([test-as-native],
+[  --enable-test-as-native  test as though linker is native],
+[case "${enableval}" in
+  no)
+    test_as_native=no
+    ;;
+  *)
+    test_as_native=yes
+    ;;
+esac],
+[if test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias"; then
+  test_as_native=yes
+else
+  test_as_native=no
+fi])
+
+
 # See which specific instantiations we need.
 targetobjs=
 all_targets=
@@ -256,8 +273,8 @@
 
 AC_EXEEXT
 
-AM_CONDITIONAL(NATIVE_LINKER,
-  test "x$target_alias" = "x" -o "x$host_alias" = "x$target_alias")
+AM_CONDITIONAL(TEST_AS_NATIVE_LINKER,
+  test "x$test_as_native" = "xyes")
 AM_CONDITIONAL(GCC, test "$GCC" = yes)
 
 AM_CONDITIONAL(NATIVE_OR_CROSS_LINKER,
diff --git a/gold/dwarf_reader.cc b/gold/dwarf_reader.cc
index 93c0d89..c09be5a 100644
--- a/gold/dwarf_reader.cc
+++ b/gold/dwarf_reader.cc
@@ -375,6 +375,7 @@
   this->ranges_reloc_mapper_ = make_elf_reloc_mapper(object, symtab,
 						     symtab_size);
   this->ranges_reloc_mapper_->initialize(reloc_shndx, reloc_type);
+  this->reloc_type_ = reloc_type;
 
   return true;
 }
@@ -431,11 +432,8 @@
       unsigned int shndx2 = 0;
       if (this->ranges_reloc_mapper_ != NULL)
         {
-	  shndx1 =
-	      this->ranges_reloc_mapper_->get_reloc_target(offset, &start);
-	  shndx2 =
-	      this->ranges_reloc_mapper_->get_reloc_target(offset + addr_size,
-							   &end);
+	  shndx1 = this->lookup_reloc(offset, &start);
+	  shndx2 = this->lookup_reloc(offset + addr_size, &end);
         }
 
       // End of list is marked by a pair of zeroes.
@@ -461,57 +459,65 @@
   return ranges;
 }
 
+// Look for a relocation at offset OFF in the range table,
+// and return the section index and offset of the target.
+
+unsigned int
+Dwarf_ranges_table::lookup_reloc(off_t off, off_t* target_off)
+{
+  off_t value;
+  unsigned int shndx =
+      this->ranges_reloc_mapper_->get_reloc_target(off, &value);
+  if (shndx == 0)
+    return 0;
+  if (this->reloc_type_ == elfcpp::SHT_REL)
+    *target_off += value;
+  else
+    *target_off = value;
+  return shndx;
+}
+
 // class Dwarf_pubnames_table
 
-// Read the pubnames section SHNDX from the object file.
+// Read the pubnames section from the object file.
 
 bool
-Dwarf_pubnames_table::read_section(Relobj* object, unsigned int shndx)
+Dwarf_pubnames_table::read_section(Relobj* object, const unsigned char* symtab,
+                                   off_t symtab_size)
 {
   section_size_type buffer_size;
+  unsigned int shndx = 0;
+  const char* name = (this->is_pubtypes_ ? "pubtypes" : "pubnames");
+  const char* gnu_name = (this->is_pubtypes_
+                          ? "gnu_pubtypes"
+                          : "gnu_pubnames");
 
-  // If we don't have relocations, shndx will be 0, and
-  // we'll have to hunt for the .debug_pubnames/pubtypes section.
+  for (unsigned int i = 1; i < object->shnum(); ++i)
+    {
+      std::string section_name = object->section_name(i);
+      const char* section_name_suffix = section_name.c_str();
+      if (is_prefix_of(".debug_", section_name_suffix))
+        section_name_suffix += 7;
+      else if (is_prefix_of(".zdebug_", section_name_suffix))
+        section_name_suffix += 8;
+      else
+        continue;
+      if (strcmp(section_name_suffix, name) == 0)
+        {
+          shndx = i;
+          this->output_section_offset_ = object->output_section_offset(i);
+          break;
+        }
+      else if (strcmp(section_name_suffix, gnu_name) == 0)
+        {
+          shndx = i;
+          this->output_section_offset_ = object->output_section_offset(i);
+          this->is_gnu_style_ = true;
+          break;
+        }
+    }
   if (shndx == 0)
-    {
-      const char* name = (this->is_pubtypes_ ? "pubtypes" : "pubnames");
-      const char* gnu_name = (this->is_pubtypes_
-                              ? "gnu_pubtypes"
-                              : "gnu_pubnames");
-      for (unsigned int i = 1; i < object->shnum(); ++i)
-	{
-	  std::string section_name = object->section_name(i);
-	  const char* section_name_suffix = section_name.c_str();
-	  if (is_prefix_of(".debug_", section_name_suffix))
-	    section_name_suffix += 7;
-	  else if (is_prefix_of(".zdebug_", section_name_suffix))
-	    section_name_suffix += 8;
-	  else
-	    continue;
-	  if (strcmp(section_name_suffix, name) == 0)
-	    {
-	      shndx = i;
-	      this->output_section_offset_ = object->output_section_offset(i);
-	      break;
-	    }
-	  else if (strcmp(section_name_suffix, gnu_name) == 0)
-	    {
-	      shndx = i;
-	      this->output_section_offset_ = object->output_section_offset(i);
-	      this->is_gnu_style_ = true;
-	      break;
-	    }
-	}
-      if (shndx == 0)
-	return false;
-    }
-  else
-    {
-      std::string section_name = object->section_name(shndx);
-      if (is_prefix_of(".debug_gnu", section_name.c_str())
-	  || is_prefix_of(".zdebug_gnu_", section_name.c_str()))
-	this->is_gnu_style_ = true;
-    }
+    return false;
 
   this->buffer_ = object->decompressed_section_contents(shndx,
 							&buffer_size,
@@ -519,6 +525,30 @@
   if (this->buffer_ == NULL)
     return false;
   this->buffer_end_ = this->buffer_ + buffer_size;
+
+  // For incremental objects, we have no relocations.
+  if (object->is_incremental())
+    return true;
+
+  // Find the relocation section
+  unsigned int reloc_shndx = 0;
+  unsigned int reloc_type = 0;
+  for (unsigned int i = 0; i < object->shnum(); ++i)
+    {
+      reloc_type = object->section_type(i);
+      if ((reloc_type == elfcpp::SHT_REL
+	   || reloc_type == elfcpp::SHT_RELA)
+	  && object->section_info(i) == shndx)
+	{
+	  reloc_shndx = i;
+	  break;
+	}
+    }
+
+  this->reloc_mapper_ = make_elf_reloc_mapper(object, symtab, symtab_size);
+  this->reloc_mapper_->initialize(reloc_shndx, reloc_type);
+  this->reloc_type_ = reloc_type;
+
   return true;
 }
 
@@ -527,6 +557,9 @@
 bool
 Dwarf_pubnames_table::read_header(off_t offset)
 {
+  // Make sure we have actually read the section.
+  gold_assert(this->buffer_ != NULL);
+
   // Correct the offset.  For incremental update links, we have a
   // relocated offset that is relative to the output section, but
   // here we need an offset relative to the input section.
@@ -538,16 +571,20 @@
   const unsigned char* pinfo = this->buffer_ + offset;
 
   // Read the unit_length field.
-  uint32_t unit_length = this->dwinfo_->read_from_pointer<32>(pinfo);
+  uint64_t unit_length = this->dwinfo_->read_from_pointer<32>(pinfo);
   pinfo += 4;
   if (unit_length == 0xffffffff)
     {
       unit_length = this->dwinfo_->read_from_pointer<64>(pinfo);
+      this->unit_length_ = unit_length + 12;
       pinfo += 8;
       this->offset_size_ = 8;
     }
   else
-    this->offset_size_ = 4;
+    {
+      this->unit_length_ = unit_length + 4;
+      this->offset_size_ = 4;
+    }
   this->end_of_table_ = pinfo + unit_length;
 
   // Check the version.
@@ -555,7 +592,10 @@
   pinfo += 2;
   if (version != 2)
     return false;
-  
+
+  this->reloc_mapper_->get_reloc_target(pinfo - this->buffer_,
+                                        &this->cu_offset_);
+
   // Skip the debug_info_offset and debug_info_size fields.
   pinfo += 2 * this->offset_size_;
 
@@ -807,6 +847,8 @@
 	    pattr += len;
 	    break;
 	  case elfcpp::DW_FORM_udata:
+	  case elfcpp::DW_FORM_GNU_addr_index:
+	  case elfcpp::DW_FORM_GNU_str_index:
 	    attr_value.val.uintval = read_unsigned_LEB_128(pattr, &len);
 	    pattr += len;
 	    break;
@@ -883,8 +925,6 @@
 off_t
 Dwarf_die::skip_attributes()
 {
-  typedef Dwarf_abbrev_table::Attribute Attribute;
-
   gold_assert(this->abbrev_code_ != NULL);
 
   const unsigned char* pdie =
@@ -960,6 +1000,8 @@
 	    break;
 	  case elfcpp::DW_FORM_ref_udata:
 	  case elfcpp::DW_FORM_udata:
+	  case elfcpp::DW_FORM_GNU_addr_index:
+	  case elfcpp::DW_FORM_GNU_str_index:
 	    read_unsigned_LEB_128(pattr, &len);
 	    pattr += len;
 	    break;
diff --git a/gold/dwarf_reader.h b/gold/dwarf_reader.h
index f8f3b7d..5b97241 100644
--- a/gold/dwarf_reader.h
+++ b/gold/dwarf_reader.h
@@ -338,7 +338,7 @@
   Dwarf_ranges_table(Dwarf_info_reader* dwinfo)
     : dwinfo_(dwinfo), ranges_shndx_(0), ranges_buffer_(NULL),
       ranges_buffer_end_(NULL), owns_ranges_buffer_(false),
-      ranges_reloc_mapper_(NULL), output_section_offset_(0)
+      ranges_reloc_mapper_(NULL), reloc_type_(0), output_section_offset_(0)
   { }
 
   ~Dwarf_ranges_table()
@@ -365,6 +365,11 @@
 		  unsigned int ranges_shndx,
 		  off_t ranges_offset);
 
+  // Look for a relocation at offset OFF in the range table,
+  // and return the section index and offset of the target.
+  unsigned int
+  lookup_reloc(off_t off, off_t* target_off);
+
  private:
   // The Dwarf_info_reader, for reading data.
   Dwarf_info_reader* dwinfo_;
@@ -377,6 +382,8 @@
   bool owns_ranges_buffer_;
   // Relocation mapper for the .debug_ranges section.
   Elf_reloc_mapper* ranges_reloc_mapper_;
+  // Type of the relocation section (SHT_REL or SHT_RELA).
+  unsigned int reloc_type_;
   // For incremental update links, this will hold the offset of the
   // input section within the output section.  Offsets read from
   // relocated data will be relative to the output section, and need
@@ -394,7 +401,8 @@
     : dwinfo_(dwinfo), buffer_(NULL), buffer_end_(NULL), owns_buffer_(false),
       offset_size_(0), pinfo_(NULL), end_of_table_(NULL),
       is_pubtypes_(is_pubtypes), is_gnu_style_(false),
-      output_section_offset_(0)
+      output_section_offset_(0), unit_length_(0),
+      cu_offset_(0)
   { }
 
   ~Dwarf_pubnames_table()
@@ -403,14 +411,27 @@
       delete[] this->buffer_;
   }
 
-  // Read the pubnames section SHNDX from the object file.
+  // Read the pubnames section from the object file, using the symbol
+  // table for relocating it.
   bool
-  read_section(Relobj* object, unsigned int shndx);
+  read_section(Relobj* object, const unsigned char* symbol_table,
+               off_t symtab_size);
 
   // Read the header for the set at OFFSET.
   bool
   read_header(off_t offset);
 
+  // Return the offset to the cu within the info or types section.
+  off_t
+  cu_offset()
+  { return this->cu_offset_; }
+
+  // Return the size of this subsection of the table.  The unit length
+  // doesn't include the size of its own field.
+  off_t
+  subsection_size()
+  { return this->unit_length_; }
+
   // Read the next name from the set.  If the pubname table is gnu-style,
   // FLAG_BYTE is set to the high-byte of a gdb_index version 7 cu_index.
   const char*
@@ -440,6 +461,15 @@
   // relocated data will be relative to the output section, and need
   // to be corrected before reading data from the input section.
   uint64_t output_section_offset_;
+  // Fields read from the header.
+  uint64_t unit_length_;
+  off_t cu_offset_;
+
+  // Track relocations for this table so we can find the CUs that
+  // correspond to the subsections.
+  Elf_reloc_mapper* reloc_mapper_;
+  // Type of the relocation section (SHT_REL or SHT_RELA).
+  unsigned int reloc_type_;
 };
 
 // This class represents a DWARF Debug Info Entry (DIE).
@@ -747,6 +777,21 @@
   set_abbrev_shndx(unsigned int abbrev_shndx)
   { this->abbrev_shndx_ = abbrev_shndx; }
 
+  // Return a pointer to the object file's ELF symbol table.
+  const unsigned char*
+  symtab() const
+  { return this->symtab_; }
+
+  // Return the size of the object file's ELF symbol table.
+  off_t
+  symtab_size() const
+  { return this->symtab_size_; }
+
+  // Return the offset of the current compilation unit.
+  off_t
+  cu_offset() const
+  { return this->cu_offset_; }
+
  protected:
   // Begin parsing the debug info.  This calls visit_compilation_unit()
   // or visit_type_unit() for each compilation or type unit found in the
@@ -785,16 +830,6 @@
   object() const
   { return this->object_; }
 
-  // Return a pointer to the object file's ELF symbol table.
-  const unsigned char*
-  symtab() const
-  { return this->symtab_; }
-
-  // Return the size of the object file's ELF symbol table.
-  off_t
-  symtab_size() const
-  { return this->symtab_size_; }
-
   // Checkpoint the relocation tracker.
   uint64_t
   get_reloc_checkpoint() const
diff --git a/gold/dwp.cc b/gold/dwp.cc
index 331f24c..6fe7bcb 100644
--- a/gold/dwp.cc
+++ b/gold/dwp.cc
@@ -32,7 +32,9 @@
 #include <vector>
 #include <algorithm>
 
+#include "getopt.h"
 #include "libiberty.h"
+#include "../bfd/bfdver.h"
 
 #include "elfcpp.h"
 #include "elfcpp_file.h"
@@ -43,17 +45,35 @@
 #include "stringpool.h"
 #include "dwarf_reader.h"
 
+static void
+usage(FILE* fd, int) ATTRIBUTE_NORETURN;
+
+static void
+print_version() ATTRIBUTE_NORETURN;
+
 namespace gold {
 
 class Dwp_output_file;
 
-// An input file.
-// This class may represent either a .dwo file or a .dwp file
-// produced by an earlier run.
-
 template <int size, bool big_endian>
 class Sized_relobj_dwo;
 
+// List of .dwo files to process.
+struct Dwo_file_entry
+{
+  Dwo_file_entry(uint64_t id, std::string name)
+    : dwo_id(id), dwo_name(name)
+  { }
+  uint64_t dwo_id;
+  std::string dwo_name;
+};
+typedef std::vector<Dwo_file_entry> File_list;
+
+// An input file.
+// This class may represent a .dwo file, a .dwp file
+// produced by an earlier run, or an executable file whose
+// debug section identifies a set of .dwo files to read.
+
 class Dwo_file
 {
  public:
@@ -64,10 +84,21 @@
 
   ~Dwo_file();
 
+  // Read the input executable file and extract the list of .dwo files
+  // that it references.
+  void
+  read_executable(File_list* files);
+
   // Read the input file and send its contents to OUTPUT_FILE.
   void
   read(Dwp_output_file* output_file);
 
+  // Verify a .dwp file given a list of .dwo files referenced by the
+  // corresponding executable file.  Returns true if no problems
+  // were found.
+  bool
+  verify(const File_list& files);
+
  private:
   // Types for mapping input string offsets to output string offsets.
   typedef std::pair<section_offset_type, section_offset_type>
@@ -87,8 +118,7 @@
   // and record the target info.  P is a pointer to the ELF header
   // in memory.
   Relobj*
-  make_object(int size, bool big_endian, const unsigned char* p,
-	      Input_file* input_file, Dwp_output_file* output_file);
+  make_object(Dwp_output_file* output_file);
 
   template <int size, bool big_endian>
   Relobj*
@@ -135,6 +165,16 @@
   void
   sized_read_typeunit_index(unsigned int, Dwp_output_file*);
 
+  // Verify the .debug_cu_index section of a .dwp file, comparing it
+  // against the list of .dwo files referenced by the corresponding
+  // executable file.
+  bool
+  verify_dwo_list(unsigned int, const File_list& files);
+
+  template <bool big_endian>
+  bool
+  sized_verify_dwo_list(unsigned int, const File_list& files);
+
   // Merge the input string table section into the output file.
   void
   add_strings(Dwp_output_file*, unsigned int);
@@ -155,7 +195,7 @@
   // Remap a single string offsets from an offset in the input string table
   // to an offset in the output string table.
   unsigned int
-  remap_str_offset(unsigned int val);
+  remap_str_offset(section_offset_type val);
 
   // Add a set of .debug_info and related sections to OUTPUT_FILE.
   void
@@ -232,7 +272,7 @@
   do_section_size(unsigned int shndx)
   { return this->elf_file_.section_size(shndx); }
 
-  // Return the location of the contents of a section.
+  // Return a view of the contents of a section.
   const unsigned char*
   do_section_contents(unsigned int, section_size_type*, bool);
 
@@ -398,7 +438,6 @@
  private:
   // General access to the ELF file.
   elfcpp::Elf_file<size, big_endian, Object> elf_file_;
-
 };
 
 // The output file.
@@ -624,6 +663,38 @@
   unsigned int last_tu_slot_;
 };
 
+// A specialization of Dwarf_info_reader, for reading dwo_names from
+// DWARF CUs.
+
+class Dwo_name_info_reader : public Dwarf_info_reader
+{
+ public:
+  Dwo_name_info_reader(Relobj* object, unsigned int shndx)
+    : Dwarf_info_reader(false, object, NULL, 0, shndx, 0, 0),
+      files_(NULL)
+  { }
+
+  ~Dwo_name_info_reader()
+  { }
+
+  // Get the dwo_names from the DWARF compilation unit DIEs.
+  void
+  get_dwo_names(File_list* files)
+  { 
+    this->files_ = files;
+    this->parse();
+  }
+
+ protected:
+  // Visit a compilation unit.
+  virtual void
+  visit_compilation_unit(off_t cu_offset, off_t cu_length, Dwarf_die*);
+
+ private:
+  // The list of files to populate.
+  File_list* files_;
+};
+
 // A specialization of Dwarf_info_reader, for reading dwo_ids and
 // type signatures from DWARF CUs and TUs.
 
@@ -632,13 +703,8 @@
  public:
   Dwo_id_info_reader(bool is_type_unit,
 		     Relobj* object,
-		     const unsigned char* symbols,
-		     off_t symbols_size,
-		     unsigned int shndx,
-		     unsigned int reloc_shndx,
-		     unsigned int reloc_type)
-    : Dwarf_info_reader(is_type_unit, object, symbols, symbols_size, shndx,
-			reloc_shndx, reloc_type),
+		     unsigned int shndx)
+    : Dwarf_info_reader(is_type_unit, object, NULL, 0, shndx, 0, 0),
       dwo_id_found_(false), dwo_id_(0), type_sig_found_(false), type_sig_(0)
   { }
 
@@ -678,10 +744,6 @@
 		  Dwarf_die*);
 
  private:
-  // Visit a top-level DIE.
-  void
-  visit_top_die(Dwarf_die* die);
-
   // TRUE if we found a dwo_id.
   bool dwo_id_found_;
   // The dwo_id.
@@ -705,7 +767,7 @@
   this->section_offsets().resize(shnum);
 }
 
-// Return the location of the contents of a section.
+// Return a view of the contents of a section.
 
 template <int size, bool big_endian>
 const unsigned char*
@@ -765,10 +827,58 @@
 
 Dwo_file::~Dwo_file()
 {
-  if (this->input_file_ != NULL)
-    delete this->input_file_;
   if (this->obj_ != NULL)
     delete this->obj_;
+  if (this->input_file_ != NULL)
+    delete this->input_file_;
+}
+
+// Read the input executable file and extract the list of .dwo files
+// that it references.
+
+void
+Dwo_file::read_executable(File_list* files)
+{
+  this->obj_ = this->make_object(NULL);
+  if (this->obj_ == NULL)
+    gold_fatal(_("%s: cannot open: %s"), this->name_, strerror(errno));
+
+  unsigned int shnum = this->shnum();
+  this->is_compressed_.resize(shnum);
+  this->shndx_map_.resize(shnum);
+
+  unsigned int debug_info = 0;
+  unsigned int debug_abbrev = 0;
+
+  // Scan the section table and collect the debug sections we need.
+  // (Section index 0 is a dummy section; skip it.)
+  for (unsigned int i = 1; i < shnum; i++)
+    {
+      if (this->section_type(i) != elfcpp::SHT_PROGBITS)
+	continue;
+      std::string sect_name = this->section_name(i);
+      const char* suffix = sect_name.c_str();
+      if (is_prefix_of(".debug_", suffix))
+	suffix += 7;
+      else if (is_prefix_of(".zdebug_", suffix))
+	{
+	  this->is_compressed_[i] = true;
+	  suffix += 8;
+	}
+      else
+	continue;
+      if (strcmp(suffix, "info") == 0)
+	debug_info = i;
+      else if (strcmp(suffix, "abbrev") == 0)
+	debug_abbrev = i;
+    }
+
+  if (debug_info > 0)
+    {
+      Dwo_name_info_reader dwarf_reader(this->obj_, debug_info);
+      dwarf_reader.set_abbrev_shndx(debug_abbrev);
+      dwarf_reader.get_dwo_names(files);
+    }
 }
 
 // Read the input file and send its contents to OUTPUT_FILE.
@@ -776,35 +886,12 @@
 void
 Dwo_file::read(Dwp_output_file* output_file)
 {
-  // Open the input file.
-  this->input_file_ = new Input_file(this->name_);
-  Dirsearch dirpath;
-  int index;
-  if (!this->input_file_->open(dirpath, NULL, &index))
-    gold_fatal(_("%s: can't open"), this->name_);
-  
-  // Check that it's an ELF file.
-  off_t filesize = this->input_file_->file().filesize();
-  int hdrsize = elfcpp::Elf_recognizer::max_header_size;
-  if (filesize < hdrsize)
-    hdrsize = filesize;
-  const unsigned char* p =
-      this->input_file_->file().get_view(0, 0, hdrsize, true, false);
-  if (!elfcpp::Elf_recognizer::is_elf_file(p, hdrsize))
-    gold_fatal(_("%s: not an ELF object file"), this->name_);
-  
-  // Get the size, endianness, machine, etc. info from the header,
-  // make an appropriately-sized Relobj, and pass the target info
-  // to the output object.
-  int size;
-  bool big_endian;
-  std::string error;
-  if (!elfcpp::Elf_recognizer::is_valid_header(p, hdrsize, &size,
-					       &big_endian, &error))
-    gold_fatal(_("%s: %s"), this->name_, error.c_str());
-
-  this->obj_ = this->make_object(size, big_endian, p, this->input_file_,
-				 output_file);
+  this->obj_ = this->make_object(output_file);
+  if (this->obj_ == NULL)
+    {
+      gold_warning(_("%s: cannot open: %s"), this->name_, strerror(errno));
+      return;
+    }
 
   unsigned int shnum = this->shnum();
   this->is_compressed_.resize(shnum);
@@ -899,8 +986,7 @@
     {
       // Extract the dwo_id from .debug_info.dwo section.
       uint64_t dwo_id;
-      Dwo_id_info_reader dwarf_reader(false, this->obj_, NULL, 0, debug_info,
-				      0, 0);
+      Dwo_id_info_reader dwarf_reader(false, this->obj_, debug_info);
       dwarf_reader.set_abbrev_shndx(debug_abbrev);
       if (!dwarf_reader.get_dwo_id(&dwo_id))
 	gold_fatal(_("%s: .debug_info.dwo section does not have DW_AT_GNU_dwo_id "
@@ -917,7 +1003,7 @@
       // Extract the type signature from .debug_types.dwo section.
       uint64_t type_sig;
       gold_assert(*tp > 0);
-      Dwo_id_info_reader dwarf_reader(true, this->obj_, NULL, 0, *tp, 0, 0);
+      Dwo_id_info_reader dwarf_reader(true, this->obj_, *tp);
       dwarf_reader.set_abbrev_shndx(debug_abbrev);
       if (!dwarf_reader.get_type_sig(&type_sig))
 	gold_fatal(_("%s: .debug_types.dwo section does not have type signature"),
@@ -927,25 +1013,93 @@
     }
 }
 
+// Verify a .dwp file given a list of .dwo files referenced by the
+// corresponding executable file.  Returns true if no problems
+// were found.
+
+bool
+Dwo_file::verify(const File_list& files)
+{
+  this->obj_ = this->make_object(NULL);
+
+  unsigned int shnum = this->shnum();
+  this->is_compressed_.resize(shnum);
+  this->shndx_map_.resize(shnum);
+
+  unsigned int debug_cu_index = 0;
+
+  // Scan the section table and collect debug sections.
+  // (Section index 0 is a dummy section; skip it.)
+  for (unsigned int i = 1; i < shnum; i++)
+    {
+      if (this->section_type(i) != elfcpp::SHT_PROGBITS)
+	continue;
+      std::string sect_name = this->section_name(i);
+      const char* suffix = sect_name.c_str();
+      if (is_prefix_of(".debug_", suffix))
+	suffix += 7;
+      else if (is_prefix_of(".zdebug_", suffix))
+	{
+	  this->is_compressed_[i] = true;
+	  suffix += 8;
+	}
+      else
+	continue;
+      if (strcmp(suffix, "cu_index") == 0)
+	debug_cu_index = i;
+    }
+
+  if (debug_cu_index == 0)
+    gold_fatal(_("%s: no .debug_cu_index section found"), this->name_);
+
+  return this->verify_dwo_list(debug_cu_index, files);
+}
+
 // Create a Sized_relobj_dwo of the given size and endianness,
-// and record the target info.  P is a pointer to the ELF header
-// in memory.
+// and record the target info.
 
 Relobj*
-Dwo_file::make_object(int size, bool big_endian, const unsigned char* p,
-		      Input_file* input_file, Dwp_output_file* output_file)
+Dwo_file::make_object(Dwp_output_file* output_file)
 {
+  // Open the input file.
+  Input_file* input_file = new Input_file(this->name_);
+  this->input_file_ = input_file;
+  if (!input_file->open_no_error(NULL))
+    return NULL;
+  
+  // Check that it's an ELF file.
+  off_t filesize = input_file->file().filesize();
+  int hdrsize = elfcpp::Elf_recognizer::max_header_size;
+  if (filesize < hdrsize)
+    hdrsize = filesize;
+  const unsigned char* elf_header =
+      input_file->file().get_view(0, 0, hdrsize, true, false);
+  if (!elfcpp::Elf_recognizer::is_elf_file(elf_header, hdrsize))
+    gold_fatal(_("%s: not an ELF object file"), this->name_);
+  
+  // Get the size, endianness, machine, etc. info from the header,
+  // make an appropriately-sized Relobj, and pass the target info
+  // to the output object.
+  int size;
+  bool big_endian;
+  std::string error;
+  if (!elfcpp::Elf_recognizer::is_valid_header(elf_header, hdrsize, &size,
+					       &big_endian, &error))
+    gold_fatal(_("%s: %s"), this->name_, error.c_str());
+
   if (size == 32)
     {
       if (big_endian)
 #ifdef HAVE_TARGET_32_BIG
-	return this->sized_make_object<32, true>(p, input_file, output_file);
+	return this->sized_make_object<32, true>(elf_header, input_file,
+						 output_file);
 #else
 	gold_unreachable();
 #endif
       else
 #ifdef HAVE_TARGET_32_LITTLE
-	return this->sized_make_object<32, false>(p, input_file, output_file);
+	return this->sized_make_object<32, false>(elf_header, input_file,
+						  output_file);
 #else
 	gold_unreachable();
 #endif
@@ -954,13 +1108,15 @@
     {
       if (big_endian)
 #ifdef HAVE_TARGET_64_BIG
-	return this->sized_make_object<64, true>(p, input_file, output_file);
+	return this->sized_make_object<64, true>(elf_header, input_file,
+						 output_file);
 #else
 	gold_unreachable();
 #endif
       else
 #ifdef HAVE_TARGET_64_LITTLE
-	return this->sized_make_object<64, false>(p, input_file, output_file);
+	return this->sized_make_object<64, false>(elf_header, input_file,
+						  output_file);
 #else
 	gold_unreachable();
 #endif
@@ -981,10 +1137,11 @@
   Sized_relobj_dwo<size, big_endian>* obj =
       new Sized_relobj_dwo<size, big_endian>(this->name_, input_file, ehdr);
   obj->setup();
-  output_file->record_target_info(
-      this->name_, ehdr.get_e_machine(), size, big_endian,
-      ehdr.get_e_ident()[elfcpp::EI_OSABI],
-      ehdr.get_e_ident()[elfcpp::EI_ABIVERSION]);
+  if (output_file != NULL)
+    output_file->record_target_info(
+	this->name_, ehdr.get_e_machine(), size, big_endian,
+	ehdr.get_e_ident()[elfcpp::EI_OSABI],
+	ehdr.get_e_ident()[elfcpp::EI_ABIVERSION]);
   return obj;
 }
 
@@ -1206,6 +1363,84 @@
     delete[] contents;
 }
 
+// Verify the .debug_cu_index section of a .dwp file, comparing it
+// against the list of .dwo files referenced by the corresponding
+// executable file.
+
+bool
+Dwo_file::verify_dwo_list(unsigned int shndx, const File_list& files)
+{
+  if (this->obj_->is_big_endian())
+    return this->sized_verify_dwo_list<true>(shndx, files);
+  else
+    return this->sized_verify_dwo_list<false>(shndx, files);
+}
+
+template <bool big_endian>
+bool
+Dwo_file::sized_verify_dwo_list(unsigned int shndx, const File_list& files)
+{
+  gold_assert(shndx > 0);
+
+  section_size_type index_len;
+  bool index_is_new;
+  const unsigned char* contents =
+      this->section_contents(shndx, &index_len, &index_is_new);
+
+  unsigned int version =
+      elfcpp::Swap_unaligned<32, big_endian>::readval(contents);
+
+  if (version != 1)
+    gold_fatal(_("%s: section %s has unsupported version number %d"),
+	       this->name_, this->section_name(shndx).c_str(), version);
+
+  unsigned int nused =
+      elfcpp::Swap_unaligned<32, big_endian>::readval(contents
+						      + 2 * sizeof(uint32_t));
+  if (nused == 0)
+    return true;
+
+  unsigned int nslots =
+      elfcpp::Swap_unaligned<32, big_endian>::readval(contents
+						      + 3 * sizeof(uint32_t));
+
+  const unsigned char* phash = contents + 4 * sizeof(uint32_t);
+
+  int nmissing = 0;
+  for (File_list::const_iterator f = files.begin(); f != files.end(); ++f)
+    {
+      uint64_t dwo_id = f->dwo_id;
+      unsigned int slot = static_cast<unsigned int>(dwo_id) & (nslots - 1);
+      const unsigned char* ph = phash + slot * sizeof(uint64_t);
+      uint64_t probe = elfcpp::Swap_unaligned<64, big_endian>::readval(ph);
+      if (probe != 0 && probe != dwo_id)
+	{
+	  unsigned int h2 = ((static_cast<unsigned int>(dwo_id >> 32)
+			      & (nslots - 1)) | 1);
+	  do
+	    {
+	      slot = (slot + h2) & (nslots - 1);
+	      ph = phash + slot * sizeof(uint64_t);
+	      probe = elfcpp::Swap_unaligned<64, big_endian>::readval(ph);
+	    } while (probe != 0 && probe != dwo_id);
+	}
+      if (probe == 0)
+	{
+	  printf(_("missing .dwo file: %016llx %s\n"),
+		 static_cast<long long>(dwo_id), f->dwo_name.c_str());
+	  ++nmissing;
+	}
+    }
+
+  gold_info(_("Found %d missing .dwo files (total %ld)"), nmissing,
+	    static_cast<long>(files.size()));
+
+  if (index_is_new)
+    delete[] contents;
+
+  return nmissing == 0;
+}
+
 // Merge the input string table section into the output file.
 
 void
@@ -1318,7 +1553,7 @@
 }
 
 unsigned int
-Dwo_file::remap_str_offset(unsigned int val)
+Dwo_file::remap_str_offset(section_offset_type val)
 {
   Str_offset_map_entry entry;
   entry.first = val;
@@ -1455,7 +1690,9 @@
   // Write zeroes for the ELF header initially.  We'll write
   // the actual header during finalize().
   static const char buf[elfcpp::Elf_sizes<64>::ehdr_size] = { 0 };
-  ::fwrite(buf, 1, this->next_file_offset_, this->fd_);
+  if (::fwrite(buf, 1, this->next_file_offset_, this->fd_)
+      < (size_t) this->next_file_offset_)
+    gold_fatal(_("%s: %s"), this->name_, strerror(errno));
 }
 
 // Add a string to the debug strings section.
@@ -1523,8 +1760,11 @@
 			  debug_loc, debug_str_offsets, debug_macinfo,
 			  debug_macro };
   unsigned int slot;
-  this->cu_index_.find_or_add(dwo_id, &slot);
-  this->cu_index_.enter_set(slot, cu_set);
+  if (!this->cu_index_.find_or_add(dwo_id, &slot))
+    this->cu_index_.enter_set(slot, cu_set);
+  else
+    gold_warning(_("%s: duplicate entry for CU (dwo_id 0x%llx)"),
+		 this->name_, (unsigned long long)dwo_id);
 }
 
 // Lookup a type signature and return TRUE if we have already seen it.
@@ -1608,6 +1848,7 @@
   this->shndx_pool_.push_back(0);
 
   // Enter the signature and pool index into the hash table.
+  gold_assert(this->hash_table_[slot] == 0);
   this->hash_table_[slot] = set.signature;
   this->index_table_[slot] = pool_index;
   ++this->used_;
@@ -1683,6 +1924,9 @@
 {
   unsigned char* buf;
 
+  if (this->size_ == 0)
+    gold_fatal(_("%s: no input files"), this->name_);
+
   // Write the debug string table.
   if (this->have_strings_)
     {
@@ -1949,6 +2193,21 @@
     gold_fatal(_("%s: error writing section header table"), this->name_);
 }
 
+// Class Dwo_name_info_reader.
+
+// Visit a compilation unit.
+
+void
+Dwo_name_info_reader::visit_compilation_unit(off_t, off_t, Dwarf_die* die)
+{
+  const char* dwo_name = die->string_attribute(elfcpp::DW_AT_GNU_dwo_name);
+  if (dwo_name != NULL)
+    {
+      uint64_t dwo_id = die->uint_attribute(elfcpp::DW_AT_GNU_dwo_id);
+      this->files_->push_back(Dwo_file_entry(dwo_id, dwo_name));
+    }
+}
+
 // Class Dwo_id_info_reader.
 
 // Visit a compilation unit.
@@ -1964,7 +2223,8 @@
 // Visit a type unit.
 
 void
-Dwo_id_info_reader::visit_type_unit(off_t, off_t, uint64_t signature, Dwarf_die*)
+Dwo_id_info_reader::visit_type_unit(off_t, off_t, uint64_t signature,
+				    Dwarf_die*)
 {
   this->type_sig_ = signature;
   this->type_sig_found_ = true;
@@ -1974,6 +2234,60 @@
 
 using namespace gold;
 
+// Options.
+
+enum dwp_options {
+  VERIFY_ONLY = 0x101,
+};
+
+struct option dwp_options[] =
+  {
+    { "exec", required_argument, NULL, 'e' },
+    { "help", no_argument, NULL, 'h' },
+    { "output", required_argument, NULL, 'o' },
+    { "verbose", no_argument, NULL, 'v' },
+    { "verify-only", no_argument, NULL, VERIFY_ONLY },
+    { "version", no_argument, NULL, 'V' },
+    { NULL, 0, NULL, 0 }
+  };
+
+// Print usage message and exit.
+
+static void
+usage(FILE* fd, int exit_status)
+{
+  fprintf(fd, _("Usage: %s [options] [file...]\n"), program_name);
+  fprintf(fd, _("  -h, --help               Print this help message\n"));
+  fprintf(fd, _("  -e EXE, --exec EXE       Get list of dwo files from EXE"
+					   " (defaults output to EXE.dwp)\n"));
+  fprintf(fd, _("  -o FILE, --output FILE   Set output dwp file name\n"));
+  fprintf(fd, _("  -v, --verbose            Verbose output\n"));
+  fprintf(fd, _("  --verify-only            Verify output file against"
+					   " exec file\n"));
+  fprintf(fd, _("  -V, --version            Print version number\n"));
+
+  // REPORT_BUGS_TO is defined in bfd/bfdver.h.
+  const char* report = REPORT_BUGS_TO;
+  if (*report != '\0')
+    fprintf(fd, _("\nReport bugs to %s\n"), report);
+  exit(exit_status);
+}
+
+// Report version information.
+
+static void
+print_version()
+{
+  // This output is intended to follow the GNU standards.
+  printf("GNU dwp %s\n", BFD_VERSION_STRING);
+  printf(_("Copyright 2012 Free Software Foundation, Inc.\n"));
+  printf(_("\
+This program is free software; you may redistribute it under the terms of\n\
+the GNU General Public License version 3 or (at your option) any later version.\n\
+This program has absolutely no warranty.\n"));
+  exit(EXIT_SUCCESS);
+}
+
 // Main program.
 
 int
@@ -2005,47 +2319,78 @@
   expandargv(&argc, &argv);
 
   // Collect file names and options.
-  typedef std::vector<char*> File_list;
   File_list files;
-  const char* output_filename = NULL;
-  bool no_more_options = false;
+  std::string output_filename;
+  const char* exe_filename = NULL;
   bool verbose = false;
-  for (int i = 1; i < argc; ++i)
+  bool verify_only = false;
+  int c;
+  while ((c = getopt_long(argc, argv, "e:ho:vV", dwp_options, NULL)) != -1)
     {
-      if (no_more_options || argv[i][0] != '-')
-	files.push_back(argv[i]);
-      else {
-	  if (strcmp(argv[i], "--") == 0)
-	    no_more_options = true;
-	  else if (strcmp(argv[i], "-v") == 0)
+      switch (c)
+        {
+	  case 'h':
+	    usage(stdout, EXIT_SUCCESS);
+	  case 'e':
+	    exe_filename = optarg;
+	    break;
+	  case 'o':
+	    output_filename.assign(optarg);
+	    break;
+	  case 'v':
 	    verbose = true;
-	  else if (strcmp(argv[i], "-o") == 0)
-	    {
-	      if (++i >= argc)
-	        gold_fatal(_("missing argument for -o option"));
-	      output_filename = argv[i];
-	    }
-	  else
-	    gold_fatal(_("unknown option: %s"), argv[i]);
+	    break;
+	  case VERIFY_ONLY:
+	    verify_only = true;
+	    break;
+	  case 'V':
+	    print_version();
+	  case '?':
+	  default:
+	    usage(stderr, EXIT_FAILURE);
 	}
     }
 
-  if (files.empty())
-    gold_fatal(_("no input files"));
-  if (output_filename == NULL)
-    gold_fatal(_("no output file specified"));
+  if (output_filename.empty())
+    {
+      if (exe_filename == NULL)
+	gold_fatal(_("no output file specified"));
+      output_filename.assign(exe_filename);
+      output_filename.append(".dwp");
+    }
 
-  Dwp_output_file output_file(output_filename);
-  
+  // Get list of .dwo files from the executable.
+  if (exe_filename != NULL)
+    {
+      Dwo_file exe_file(exe_filename);
+      exe_file.read_executable(&files);
+    }
+
+  // Add any additional files listed on command line.
+  for (int i = optind; i < argc; ++i)
+    files.push_back(Dwo_file_entry(0, argv[i]));
+
+  if (exe_filename == NULL && files.empty())
+    gold_fatal(_("no input files and no executable specified"));
+
+  if (verify_only)
+    {
+      // Get list of DWO files in the DWP file and compare with
+      // references found in the EXE file.
+      Dwo_file dwp_file(output_filename.c_str());
+      bool ok = dwp_file.verify(files);
+      return ok ? EXIT_SUCCESS : EXIT_FAILURE;
+    }
+
   // Process each file, adding its contents to the output file.
+  Dwp_output_file output_file(output_filename.c_str());
   for (File_list::const_iterator f = files.begin(); f != files.end(); ++f)
     {
       if (verbose)
-        fprintf(stderr, "%s\n", *f);
-      Dwo_file dwo_file(*f);
+	fprintf(stderr, "%s\n", f->dwo_name.c_str());
+      Dwo_file dwo_file(f->dwo_name.c_str());
       dwo_file.read(&output_file);
     }
-
   output_file.finalize();
 
   return EXIT_SUCCESS;
diff --git a/gold/dwp.h b/gold/dwp.h
index a0dd9e4..4b94ddc 100644
--- a/gold/dwp.h
+++ b/gold/dwp.h
@@ -174,6 +174,10 @@
 extern void
 gold_warning(const char* msg, ...) ATTRIBUTE_PRINTF_1;
 
+// This function is called to print an informational message.
+extern void
+gold_info(const char* msg, ...) ATTRIBUTE_PRINTF_1;
+
 #define gold_unreachable() \
   (gold::do_gold_unreachable(__FILE__, __LINE__, \
 			     static_cast<const char*>(__FUNCTION__)))
diff --git a/gold/ehframe.cc b/gold/ehframe.cc
index dad2331..1aaf346 100644
--- a/gold/ehframe.cc
+++ b/gold/ehframe.cc
@@ -1,6 +1,6 @@
 // ehframe.cc -- handle exception frame sections for gold
 
-// Copyright 2006, 2007, 2008, 2010, 2011 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2010, 2011, 2012 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -631,7 +631,6 @@
     section_size_type contents_len,
     New_cies* new_cies)
 {
-  typedef typename elfcpp::Elf_types<size>::Elf_Addr Address;
   Track_relocs<size, big_endian> relocs;
 
   const unsigned char* p = pcontents;
diff --git a/gold/errors.cc b/gold/errors.cc
index b79764b..b3095ea 100644
--- a/gold/errors.cc
+++ b/gold/errors.cc
@@ -193,6 +193,12 @@
     fprintf(stderr,
             _("%s: %s: undefined reference to '%s', version '%s'\n"),
 	    location.c_str(), zmsg, sym->demangled_name().c_str(), version);
+
+  if (sym->is_cxx_vtable())
+    gold_info(_("%s: the vtable symbol may be undefined because "
+		"the class is missing its key function"
+                " (see go/missingkeymethod)"),
+	      program_name);
 }
 
 // Issue a debugging message.
diff --git a/gold/fileread.cc b/gold/fileread.cc
index 3fd35af..cd7f188 100644
--- a/gold/fileread.cc
+++ b/gold/fileread.cc
@@ -1105,6 +1105,35 @@
   return true;
 }
 
+bool
+Input_file::open_no_error(const Task* task)
+{
+  std::string name = this->input_argument_->name();
+
+  General_options::Object_format format =
+    this->input_argument_->options().format_enum();
+  bool ok;
+  if (format == General_options::OBJECT_FORMAT_ELF)
+    {
+      ok = this->file_.open(task, name);
+      this->format_ = FORMAT_ELF;
+    }
+  else
+    {
+      gold_assert(format == General_options::OBJECT_FORMAT_BINARY);
+      ok = this->open_binary(task, name);
+      this->format_ = FORMAT_BINARY;
+    }
+
+  if (!ok)
+    {
+      this->format_ = FORMAT_NONE;
+      return false;
+    }
+
+  return true;
+}
+
 // Open a file for --format binary.
 
 bool
diff --git a/gold/fileread.h b/gold/fileread.h
index 08a4583..30583da 100644
--- a/gold/fileread.h
+++ b/gold/fileread.h
@@ -520,6 +520,11 @@
   bool
   open(const Dirsearch&, const Task*, int* pindex);
 
+  // Open the file.  If the open fails, this will return false but
+  // will not report an error.
+  bool
+  open_no_error(const Task*);
+
   // Return the name given by the user.  For -lc this will return "c".
   const char*
   name() const;
diff --git a/gold/gdb-index.cc b/gold/gdb-index.cc
index 70a6d2e..8979434 100644
--- a/gold/gdb-index.cc
+++ b/gold/gdb-index.cc
@@ -273,10 +273,14 @@
   void
   record_cu_ranges(Dwarf_die* die);
 
-  // Read the .debug_pubnames and .debug_pubtypes tables.
+  // Wrapper for read_pubtable.
   bool
   read_pubnames_and_pubtypes(Dwarf_die* die);
 
+  // Read the .debug_pubnames and .debug_pubtypes tables.
+  bool
+  read_pubtable(Dwarf_pubnames_table* table, off_t offset);
+
   // Clear the declarations map.
   void
   clear_declarations();
@@ -851,71 +855,95 @@
     }
 }
 
+// Read table and add the relevant names to the index.  Returns true
+// if any names were added.
+
+bool
+Gdb_index_info_reader::read_pubtable(Dwarf_pubnames_table* table, off_t offset)
+{
+  // If we couldn't read the section when building the cu_pubname_map,
+  // then we won't find any pubnames now.
+  if (table == NULL)
+    return false;
+
+  if (!table->read_header(offset))
+    return false;
+  while (true)
+    {
+      uint8_t flag_byte;
+      const char* name = table->next_name(&flag_byte);
+      if (name == NULL)
+        break;
+
+      this->gdb_index_->add_symbol(this->cu_index_, name, flag_byte);
+    }
+  return true;
+}
+
 // Read the .debug_pubnames and .debug_pubtypes tables for the CU or TU.
 // Returns TRUE if either a pubnames or pubtypes section was found.
 
 bool
 Gdb_index_info_reader::read_pubnames_and_pubtypes(Dwarf_die* die)
 {
-  bool ret = false;
+  // If this is a skeleton debug-type die (generated via
+  // -gsplit-dwarf), then the associated pubnames should have been
+  // read along with the corresponding CU.  In any case, there isn't
+  // enough info inside to build a gdb index entry.
+  if (die->tag() == elfcpp::DW_TAG_type_unit
+      && die->string_attribute(elfcpp::DW_AT_GNU_dwo_name))
+    return true;
 
-  // If we find a DW_AT_GNU_pubnames attribute, read the pubnames table.
-  unsigned int pubnames_shndx;
-  off_t pubnames_offset = die->ref_attribute(elfcpp::DW_AT_GNU_pubnames,
-					     &pubnames_shndx);
-  if (pubnames_offset != -1)
+  // We use stmt_list_off as a unique identifier for the
+  // compilation unit and its associated type units.
+  unsigned int shndx;
+  off_t stmt_list_off = die->ref_attribute (elfcpp::DW_AT_stmt_list,
+                                            &shndx);
+  // Look for the attr as either a flag or a ref.
+  off_t offset = die->ref_attribute(elfcpp::DW_AT_GNU_pubnames, &shndx);
+
+  // Newer versions of GCC generate CUs, but not TUs, with
+  // DW_AT_FORM_flag_present.
+  unsigned int flag = die->uint_attribute(elfcpp::DW_AT_GNU_pubnames);
+  if (offset == -1 && flag == 0)
     {
-      if (this->gdb_index_->pubnames_read(this->object(), pubnames_shndx,
-                                          pubnames_offset))
-	ret = true;
+      // Didn't find the attribute.
+      if (die->tag() == elfcpp::DW_TAG_type_unit)
+        {
+          // If die is a TU, then it might correspond to a CU which we
+          // have read. If it does, then no need to read the pubnames.
+          // If it doesn't, then the caller will have to parse the
+          // dies manually to find the names.
+          return this->gdb_index_->pubnames_read(this->object(),
+                                                 stmt_list_off);
+        }
       else
-	{
-	  Dwarf_pubnames_table pubnames(this, false);
-	  if (!pubnames.read_section(this->object(), pubnames_shndx))
-	    return false;
-	  if (!pubnames.read_header(pubnames_offset))
-	    return false;
-	  while (true)
-	    {
-              uint8_t flag_byte;
-	      const char* name = pubnames.next_name(&flag_byte);
-	      if (name == NULL)
-		break;
-	      this->gdb_index_->add_symbol(this->cu_index_, name, flag_byte);
-	    }
-	  ret = true;
-	}
+        {
+          // No attribute on the CU means that no pubnames were read.
+          return false;
+        }
     }
 
-  // If we find a DW_AT_GNU_pubtypes attribute, read the pubtypes table.
-  unsigned int pubtypes_shndx;
-  off_t pubtypes_offset = die->ref_attribute(elfcpp::DW_AT_GNU_pubtypes,
-					     &pubtypes_shndx);
-  if (pubtypes_offset != -1)
-    {
-      if (this->gdb_index_->pubtypes_read(this->object(),
-                                          pubtypes_shndx, pubtypes_offset))
-	ret = true;
-      else
-	{
-	  Dwarf_pubnames_table pubtypes(this, true);
-	  if (!pubtypes.read_section(this->object(), pubtypes_shndx))
-	    return false;
-	  if (!pubtypes.read_header(pubtypes_offset))
-	    return false;
-	  while (true)
-	    {
-              uint8_t flag_byte;
-	      const char* name = pubtypes.next_name(&flag_byte);
-	      if (name == NULL)
-		break;
-	      this->gdb_index_->add_symbol(this->cu_index_, name, flag_byte);
-	    }
-	  ret = true;
-	}
-    }
+  // We found the attribute, so we can check if the corresponding
+  // pubnames have been read.
+  if (this->gdb_index_->pubnames_read(this->object(), stmt_list_off))
+    return true;
 
-  return ret;
+  this->gdb_index_->set_pubnames_read(this->object(), stmt_list_off);
+
+  // We have an attribute, and the pubnames haven't been read, so read
+  // them.
+  bool names = false;
+  // In some of the cases, we could rely on the previous value of
+  // offset here, but sorting out which cases complicates the logic
+  // enough that it isn't worth it. So just look up the offset again.
+  offset = this->gdb_index_->find_pubname_offset(this->cu_offset());
+  names = this->read_pubtable(this->gdb_index_->pubnames_table(), offset);
+
+  bool types = false;
+  offset = this->gdb_index_->find_pubtype_offset(this->cu_offset());
+  types = this->read_pubtable(this->gdb_index_->pubtypes_table(), offset);
+  return names || types;
 }
 
 // Clear the declarations map.
@@ -954,6 +982,8 @@
 
 Gdb_index::Gdb_index(Output_section* gdb_index_section)
   : Output_section_data(4),
+    pubnames_table_(NULL),
+    pubtypes_table_(NULL),
     gdb_index_section_(gdb_index_section),
     comp_units_(),
     type_units_(),
@@ -967,11 +997,7 @@
     cu_pool_offset_(0),
     stringpool_offset_(0),
     pubnames_object_(NULL),
-    pubnames_shndx_(0),
-    pubnames_offset_(0),
-    pubtypes_object_(NULL),
-    pubtypes_shndx_(0),
-    pubtypes_offset_(0)
+    stmt_list_offset_(-1)
 {
   this->gdb_symtab_ = new Gdb_hashtab<Gdb_symbol>();
 }
@@ -985,6 +1011,93 @@
     delete this->cu_vector_list_[i];
 }
 
+
+// Scan the pubnames and pubtypes sections and build a map of the
+// various cus and tus they refer to, so we can process the entries
+// when we encounter the die for that cu or tu.
+// Return the just-read table so it can be cached.
+
+Dwarf_pubnames_table*
+Gdb_index::map_pubtable_to_dies(unsigned int attr,
+                                Gdb_index_info_reader* dwinfo,
+                                Relobj* object,
+                                const unsigned char* symbols,
+                                off_t symbols_size)
+{
+  uint64_t section_offset = 0;
+  Dwarf_pubnames_table* table;
+  Pubname_offset_map* map;
+
+  if (attr == elfcpp::DW_AT_GNU_pubnames)
+    {
+      table = new Dwarf_pubnames_table(dwinfo, false);
+      map = &this->cu_pubname_map_;
+    }
+  else
+    {
+      table = new Dwarf_pubnames_table(dwinfo, true);
+      map = &this->cu_pubtype_map_;
+    }
+
+  map->clear();
+  if (!table->read_section(object, symbols, symbols_size))
+    return NULL;
+
+  while (table->read_header(section_offset))
+    {
+      map->insert(std::make_pair(table->cu_offset(), section_offset));
+      section_offset += table->subsection_size();
+    }
+
+  return table;
+}
+
+// Wrapper for map_pubtable_to_dies
+
+void
+Gdb_index::map_pubnames_and_types_to_dies(Gdb_index_info_reader* dwinfo,
+                                          Relobj* object,
+                                          const unsigned char* symbols,
+                                          off_t symbols_size)
+{
+  // This is a new object, so reset the relevant variables.
+  this->pubnames_object_ = object;
+  this->stmt_list_offset_ = -1;
+
+  delete this->pubnames_table_;
+  this->pubnames_table_
+      = this->map_pubtable_to_dies(elfcpp::DW_AT_GNU_pubnames, dwinfo,
+                                   object, symbols, symbols_size);
+  delete this->pubtypes_table_;
+  this->pubtypes_table_
+      = this->map_pubtable_to_dies(elfcpp::DW_AT_GNU_pubtypes, dwinfo,
+                                   object, symbols, symbols_size);
+}
+
+// Given a cu_offset, find the associated section of the pubnames
+// table.
+
+off_t
+Gdb_index::find_pubname_offset(off_t cu_offset)
+{
+  Pubname_offset_map::iterator it = this->cu_pubname_map_.find(cu_offset);
+  if (it != this->cu_pubname_map_.end())
+    return it->second;
+  return -1;
+}
+
+// Given a cu_offset, find the associated section of the pubnames
+// table.
+
+off_t
+Gdb_index::find_pubtype_offset(off_t cu_offset)
+{
+  Pubname_offset_map::iterator it = this->cu_pubtype_map_.find(cu_offset);
+  if (it != this->cu_pubtype_map_.end())
+    return it->second;
+  return -1;
+}
+
 // Scan a .debug_info or .debug_types input section.
 
 void
@@ -1000,6 +1113,8 @@
 			       symbols, symbols_size,
 			       shndx, reloc_shndx,
 			       reloc_type, this);
+  if (object != this->pubnames_object_)
+    map_pubnames_and_types_to_dies(&dwinfo, object, symbols, symbols_size);
   dwinfo.parse();
 }
 
@@ -1039,34 +1154,25 @@
     cu_vec->push_back(std::make_pair(cu_index, flags));
 }
 
-// Return TRUE if we have already processed the pubnames set at
-// OFFSET in section SHNDX
+// Return TRUE if we have already processed the pubnames associated
+// with the statement list at the given OFFSET.
 
 bool
-Gdb_index::pubnames_read(const Relobj* object, unsigned int shndx, off_t offset)
+Gdb_index::pubnames_read(const Relobj* object, off_t offset)
 {
   bool ret = (this->pubnames_object_ == object
-              && this->pubnames_shndx_ == shndx
-	      && this->pubnames_offset_ == offset);
-  this->pubnames_object_ = object;
-  this->pubnames_shndx_ = shndx;
-  this->pubnames_offset_ = offset;
+	      && this->stmt_list_offset_ == offset);
   return ret;
 }
 
-// Return TRUE if we have already processed the pubtypes set at
-// OFFSET in section SHNDX
+// Record that we have processed the pubnames associated with the
+// statement list for OBJECT at the given OFFSET.
 
-bool
-Gdb_index::pubtypes_read(const Relobj* object, unsigned int shndx, off_t offset)
+void
+Gdb_index::set_pubnames_read(const Relobj* object, off_t offset)
 {
-  bool ret = (this->pubtypes_object_ == object
-              && this->pubtypes_shndx_ == shndx
-	      && this->pubtypes_offset_ == offset);
-  this->pubtypes_object_ = object;
-  this->pubtypes_shndx_ = shndx;
-  this->pubtypes_offset_ = offset;
-  return ret;
+  this->pubnames_object_ = object;
+  this->stmt_list_offset_ = offset;
 }
 
 // Set the size of the .gdb_index section.
diff --git a/gold/gdb-index.h b/gold/gdb-index.h
index ffca297..babde4a 100644
--- a/gold/gdb-index.h
+++ b/gold/gdb-index.h
@@ -42,6 +42,8 @@
 class Dwarf_range_list;
 template <typename T>
 class Gdb_hashtab;
+class Gdb_index_info_reader;
+class Dwarf_pubnames_table;
 
 // This class manages the .gdb_index section, which is a fast
 // lookup table for DWARF information used by the gdb debugger.
@@ -92,15 +94,35 @@
   void
   add_symbol(int cu_index, const char* sym_name, uint8_t flags);
 
-  // Return TRUE if we have already processed the pubnames set for
-  // OBJECT at OFFSET in section SHNDX
-  bool
-  pubnames_read(const Relobj* object, unsigned int shndx, off_t offset);
+  // Return the offset into the pubnames table for the cu at the given
+  // offset.
+  off_t
+  find_pubname_offset(off_t cu_offset);
 
-  // Return TRUE if we have already processed the pubtypes set for
-  // OBJECT at OFFSET in section SHNDX
+  // Return the offset into the pubtypes table for the cu at the
+  // given offset.
+  off_t
+  find_pubtype_offset(off_t cu_offset);
+
+  // Return TRUE if we have already processed the pubnames and types
+  // set for OBJECT of the CUs and TUS associated with the statement
+  // list at OFFSET.
   bool
-  pubtypes_read(const Relobj* object,  unsigned int shndx, off_t offset);
+  pubnames_read(const Relobj* object, off_t offset);
+
+  // Record that we have already read the pubnames associated with
+  // OBJECT and OFFSET.
+  void
+  set_pubnames_read(const Relobj* object, off_t offset);
+
+  // Return a pointer to the given table.
+  Dwarf_pubnames_table*
+  pubnames_table()
+  { return pubnames_table_; }
+
+  Dwarf_pubnames_table*
+  pubtypes_table()
+  { return pubtypes_table_; }
 
   // Print usage statistics.
   static void
@@ -126,6 +148,21 @@
   do_print_to_mapfile(Mapfile* mapfile) const
   { mapfile->print_output_data(this, _("** gdb_index")); }
 
+  // Create a map from dies to pubnames.
+  Dwarf_pubnames_table*
+  map_pubtable_to_dies(unsigned int attr,
+                       Gdb_index_info_reader* dwinfo,
+                       Relobj* object,
+                       const unsigned char* symbols,
+                       off_t symbols_size);
+
+  // Wrapper for map_pubtable_to_dies
+  void
+  map_pubnames_and_types_to_dies(Gdb_index_info_reader* dwinfo,
+                                 Relobj* object,
+                                 const unsigned char* symbols,
+                                 off_t symbols_size);
+
  private:
   // An entry in the compilation unit list.
   struct Comp_unit
@@ -179,6 +216,21 @@
 
   typedef std::vector<std::pair<int, uint8_t> > Cu_vector;
 
+  typedef Unordered_map<off_t, off_t> Pubname_offset_map;
+  Pubname_offset_map cu_pubname_map_;
+  Pubname_offset_map cu_pubtype_map_;
+
+  // Scan the given pubtable and build a map of the various dies it
+  // refers to, so we can process the entries when we encounter the
+  // die.
+  void
+  map_pubtable_to_dies(Dwarf_pubnames_table* table,
+                       Pubname_offset_map* map);
+
+  // Tables to store the pubnames section of the current object.
+  Dwarf_pubnames_table* pubnames_table_;
+  Dwarf_pubnames_table* pubtypes_table_;
+
   // The .gdb_index section.
   Output_section* gdb_index_section_;
   // The list of DWARF compilation units.
@@ -201,14 +253,10 @@
   off_t symtab_offset_;
   off_t cu_pool_offset_;
   off_t stringpool_offset_;
-  // Object, section index and offset of last read pubnames section.
+  // Object, stmt list offset of the CUs and TUs associated with the
+  // last read pubnames and pubtypes sections.
   const Relobj* pubnames_object_;
-  unsigned int pubnames_shndx_;
-  off_t pubnames_offset_;
-  // Object, section index and offset of last read pubtypes section.
-  const Relobj* pubtypes_object_;
-  unsigned int pubtypes_shndx_;
-  off_t pubtypes_offset_;
+  off_t stmt_list_offset_;
 };
 
 } // End namespace gold.
diff --git a/gold/gold.cc b/gold/gold.cc
index b653579..0401564 100644
--- a/gold/gold.cc
+++ b/gold/gold.cc
@@ -524,11 +524,13 @@
 
   // Call Object::layout for the second time to determine the 
   // output_sections for all referenced input sections.  When 
-  // --gc-sections or --icf is turned on, Object::layout is 
-  // called twice.  It is called the first time when the 
-  // symbols are added.
+  // --gc-sections or --icf is turned on, or when certain input
+  // sections have to be mapped to unique segments, Object::layout
+  // is called twice.  It is called the first time when symbols
+  // are added.
   if (parameters->options().gc_sections()
-      || parameters->options().icf_enabled())
+      || parameters->options().icf_enabled()
+      || layout->is_unique_segment_for_sections_specified())
     {
       for (Input_objects::Relobj_iterator p = input_objects->relobj_begin();
            p != input_objects->relobj_end();
diff --git a/gold/incremental.cc b/gold/incremental.cc
index ddce665..be8268e 100644
--- a/gold/incremental.cc
+++ b/gold/incremental.cc
@@ -2692,8 +2692,6 @@
   elfcpp::Sym<size, big_endian> sym(symbuf);
   elfcpp::Sym_write<size, big_endian> osym(symbuf);
 
-  typedef typename elfcpp::Elf_types<size>::Elf_WXword Elf_size_type;
-
   unsigned int nsyms = this->input_reader_.get_global_symbol_count();
   this->symbols_.resize(nsyms);
 
diff --git a/gold/layout.cc b/gold/layout.cc
index 7f7e95b..e73f8cc 100644
--- a/gold/layout.cc
+++ b/gold/layout.cc
@@ -408,12 +408,14 @@
     resized_signatures_(false),
     have_stabstr_section_(false),
     section_ordering_specified_(false),
+    unique_segment_for_sections_specified_(false),
     incremental_inputs_(NULL),
     record_output_section_data_from_script_(false),
     script_output_section_data_list_(),
     segment_states_(NULL),
     relaxation_debug_check_(NULL),
     section_order_map_(),
+    section_segment_map_(),
     input_section_position_(),
     input_section_glob_(),
     incremental_base_(NULL),
@@ -807,6 +809,27 @@
     }
 }
 
+// Clear the input section flags that should not be copied to the
+// output section.
+
+elfcpp::Elf_Xword
+Layout::get_output_section_flags(elfcpp::Elf_Xword input_section_flags)
+{
+  // Some flags in the input section should not be automatically
+  // copied to the output section.
+  input_section_flags &= ~ (elfcpp::SHF_INFO_LINK
+			    | elfcpp::SHF_GROUP
+			    | elfcpp::SHF_MERGE
+			    | elfcpp::SHF_STRINGS);
+
+  // We only clear the SHF_LINK_ORDER flag in for
+  // a non-relocatable link.
+  if (!parameters->options().relocatable())
+    input_section_flags &= ~elfcpp::SHF_LINK_ORDER;
+
+  return input_section_flags;
+}
+
 // Pick the output section to use for section NAME, in input file
 // RELOBJ, with type TYPE and flags FLAGS.  RELOBJ may be NULL for a
 // linker created section.  IS_INPUT_SECTION is true if we are
@@ -825,17 +848,7 @@
   // sections to segments.
   gold_assert(!is_input_section || !this->sections_are_attached_);
 
-  // Some flags in the input section should not be automatically
-  // copied to the output section.
-  flags &= ~ (elfcpp::SHF_INFO_LINK
-	      | elfcpp::SHF_GROUP
-	      | elfcpp::SHF_MERGE
-	      | elfcpp::SHF_STRINGS);
-
-  // We only clear the SHF_LINK_ORDER flag in for
-  // a non-relocatable link.
-  if (!parameters->options().relocatable())
-    flags &= ~elfcpp::SHF_LINK_ORDER;
+  flags = this->get_output_section_flags(flags);
 
   if (this->script_options_->saw_sections_clause())
     {
@@ -995,6 +1008,33 @@
   return os;
 }
 
+// Return the index by which an input section should be ordered.  This
+// is used to sort some .text sections, for compatibility with GNU ld.
+
+int
+Layout::special_ordering_of_input_section(const char* name)
+{
+  // The GNU linker has some special handling for some sections that
+  // wind up in the .text section.  Sections that start with these
+  // prefixes must appear first, and must appear in the order listed
+  // here.
+  static const char* const text_section_sort[] = 
+  {
+    ".text.unlikely",
+    ".text.exit",
+    ".text.startup",
+    ".text.hot"
+  };
+
+  for (size_t i = 0;
+       i < sizeof(text_section_sort) / sizeof(text_section_sort[0]);
+       i++)
+    if (is_prefix_of(text_section_sort[i], name))
+      return i;
+
+  return -1;
+}
+
 // Return the output section to use for input section SHNDX, with name
 // NAME, with header HEADER, from object OBJECT.  RELOC_SHNDX is the
 // index of a relocation section which applies to this section, or 0
@@ -1030,9 +1070,37 @@
     }
   else
     {
-      os = this->choose_output_section(object, name, sh_type,
-				       shdr.get_sh_flags(), true,
-				       ORDER_INVALID, false);
+      // Plugins can choose to place one or more subsets of sections in
+      // unique segments and this is done by mapping these section subsets
+      // to unique output sections.  Check if this section needs to be
+      // remapped to a unique output section.
+      Section_segment_map::iterator it
+	  = this->section_segment_map_.find(Const_section_id(object, shndx));
+      if (it == this->section_segment_map_.end())
+	{
+          os = this->choose_output_section(object, name, sh_type,
+					   shdr.get_sh_flags(), true,
+					   ORDER_INVALID, false);
+	}
+      else
+	{
+	  // We know the name of the output section, directly call
+	  // get_output_section here by-passing choose_output_section.
+	  elfcpp::Elf_Xword flags
+	    = this->get_output_section_flags(shdr.get_sh_flags());
+
+	  const char* os_name = it->second->name;
+	  Stringpool::Key name_key;
+	  os_name = this->namepool_.add(os_name, true, &name_key);
+	  os = this->get_output_section(os_name, name_key, sh_type, flags,
+					ORDER_INVALID, false);
+	  if (!os->is_unique_segment())
+	    {
+	      os->set_is_unique_segment();
+	      os->set_extra_segment_flags(it->second->flags);
+	      os->set_segment_alignment(it->second->align);
+	    }
+	}
       if (os == NULL)
 	return NULL;
     }
@@ -1054,6 +1122,15 @@
 		  || strcmp(name, ".dtors") == 0))))
     os->set_must_sort_attached_input_sections();
 
+  // By default the GNU linker sorts some special text sections ahead
+  // of others.  We are compatible.
+  if (parameters->options().text_reorder()
+      && !this->script_options_->saw_sections_clause()
+      && !this->is_section_ordering_specified()
+      && !parameters->options().relocatable()
+      && Layout::special_ordering_of_input_section(name) >= 0)
+    os->set_must_sort_attached_input_sections();
+
   // If this is a .ctors or .ctors.* section being mapped to a
   // .init_array section, or a .dtors or .dtors.* section being mapped
   // to a .fini_array section, we will need to reverse the words if
@@ -1092,6 +1169,15 @@
   return os;
 }
 
+// Maps section SECN to SEGMENT s.
+void
+Layout::insert_section_segment_map(Const_section_id secn,
+				   Unique_segment_info *s)
+{
+  gold_assert(this->unique_segment_for_sections_specified_); 
+  this->section_segment_map_[secn] = s;
+}
+
 // Handle a relocation section when doing a relocatable link.
 
 template<int size, bool big_endian>
@@ -1532,6 +1618,17 @@
 		  || strcmp(name, ".dtors") == 0))))
     os->set_may_sort_attached_input_sections();
 
+  // The GNU linker by default sorts .text.{unlikely,exit,startup,hot}
+  // sections before other .text sections.  We are compatible.  We
+  // need to know that this might happen before we attach any input
+  // sections.
+  if (parameters->options().text_reorder()
+      && !this->script_options_->saw_sections_clause()
+      && !this->is_section_ordering_specified()
+      && !parameters->options().relocatable()
+      && strcmp(name, ".text") == 0)
+    os->set_may_sort_attached_input_sections();
+
   // Check for .stab*str sections, as .stab* sections need to link to
   // them.
   if (type == elfcpp::SHT_STRTAB
@@ -1693,6 +1790,10 @@
 
   elfcpp::Elf_Word seg_flags = Layout::section_flags_to_segment(flags);
 
+  // If this output section's segment has extra flags that need to be set,
+  // coming from a linker plugin, do that.
+  seg_flags |= os->extra_segment_flags();
+
   // Check for --section-start.
   uint64_t addr;
   bool is_address_set = parameters->options().section_start(os->name(), &addr);
@@ -1705,45 +1806,51 @@
   // have to use a linker script.
 
   Segment_list::const_iterator p;
-  for (p = this->segment_list_.begin();
-       p != this->segment_list_.end();
-       ++p)
+  if (!os->is_unique_segment())
     {
-      if ((*p)->type() != elfcpp::PT_LOAD)
-	continue;
-      if (!parameters->options().omagic()
-	  && ((*p)->flags() & elfcpp::PF_W) != (seg_flags & elfcpp::PF_W))
-	continue;
-      if (parameters->options().rosegment()
-          && ((*p)->flags() & elfcpp::PF_X) != (seg_flags & elfcpp::PF_X))
-        continue;
-      // If -Tbss was specified, we need to separate the data and BSS
-      // segments.
-      if (parameters->options().user_set_Tbss())
+      for (p = this->segment_list_.begin();
+ 	   p != this->segment_list_.end();
+	   ++p)
 	{
-	  if ((os->type() == elfcpp::SHT_NOBITS)
-	      == (*p)->has_any_data_sections())
-	    continue;
+	  if ((*p)->type() != elfcpp::PT_LOAD)                        
+	    continue;                        
+	  if ((*p)->is_unique_segment())                        
+	    continue;                        
+	  if (!parameters->options().omagic()                        
+	      && ((*p)->flags() & elfcpp::PF_W) != (seg_flags & elfcpp::PF_W))                        
+	    continue;                        
+	  if (parameters->options().rosegment()
+	      && ((*p)->flags() & elfcpp::PF_X) != (seg_flags & elfcpp::PF_X))                        
+	    continue;                        
+	  // If -Tbss was specified, we need to separate the data and BSS                        
+	  // segments.                        
+	  if (parameters->options().user_set_Tbss())                        
+	    {                        
+	      if ((os->type() == elfcpp::SHT_NOBITS)                        
+	          == (*p)->has_any_data_sections())                        
+	        continue;                        
+	    }                        
+	  if (os->is_large_data_section() && !(*p)->is_large_data_segment())                        
+	    continue;                        
+	                    
+	  if (is_address_set)                        
+	    {                        
+	      if ((*p)->are_addresses_set())                        
+	        continue;                        
+	                    
+	      (*p)->add_initial_output_data(os);                        
+	      (*p)->update_flags_for_output_section(seg_flags);                        
+	      (*p)->set_addresses(addr, addr);                        
+	      break;                        
+	    }                        
+	                    
+	  (*p)->add_output_section_to_load(this, os, seg_flags);                        
+	  break;                        
 	}
-      if (os->is_large_data_section() && !(*p)->is_large_data_segment())
-	continue;
-
-      if (is_address_set)
-	{
-	  if ((*p)->are_addresses_set())
-	    continue;
-
-	  (*p)->add_initial_output_data(os);
-	  (*p)->update_flags_for_output_section(seg_flags);
-	  (*p)->set_addresses(addr, addr);
-	  break;
-	}
-
-      (*p)->add_output_section_to_load(this, os, seg_flags);
-      break;
     }
 
-  if (p == this->segment_list_.end())
+  if (p == this->segment_list_.end()
+      || os->is_unique_segment())
     {
       Output_segment* oseg = this->make_output_segment(elfcpp::PT_LOAD,
                                                        seg_flags);
@@ -1752,6 +1859,14 @@
       oseg->add_output_section_to_load(this, os, seg_flags);
       if (is_address_set)
 	oseg->set_addresses(addr, addr);
+      // Check if segment should be marked unique.  For segments marked
+      // unique by linker plugins, set the new alignment if specified.
+      if (os->is_unique_segment())
+	{
+	  oseg->set_is_unique_segment();
+	  if (os->segment_alignment() != 0)
+	    oseg->set_minimum_p_align(os->segment_alignment());
+	}
     }
 
   // If we see a loadable SHT_NOTE section, we create a PT_NOTE
@@ -3103,8 +3218,10 @@
 
   // We shouldn't get here--we shouldn't create segments which we
   // can't distinguish.  Unless of course we are using a weird linker
-  // script.
-  gold_assert(this->script_options_->saw_phdrs_clause());
+  // script. We could also get
+  // here if plugins want unique segments for subsets of sections.
+  gold_assert(this->script_options_->saw_phdrs_clause()
+	      || this->is_unique_segment_for_sections_specified());
   return false;
 }
 
@@ -3371,7 +3488,8 @@
 	(*p)->set_address(0);
       (*p)->set_file_offset(off);
       (*p)->finalize_data_size();
-      off += (*p)->data_size();
+      if ((*p)->type() != elfcpp::SHT_NOBITS)
+	off += (*p)->data_size();
 
       (*p)->set_out_shndx(*pshndx);
       ++*pshndx;
@@ -4608,6 +4726,8 @@
   MAPPING_INIT(".gnu.linkonce.armextab.", ".ARM.extab"),
   MAPPING_INIT(".ARM.exidx", ".ARM.exidx"),
   MAPPING_INIT(".gnu.linkonce.armexidx.", ".ARM.exidx"),
+  MAPPING_INIT("_function_patch_prologue.", "_function_patch_prologue"),
+  MAPPING_INIT("_function_patch_epilogue.", "_function_patch_epilogue"),
 };
 #undef MAPPING_INIT
 #undef MAPPING_INIT_EXACT
diff --git a/gold/layout.h b/gold/layout.h
index 00ce1cc..34ca286 100644
--- a/gold/layout.h
+++ b/gold/layout.h
@@ -528,7 +528,39 @@
   std::map<Section_id, unsigned int>*
   get_section_order_map()
   { return &this->section_order_map_; }
- 
+
+  // Struct to store segment info when mapping some input sections to
+  // unique segments using linker plugins.  Mapping an input section to
+  // a unique segment is done by first placing such input sections in
+  // unique output sections and then mapping the output section to a
+  // unique segment.  NAME is the name of the output section.  FLAGS
+  // and ALIGN are the extra flags and alignment of the segment.
+  struct Unique_segment_info
+  {
+    // Identifier for the segment.  ELF segments dont have names.
+    const char* name;
+    // Additional segment flags.
+    uint64_t flags;
+    // Segment alignment.
+    uint64_t align;
+  };
+
+  // Mapping from input section to segment.
+  typedef std::map<Const_section_id, Unique_segment_info*>
+  Section_segment_map;
+
+  // Maps section SECN to SEGMENT s.
+  void
+  insert_section_segment_map(Const_section_id secn, Unique_segment_info *s);
+
+  // Some input sections require special ordering, for compatibility
+  // with GNU ld.  Given the name of an input section, return -1 if it
+  // does not require special ordering.  Otherwise, return the index
+  // by which it should be ordered compared to other input sections
+  // that require special ordering.
+  static int
+  special_ordering_of_input_section(const char* name);
+
   bool
   is_section_ordering_specified()
   { return this->section_ordering_specified_; }
@@ -537,6 +569,14 @@
   set_section_ordering_specified()
   { this->section_ordering_specified_ = true; }
 
+  bool
+  is_unique_segment_for_sections_specified() const
+  { return this->unique_segment_for_sections_specified_; }
+
+  void
+  set_unique_segment_for_sections_specified()
+  { this->unique_segment_for_sections_specified_ = true; }
+
   // For incremental updates, allocate a block of memory from the
   // free list.  Find a block starting at or after MINOFF.
   off_t
@@ -1071,6 +1111,11 @@
 		     elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
 		     Output_section_order order, bool is_relro);
 
+  // Clear the input section flags that should not be copied to the
+  // output section.
+  elfcpp::Elf_Xword
+  get_output_section_flags (elfcpp::Elf_Xword input_section_flags);
+
   // Choose the output section for NAME in RELOBJ.
   Output_section*
   choose_output_section(const Relobj* relobj, const char* name,
@@ -1339,6 +1384,9 @@
   // True if the input sections in the output sections should be sorted
   // as specified in a section ordering file.
   bool section_ordering_specified_;
+  // True if some input sections need to be mapped to a unique segment,
+  // after being mapped to a unique Output_section.
+  bool unique_segment_for_sections_specified_;
   // In incremental build, holds information check the inputs and build the
   // .gnu_incremental_inputs section.
   Incremental_inputs* incremental_inputs_;
@@ -1353,6 +1401,11 @@
   // Plugins specify section_ordering using this map.  This is set in
   // update_section_order in plugin.cc
   std::map<Section_id, unsigned int> section_order_map_;
+  // This maps an input section to a unique segment. This is done by first
+  // placing such input sections in unique output sections and then mapping
+  // the output section to a unique segment.  Unique_segment_info stores
+  // any additional flags and alignment of the new segment.
+  Section_segment_map section_segment_map_;
   // Hash a pattern to its position in the section ordering file.
   Unordered_map<std::string, unsigned int> input_section_position_;
   // Vector of glob only patterns in the section_ordering file.
diff --git a/gold/object.cc b/gold/object.cc
index e0b7f95..f0d879d 100644
--- a/gold/object.cc
+++ b/gold/object.cc
@@ -1,6 +1,7 @@
 // object.cc -- support for an object file for linking in gold
 
-// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2013
+// Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -47,7 +48,8 @@
 
 // Struct Read_symbols_data.
 
-// Destroy any remaining File_view objects.
+// Destroy any remaining File_view objects and buffers of decompressed
+// sections.
 
 Read_symbols_data::~Read_symbols_data()
 {
@@ -1163,15 +1165,19 @@
 // whether they should be included in the link.  If they should, we
 // pass them to the Layout object, which will return an output section
 // and an offset.  
-// During garbage collection (--gc-sections) and identical code folding 
-// (--icf), this function is called twice.  When it is called the first 
-// time, it is for setting up some sections as roots to a work-list for
-// --gc-sections and to do comdat processing.  Actual layout happens the 
-// second time around after all the relevant sections have been determined.  
-// The first time, is_worklist_ready or is_icf_ready is false. It is then 
-// set to true after the garbage collection worklist or identical code 
-// folding is processed and the relevant sections to be kept are 
-// determined.  Then, this function is called again to layout the sections.
+// This function is called twice sometimes, two passes, when mapping
+// of input sections to output sections must be delayed.
+// This is true for the following :
+// * Garbage collection (--gc-sections): Some input sections will be
+// discarded and hence the assignment must wait until the second pass.
+// In the first pass,  it is for setting up some sections as roots to
+// a work-list for --gc-sections and to do comdat processing.
+// * Identical Code Folding (--icf=<safe,all>): Some input sections
+// will be folded and hence the assignment must wait.
+// * Using plugins to map some sections to unique segments: Mapping
+// some sections to unique segments requires mapping them to unique
+// output sections too.  This can be done via plugins now and this
+// information is not available in the first pass.
 
 template<int size, bool big_endian>
 void
@@ -1180,26 +1186,43 @@
 					       Read_symbols_data* sd)
 {
   const unsigned int shnum = this->shnum();
-  bool is_gc_pass_one = ((parameters->options().gc_sections() 
-                          && !symtab->gc()->is_worklist_ready())
-                         || (parameters->options().icf_enabled()
-                             && !symtab->icf()->is_icf_ready()));
+  /* Should this function be called twice?  */
+  bool is_two_pass = (parameters->options().gc_sections()
+		      || parameters->options().icf_enabled()
+		      || layout->is_unique_segment_for_sections_specified());
+
+  /* Only one of is_pass_one and is_pass_two is true.  Both are false when
+     a two-pass approach is not needed.  */
+  bool is_pass_one = false;
+  bool is_pass_two = false;
+
+  Symbols_data* gc_sd = NULL;
  
-  bool is_gc_pass_two = ((parameters->options().gc_sections() 
-                          && symtab->gc()->is_worklist_ready())
-                         || (parameters->options().icf_enabled()
-                             && symtab->icf()->is_icf_ready()));
-
-  bool is_gc_or_icf = (parameters->options().gc_sections()
-                       || parameters->options().icf_enabled()); 
-
-  // Both is_gc_pass_one and is_gc_pass_two should not be true.
-  gold_assert(!(is_gc_pass_one  && is_gc_pass_two));
+  /* Check if do_layout needs to be two-pass.  If so, find out which pass
+     should happen.  In the first pass, the data in sd is saved to be used
+     later in the second pass.  */
+  if (is_two_pass)
+    {
+      gc_sd = this->get_symbols_data();
+      if (gc_sd == NULL)
+	{
+	  gold_assert(sd != NULL);
+	  is_pass_one = true;
+	}
+      else
+	{
+	  if (parameters->options().gc_sections())
+	    gold_assert(symtab->gc()->is_worklist_ready());
+	  if (parameters->options().icf_enabled())
+	    gold_assert(symtab->icf()->is_icf_ready()); 
+	  is_pass_two = true;
+	}
+    }
 
   if (shnum == 0)
     return;
-  Symbols_data* gc_sd = NULL;
-  if (is_gc_pass_one)
+
+  if (is_pass_one)
     {
       // During garbage collection save the symbols data to use it when 
       // re-entering this function.   
@@ -1207,10 +1230,6 @@
       this->copy_symbols_data(gc_sd, sd, This::shdr_size * shnum);
       this->set_symbols_data(gc_sd);
     }
-  else if (is_gc_pass_two)
-    {
-      gc_sd = this->get_symbols_data();
-    }
 
   const unsigned char* section_headers_data = NULL;
   section_size_type section_names_size;
@@ -1218,8 +1237,8 @@
   section_size_type symbols_size;
   const unsigned char* symbol_names_data = NULL;
   section_size_type symbol_names_size;
- 
-  if (is_gc_or_icf)
+
+  if (is_two_pass) 
     {
       section_headers_data = gc_sd->section_headers_data;
       section_names_size = gc_sd->section_names_size;
@@ -1245,9 +1264,9 @@
   const unsigned char* pshdrs;
 
   // Get the section names.
-  const unsigned char* pnamesu = (is_gc_or_icf) 
-                                 ? gc_sd->section_names_data
-                                 : sd->section_names->data();
+  const unsigned char* pnamesu = (is_two_pass
+				  ? gc_sd->section_names_data
+				  : sd->section_names->data());
 
   const char* pnames = reinterpret_cast<const char*>(pnamesu);
 
@@ -1297,7 +1316,7 @@
   Output_sections& out_sections(this->output_sections());
   std::vector<Address>& out_section_offsets(this->section_offsets());
 
-  if (!is_gc_pass_two)
+  if (!is_pass_two)
     {
       out_sections.resize(shnum);
       out_section_offsets.resize(shnum);
@@ -1307,7 +1326,7 @@
   // do here.
   if (this->input_file()->just_symbols())
     {
-      if (!is_gc_pass_two)
+      if (!is_pass_two)
         {
           delete sd->section_headers;
           sd->section_headers = NULL;
@@ -1359,7 +1378,7 @@
 
       const char* name = pnames + shdr.get_sh_name();
 
-      if (!is_gc_pass_two)
+      if (!is_pass_two)
         { 
           if (this->handle_gnu_warning_section(name, i, symtab))
             { 
@@ -1433,7 +1452,7 @@
             }
         }
  
-      if (is_gc_pass_one && parameters->options().gc_sections())
+      if (is_pass_one && parameters->options().gc_sections())
         {
           if (this->is_section_name_included(name)
               || shdr.get_sh_type() == elfcpp::SHT_INIT_ARRAY 
@@ -1478,7 +1497,7 @@
           && strcmp(name, ".eh_frame") == 0
           && this->check_eh_frame_flags(&shdr))
         {
-          if (is_gc_pass_one)
+	  if (is_pass_one)
             {
               out_sections[i] = reinterpret_cast<Output_section*>(1);
               out_section_offsets[i] = invalid_address;
@@ -1493,7 +1512,7 @@
           continue;
         }
 
-      if (is_gc_pass_two && parameters->options().gc_sections())
+      if (is_pass_two && parameters->options().gc_sections())
         {
           // This is executed during the second pass of garbage 
           // collection. do_layout has been called before and some 
@@ -1518,7 +1537,7 @@
               }
         }
 
-      if (is_gc_pass_two && parameters->options().icf_enabled())
+      if (is_pass_two && parameters->options().icf_enabled())
         {
           if (out_sections[i] == NULL)
             {
@@ -1552,7 +1571,7 @@
       // should_defer_layout should be false.
       if (should_defer_layout && (shdr.get_sh_flags() & elfcpp::SHF_ALLOC))
         {
-          gold_assert(!is_gc_pass_two);
+          gold_assert(!is_pass_two);
           this->deferred_layout_.push_back(Deferred_layout(i, name, 
                                                            pshdrs,
                                                            reloc_shndx[i],
@@ -1567,11 +1586,11 @@
       // During gc_pass_two if a section that was previously deferred is
       // found, do not layout the section as layout_deferred_sections will
       // do it later from gold.cc.
-      if (is_gc_pass_two 
+      if (is_pass_two 
           && (out_sections[i] == reinterpret_cast<Output_section*>(2)))
         continue;
 
-      if (is_gc_pass_one)
+      if (is_pass_one)
         {
           // This is during garbage collection. The out_sections are 
           // assigned in the second call to this function. 
@@ -1602,7 +1621,7 @@
         }
     }
 
-  if (!is_gc_pass_two)
+  if (!is_pass_two)
     layout->layout_gnu_stack(seen_gnu_stack, gnu_stack_flags, this);
 
   // When doing a relocatable link handle the reloc sections at the
@@ -1611,7 +1630,7 @@
   if (emit_relocs)
     this->size_relocatable_relocs();
 
-  gold_assert(!(is_gc_or_icf) || reloc_sections.empty());
+  gold_assert(!(is_two_pass) || reloc_sections.empty());
 
   for (std::vector<unsigned int>::const_iterator p = reloc_sections.begin();
        p != reloc_sections.end();
@@ -1658,7 +1677,7 @@
     }
 
   // Handle the .eh_frame sections at the end.
-  gold_assert(!is_gc_pass_one || eh_frame_sections.empty());
+  gold_assert(!is_pass_one || eh_frame_sections.empty());
   for (std::vector<unsigned int>::const_iterator p = eh_frame_sections.begin();
        p != eh_frame_sections.end();
        ++p)
@@ -1681,7 +1700,7 @@
 
   // When building a .gdb_index section, scan the .debug_info and
   // .debug_types sections.
-  gold_assert(!is_gc_pass_one
+  gold_assert(!is_pass_one
 	      || (debug_info_sections.empty() && debug_types_sections.empty()));
   for (std::vector<unsigned int>::const_iterator p
 	   = debug_info_sections.begin();
@@ -1702,7 +1721,7 @@
 			       i, reloc_shndx[i], reloc_type[i]);
     }
 
-  if (is_gc_pass_two)
+  if (is_pass_two)
     {
       delete[] gc_sd->section_headers_data;
       delete[] gc_sd->section_names_data;
@@ -2591,6 +2610,7 @@
 	  && (static_cast<off_t>(sym.get_st_value() + sym.get_st_size())
 	      > offset))
         {
+	  info->enclosing_symbol_type = sym.get_st_type();
           if (sym.get_st_name() > names_size)
 	    info->enclosing_symbol_name = "(invalid)";
 	  else
@@ -2900,12 +2920,10 @@
 	  ret += ":";
 	  ret += info.source_file;
 	}
-      size_t len = info.enclosing_symbol_name.length() + 100;
-      char* buf = new char[len];
-      snprintf(buf, len, _(":function %s"),
-	       info.enclosing_symbol_name.c_str());
-      ret += buf;
-      delete[] buf;
+      ret += ":";
+      if (info.enclosing_symbol_type == elfcpp::STT_FUNC)
+	ret += _("function ");
+      ret += info.enclosing_symbol_name;
       return ret;
     }
 
diff --git a/gold/object.h b/gold/object.h
index e002d02..addfbde 100644
--- a/gold/object.h
+++ b/gold/object.h
@@ -1,6 +1,7 @@
 // object.h -- support for an object file for linking in gold  -*- C++ -*-
 
-// Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
+// Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -104,7 +105,7 @@
 {
   std::string source_file;
   std::string enclosing_symbol_name;
-  int line_number;
+  elfcpp::STT enclosing_symbol_type;
 };
 
 // Data about a single relocation section.  This is read in
diff --git a/gold/options.cc b/gold/options.cc
index 9c1f410..95cc0f8 100644
--- a/gold/options.cc
+++ b/gold/options.cc
@@ -548,6 +548,7 @@
 {
   if (!read_dynamic_list(arg, cmdline, &this->dynamic_list_))
     gold::gold_fatal(_("unable to parse dynamic-list script file %s"), arg);
+  this->have_dynamic_list_ = true;
 }
 
 void
@@ -917,6 +918,7 @@
     do_demangle_(false),
     plugins_(NULL),
     dynamic_list_(),
+    have_dynamic_list_(false),
     incremental_mode_(INCREMENTAL_OFF),
     incremental_disposition_(INCREMENTAL_STARTUP),
     incremental_startup_disposition_(INCREMENTAL_CHECK),
@@ -1183,6 +1185,13 @@
   // in the path, as appropriate.
   this->add_sysroot();
 
+  // --dynamic-list overrides -Bsymbolic and -Bsymbolic-functions.
+  if (this->have_dynamic_list())
+    {
+      this->set_Bsymbolic(false);
+      this->set_Bsymbolic_functions(false);
+    }
+
   // Now that we've normalized the options, check for contradictory ones.
   if (this->shared() && this->is_static())
     gold_fatal(_("-shared and -static are incompatible"));
diff --git a/gold/options.h b/gold/options.h
index f6fa09f..4cffb00 100644
--- a/gold/options.h
+++ b/gold/options.h
@@ -878,6 +878,11 @@
   DEFINE_dirlist(library_path, options::TWO_DASHES, 'L',
                  N_("Add directory to search path"), N_("DIR"));
 
+  DEFINE_bool(text_reorder, options::TWO_DASHES, '\0', true,
+	      N_("Enable text section reordering for GCC section names "
+		 "(default)"),
+	      N_("Disable text section reordering for GCC section names"));
+
   DEFINE_bool(nostdlib, options::ONE_DASH, '\0', false,
               N_(" Only search directories specified on the command line."),
               NULL);
@@ -1356,6 +1361,11 @@
   in_dynamic_list(const char* symbol) const
   { return this->dynamic_list_.version_script_info()->symbol_is_local(symbol); }
 
+  // True if a --dynamic-list script was provided.
+  bool
+  have_dynamic_list() const
+  { return this->have_dynamic_list_; }
+
   // Finalize the dynamic list.
   void
   finalize_dynamic_list()
@@ -1504,6 +1514,8 @@
   // script.cc, we store this as a Script_options object, even though
   // we only use a single Version_tree from it.
   Script_options dynamic_list_;
+  // Whether a --dynamic-list file was provided.
+  bool have_dynamic_list_;
   // The incremental linking mode.
   Incremental_mode incremental_mode_;
   // The disposition given by the --incremental-changed,
diff --git a/gold/output.cc b/gold/output.cc
index 3f2c1e6..b42e03d 100644
--- a/gold/output.cc
+++ b/gold/output.cc
@@ -2308,7 +2308,10 @@
     always_keeps_input_sections_(false),
     has_fixed_layout_(false),
     is_patch_space_allowed_(false),
+    is_unique_segment_(false),
     tls_offset_(0),
+    extra_segment_flags_(0),
+    segment_alignment_(0),
     checkpoint_(NULL),
     lookup_maps_(new Output_section_lookup_maps),
     free_list_(),
@@ -2421,7 +2424,7 @@
     input_section_size = uncompressed_size;
 
   off_t offset_in_section;
-  off_t aligned_offset_in_section;
+
   if (this->has_fixed_layout())
     {
       // For incremental updates, find a chunk of unused space in the section.
@@ -2431,16 +2434,14 @@
         gold_fallback(_("out of patch space in section %s; "
 			"relink with --incremental-full"),
 		      this->name());
-      aligned_offset_in_section = offset_in_section;
+      return offset_in_section;
     }
-  else
-    {
-      offset_in_section = this->current_data_size_for_child();
-      aligned_offset_in_section = align_address(offset_in_section,
-						addralign);
-      this->set_current_data_size_for_child(aligned_offset_in_section
-					    + input_section_size);
-    }
+
+  offset_in_section = this->current_data_size_for_child();
+  off_t aligned_offset_in_section = align_address(offset_in_section,
+						  addralign);
+  this->set_current_data_size_for_child(aligned_offset_in_section
+					+ input_section_size);
 
   // Determine if we want to delay code-fill generation until the output
   // section is written.  When the target is relaxing, we want to delay fill
@@ -2506,14 +2507,6 @@
               this->set_input_section_order_specified();
             }
         }
-      if (this->has_fixed_layout())
-	{
-	  // For incremental updates, finalize the address and offset now.
-	  uint64_t addr = this->address();
-	  isecn.set_address_and_file_offset(addr + aligned_offset_in_section,
-					    aligned_offset_in_section,
-					    this->offset());
-	}
       this->input_sections_.push_back(isecn);
     }
 
@@ -3322,7 +3315,11 @@
   // in order to better support gcc, and we need to be compatible.
   bool
   match_file_name(const char* file_name) const
-  { return Layout::match_file_name(this->input_section_.relobj(), file_name); }
+  {
+    if (this->input_section_.is_output_section_data())
+      return false;
+    return Layout::match_file_name(this->input_section_.relobj(), file_name);
+  }
 
   // Returns 1 if THIS should appear before S in section order, -1 if S
   // appears before THIS and 0 if they are not comparable.
@@ -3500,6 +3497,42 @@
   return s1_secn_index < s2_secn_index;
 }
 
+// Return true if S1 should come before S2.  This is the sort comparison
+// function for .text to sort sections with prefixes
+// .text.{unlikely,exit,startup,hot} before other sections.
+bool
+Output_section::Input_section_sort_section_name_special_ordering_compare
+  ::operator()(
+    const Output_section::Input_section_sort_entry& s1,
+    const Output_section::Input_section_sort_entry& s2) const
+{
+  // We sort all the sections with no names to the end.
+  if (!s1.section_has_name() || !s2.section_has_name())
+    {
+      if (s1.section_has_name())
+	return true;
+      if (s2.section_has_name())
+	return false;
+      return s1.index() < s2.index();
+    }
+ 
+  // Some input section names have special ordering requirements.
+  int o1 = Layout::special_ordering_of_input_section(s1.section_name().c_str());
+  int o2 = Layout::special_ordering_of_input_section(s2.section_name().c_str());
+  if (o1 != o2)
+    {
+      if (o1 < 0)
+	return false;
+      else if (o2 < 0)
+	return true;
+      else
+	return o1 < o2;
+    }
+
+  // Keep input order otherwise.
+  return s1.index() < s2.index();  
+}
+
 // This updates the section order index of input sections according to the
 // the order specified in the mapping from Section id to order index.
 
@@ -3568,6 +3601,9 @@
           || this->type() == elfcpp::SHT_FINI_ARRAY)
         std::sort(sort_list.begin(), sort_list.end(),
 	          Input_section_sort_init_fini_compare());
+      else if (strcmp(this->name(), ".text") == 0)
+        std::sort(sort_list.begin(), sort_list.end(),
+	          Input_section_sort_section_name_special_ordering_compare());
       else
         std::sort(sort_list.begin(), sort_list.end(),
 	          Input_section_sort_compare());
@@ -4042,7 +4078,8 @@
     flags_(flags),
     is_max_align_known_(false),
     are_addresses_set_(false),
-    is_large_data_segment_(false)
+    is_large_data_segment_(false),
+    is_unique_segment_(false)
 {
   // The ELF ABI specifies that a PT_TLS segment always has PF_R as
   // the flags.
diff --git a/gold/output.h b/gold/output.h
index e704213..95eeeb9 100644
--- a/gold/output.h
+++ b/gold/output.h
@@ -2957,6 +2957,10 @@
     this->dynsym_index_ = index;
   }
 
+  // Sort the attached input sections.
+  void
+  sort_attached_input_sections();
+
   // Return whether the input sections sections attachd to this output
   // section may require sorting.  This is used to handle constructor
   // priorities compatibly with GNU ld.
@@ -3068,6 +3072,28 @@
   requires_postprocessing() const
   { return this->requires_postprocessing_; }
 
+  bool
+  is_unique_segment() const
+  { return this->is_unique_segment_; }
+
+  void
+  set_is_unique_segment()
+  { this->is_unique_segment_ = true; }
+
+  uint64_t extra_segment_flags() const
+  { return this->extra_segment_flags_; }
+
+  void
+  set_extra_segment_flags(uint64_t flags)
+  { this->extra_segment_flags_ = flags; }
+
+  uint64_t segment_alignment() const
+  { return this->segment_alignment_; }
+
+  void
+  set_segment_alignment(uint64_t align)
+  { this->segment_alignment_ = align; }
+  
   // If a section requires postprocessing, return the buffer to use.
   unsigned char*
   postprocessing_buffer() const
@@ -3818,6 +3844,15 @@
 	       const Input_section_sort_entry&) const;
   };
 
+  // This is the sort comparison function for .text to sort sections with
+  // prefixes .text.{unlikely,exit,startup,hot} before other sections.
+  struct Input_section_sort_section_name_special_ordering_compare
+  {
+    bool
+    operator()(const Input_section_sort_entry&,
+	       const Input_section_sort_entry&) const;
+  };
+
   // Fill data.  This is used to fill in data between input sections.
   // It is also used for data statements (BYTE, WORD, etc.) in linker
   // scripts.  When we have to keep track of the input sections, we
@@ -3875,10 +3910,6 @@
   add_output_merge_section(Output_section_data* posd, bool is_string,
 			   uint64_t entsize);
 
-  // Sort the attached input sections.
-  void
-  sort_attached_input_sections();
-
   // Find the merge section into which an input section with index SHNDX in
   // OBJECT has been added.  Return NULL if none found.
   Output_section_data*
@@ -4019,9 +4050,17 @@
   bool has_fixed_layout_ : 1;
   // True if we can add patch space to this section.
   bool is_patch_space_allowed_ : 1;
+  // True if this output section goes into a unique segment.
+  bool is_unique_segment_ : 1;
   // For SHT_TLS sections, the offset of this section relative to the base
   // of the TLS segment.
   uint64_t tls_offset_;
+  // Additional segment flags, specified via linker plugin, when mapping some
+  // input sections to unique segments.
+  uint64_t extra_segment_flags_; 
+  // Segment alignment specified via linker plugin, when mapping some
+  // input sections to unique segments.
+  uint64_t segment_alignment_;
   // Saved checkpoint.
   Checkpoint_output_section* checkpoint_;
   // Fast lookup maps for merged and relaxed input sections.
@@ -4097,6 +4136,16 @@
   set_is_large_data_segment()
   { this->is_large_data_segment_ = true; }
 
+  bool
+  is_unique_segment() const
+  { return this->is_unique_segment_; }
+
+  // Mark segment as unique, happens when linker plugins request that
+  // certain input sections be mapped to unique segments.
+  void
+  set_is_unique_segment()
+  { this->is_unique_segment_ = true; }
+
   // Return the maximum alignment of the Output_data.
   uint64_t
   maximum_alignment();
@@ -4307,6 +4356,8 @@
   bool are_addresses_set_ : 1;
   // Whether this segment holds large data sections.
   bool is_large_data_segment_ : 1;
+  // Whether this was marked as a unique segment via a linker plugin.
+  bool is_unique_segment_ : 1;
 };
 
 // This class represents the output file.
diff --git a/gold/plugin.cc b/gold/plugin.cc
index 4865001..779e173 100644
--- a/gold/plugin.cc
+++ b/gold/plugin.cc
@@ -115,6 +115,15 @@
 static enum ld_plugin_status
 allow_section_ordering();
 
+static enum ld_plugin_status
+allow_unique_segment_for_sections();
+
+static enum ld_plugin_status
+unique_segment_for_sections(const char* segment_name,
+			    uint64_t flags,
+			    uint64_t align,
+			    const struct ld_plugin_section *section_list,
+			    unsigned int num_sections);
 };
 
 #endif // ENABLE_PLUGINS
@@ -159,7 +168,7 @@
   sscanf(ver, "%d.%d", &major, &minor);
 
   // Allocate and populate a transfer vector.
-  const int tv_fixed_size = 24;
+  const int tv_fixed_size = 26;
 
   int tv_size = this->args_.size() + tv_fixed_size;
   ld_plugin_tv* tv = new ld_plugin_tv[tv_size];
@@ -271,6 +280,15 @@
   tv[i].tv_u.tv_allow_section_ordering = allow_section_ordering;
 
   ++i;
+  tv[i].tv_tag = LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS;
+  tv[i].tv_u.tv_allow_unique_segment_for_sections
+    = allow_unique_segment_for_sections;
+
+  ++i;
+  tv[i].tv_tag = LDPT_UNIQUE_SEGMENT_FOR_SECTIONS;
+  tv[i].tv_u.tv_unique_segment_for_sections = unique_segment_for_sections;
+
+  ++i;
   tv[i].tv_tag = LDPT_NULL;
   tv[i].tv_u.tv_val = 0;
 
@@ -1679,6 +1697,64 @@
   return LDPS_OK;
 }
 
+// Let the linker know that a subset of sections could be mapped
+// to a unique segment.
+
+static enum ld_plugin_status
+allow_unique_segment_for_sections()
+{
+  gold_assert(parameters->options().has_plugins());
+  Layout* layout = parameters->options().plugins()->layout();
+  layout->set_unique_segment_for_sections_specified();
+  return LDPS_OK;
+}
+
+// This function should map the list of sections specified in the
+// SECTION_LIST to a unique segment.  ELF segments do not have names
+// and the NAME is used to identify Output Section which should contain
+// the list of sections.  This Output Section will then be mapped to
+// a unique segment.  FLAGS is used to specify if any additional segment
+// flags need to be set.  For instance, a specific segment flag can be
+// set to identify this segment.  Unsetting segment flags is not possible.
+// ALIGN specifies the alignment of the segment.
+
+static enum ld_plugin_status
+unique_segment_for_sections(const char* segment_name,
+			    uint64_t flags,
+			    uint64_t align,
+			    const struct ld_plugin_section* section_list,
+			    unsigned int num_sections)
+{
+  gold_assert(parameters->options().has_plugins());
+
+  if (num_sections == 0)
+    return LDPS_OK;
+
+  if (section_list == NULL)
+    return LDPS_ERR;
+
+  Layout* layout = parameters->options().plugins()->layout();
+  gold_assert (layout != NULL);
+
+  Layout::Unique_segment_info* s = new Layout::Unique_segment_info;
+  s->name = segment_name;
+  s->flags = flags;
+  s->align = align;
+
+  for (unsigned int i = 0; i < num_sections; ++i)
+    {
+      Object* obj = parameters->options().plugins()->get_elf_object(
+          section_list[i].handle);
+      if (obj == NULL)
+	return LDPS_BAD_HANDLE;
+      unsigned int shndx = section_list[i].shndx;
+      Const_section_id secn_id(obj, shndx);
+      layout->insert_section_segment_map(secn_id, s);
+    }
+
+  return LDPS_OK;
+}
+
 #endif // ENABLE_PLUGINS
 
 // Allocate a Pluginobj object of the appropriate size and endianness.
diff --git a/gold/powerpc.cc b/gold/powerpc.cc
index 62a17ca..7df59bb 100644
--- a/gold/powerpc.cc
+++ b/gold/powerpc.cc
@@ -1963,7 +1963,6 @@
 			section_size_type)
 {
   Output_segment* tls_segment = relinfo->layout->tls_segment();
-  typedef Powerpc_relocate_functions<size, big_endian> Reloc;
   const Sized_relobj_file<size, big_endian>* object = relinfo->object;
 
   const elfcpp::Elf_Xword addend = rela.get_r_addend();
diff --git a/gold/resolve.cc b/gold/resolve.cc
index 1119f38..fb739fd 100644
--- a/gold/resolve.cc
+++ b/gold/resolve.cc
@@ -96,7 +96,9 @@
   this->override_version(version);
   this->u_.from_object.shndx = st_shndx;
   this->is_ordinary_shndx_ = is_ordinary;
-  this->type_ = sym.get_st_type();
+  // Don't override st_type from plugin placeholder symbols.
+  if (object->pluginobj() == NULL)
+    this->type_ = sym.get_st_type();
   this->binding_ = sym.get_st_bind();
   this->override_visibility(sym.get_st_visibility());
   this->nonvis_ = sym.get_st_nonvis();
@@ -343,15 +345,20 @@
       this->candidate_odr_violations_[to->name()].insert(toloc);
     }
 
+  // Plugins don't provide a symbol type, so adopt the existing type
+  // if the FROM symbol is from a plugin.
+  elfcpp::STT fromtype = (object->pluginobj() != NULL
+			  ? to->type()
+			  : sym.get_st_type());
   unsigned int frombits = symbol_to_bits(sym.get_st_bind(),
                                          object->is_dynamic(),
 					 st_shndx, is_ordinary,
-                                         sym.get_st_type());
+                                         fromtype);
 
   bool adjust_common_sizes;
   bool adjust_dyndef;
   typename Sized_symbol<size>::Size_type tosize = to->symsize();
-  if (Symbol_table::should_override(to, frombits, sym.get_st_type(), OBJECT,
+  if (Symbol_table::should_override(to, frombits, fromtype, OBJECT,
 				    object, &adjust_common_sizes,
 				    &adjust_dyndef))
     {
@@ -434,9 +441,8 @@
 			      to->type());
     }
 
-  if (to->type() == elfcpp::STT_TLS
-      ? fromtype != elfcpp::STT_TLS
-      : fromtype == elfcpp::STT_TLS)
+  if ((to->type() == elfcpp::STT_TLS) ^ (fromtype == elfcpp::STT_TLS)
+      && !to->is_placeholder())
     Symbol_table::report_resolve_problem(true,
 					 _("symbol '%s' used as both __thread "
 					   "and non-__thread"),
diff --git a/gold/script-sections.cc b/gold/script-sections.cc
index f90c0b3..df02328 100644
--- a/gold/script-sections.cc
+++ b/gold/script-sections.cc
@@ -2288,6 +2288,15 @@
   uint64_t old_dot_value = *dot_value;
   uint64_t old_load_address = *load_address;
 
+  // If input section sorting is requested via --section-ordering-file or
+  // linker plugins, then do it here.  This is important because we want 
+  // any sorting specified in the linker scripts, which will be done after
+  // this, to take precedence.  The final order of input sections is then 
+  // guaranteed to be according to the linker script specification.
+  if (this->output_section_ != NULL
+      && this->output_section_->input_section_order_specified())
+    this->output_section_->sort_attached_input_sections();
+
   // Decide the start address for the section.  The algorithm is:
   // 1) If an address has been specified in a linker script, use that.
   // 2) Otherwise if a memory region has been specified for the section,
@@ -2859,6 +2868,15 @@
   uint64_t address = *dot_value;
   address = align_address(address, this->os_->addralign());
 
+  // If input section sorting is requested via --section-ordering-file or
+  // linker plugins, then do it here.  This is important because we want 
+  // any sorting specified in the linker scripts, which will be done after
+  // this, to take precedence.  The final order of input sections is then 
+  // guaranteed to be according to the linker script specification.
+  if (this->os_ != NULL
+      && this->os_->input_section_order_specified())
+    this->os_->sort_attached_input_sections();
+
   // For a relocatable link, all orphan sections are put at
   // address 0.  In general we expect all sections to be at
   // address 0 for a relocatable link, but we permit the linker
@@ -2894,11 +2912,17 @@
       address += size;
     }
 
-  // An SHF_TLS/SHT_NOBITS section does not take up any address space.
-  if (this->os_ == NULL
-      || (this->os_->flags() & elfcpp::SHF_TLS) == 0
-      || this->os_->type() != elfcpp::SHT_NOBITS)
+  if (parameters->options().relocatable())
     {
+      // For a relocatable link, reset DOT_VALUE to 0.
+      *dot_value = 0;
+      *load_address = 0;
+    }
+  else if (this->os_ == NULL
+	   || (this->os_->flags() & elfcpp::SHF_TLS) == 0
+	   || this->os_->type() != elfcpp::SHT_NOBITS)
+    {
+      // An SHF_TLS/SHT_NOBITS section does not take up any address space.
       if (!have_load_address)
 	*load_address = address;
       else
diff --git a/gold/symtab.cc b/gold/symtab.cc
index 5fdbf1c..b9581cc 100644
--- a/gold/symtab.cc
+++ b/gold/symtab.cc
@@ -1278,7 +1278,8 @@
 	  && res->is_externally_visible()
 	  && !res->is_from_dynobj()
           && (parameters->options().shared()
-	      || parameters->options().export_dynamic()))
+	      || parameters->options().export_dynamic()
+	      || parameters->options().in_dynamic_list(res->name())))
         this->gc_mark_symbol(res);
 
       if (is_defined_in_discarded_section)
@@ -2932,15 +2933,24 @@
 	  break;
 
 	case Symbol::IN_OUTPUT_DATA:
-	  shndx = sym->output_data()->out_shndx();
-	  if (shndx >= elfcpp::SHN_LORESERVE)
-	    {
-	      if (sym_index != -1U)
-		symtab_xindex->add(sym_index, shndx);
-	      if (dynsym_index != -1U)
-		dynsym_xindex->add(dynsym_index, shndx);
-	      shndx = elfcpp::SHN_XINDEX;
-	    }
+	  {
+	    Output_data* od = sym->output_data();
+
+	    shndx = od->out_shndx();
+	    if (shndx >= elfcpp::SHN_LORESERVE)
+	      {
+		if (sym_index != -1U)
+		  symtab_xindex->add(sym_index, shndx);
+		if (dynsym_index != -1U)
+		  dynsym_xindex->add(dynsym_index, shndx);
+		shndx = elfcpp::SHN_XINDEX;
+	      }
+
+	    // In object files symbol values are section
+	    // relative.
+	    if (parameters->options().relocatable())
+	      sym_value -= od->address();
+	  }
 	  break;
 
 	case Symbol::IN_OUTPUT_SEGMENT:
diff --git a/gold/symtab.h b/gold/symtab.h
index 2258806..ea80632 100644
--- a/gold/symtab.h
+++ b/gold/symtab.h
@@ -572,8 +572,14 @@
     if (!parameters->options().shared())
       return false;
 
-    // If the user used -Bsymbolic, then nothing is preemptible.
-    if (parameters->options().Bsymbolic())
+    // If the symbol was named in a --dynamic-list script, it is preemptible.
+    if (parameters->options().in_dynamic_list(this->name()))
+      return true;
+
+    // If the user used -Bsymbolic or provided a --dynamic-list script,
+    // then nothing (else) is preemptible.
+    if (parameters->options().Bsymbolic()
+        || parameters->options().have_dynamic_list())
       return false;
 
     // If the user used -Bsymbolic-functions, then functions are not
@@ -813,6 +819,11 @@
   is_predefined() const
   { return this->is_predefined_; }
 
+  // Return true if this is a C++ vtable symbol.
+  bool
+  is_cxx_vtable() const
+  { return is_prefix_of("_ZTV", this->name_); }
+
  protected:
   // Instances of this class should always be created at a specific
   // size.
diff --git a/gold/target-reloc.h b/gold/target-reloc.h
index 464a3fa..fda63ac 100644
--- a/gold/target-reloc.h
+++ b/gold/target-reloc.h
@@ -144,6 +144,12 @@
   return CB_WARNING;
 }
 
+inline bool
+is_strong_undefined(const Symbol* sym)
+{
+  return sym->is_undefined() && sym->binding() != elfcpp::STB_WEAK;
+}
+
 // Give an error for a symbol with non-default visibility which is not
 // defined locally.
 
@@ -399,7 +405,7 @@
 	gold_undefined_symbol_at_location(sym, relinfo, i, offset);
       else if (sym != NULL
 	       && sym->visibility() != elfcpp::STV_DEFAULT
-	       && (sym->is_undefined() || sym->is_from_dynobj()))
+	       && (is_strong_undefined(sym) || sym->is_from_dynobj()))
 	visibility_error(sym);
 
       if (sym != NULL && sym->has_warning())
diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
index df9e8b4..c9b3375 100644
--- a/gold/testsuite/Makefile.am
+++ b/gold/testsuite/Makefile.am
@@ -109,7 +109,7 @@
 # tests.  We use the gcc-specific flag '-B' to use our linker instead
 # of the default linker, which is why we only run our tests under gcc.
 
-if NATIVE_LINKER
+if TEST_AS_NATIVE_LINKER
 if GCC
 
 # Each of these .o's is a useful, small complete program.  They're
@@ -165,6 +165,16 @@
 gc_orphan_section_test.stdout: gc_orphan_section_test
 	$(TEST_NM) gc_orphan_section_test > gc_orphan_section_test.stdout
 
+check_SCRIPTS += gc_dynamic_list_test.sh
+check_DATA += gc_dynamic_list_test.stdout
+MOSTLYCLEANFILES += gc_dynamic_list_test
+gc_dynamic_list_test.o: gc_dynamic_list_test.c
+	$(COMPILE) -c -ffunction-sections -o $@ $<
+gc_dynamic_list_test: gc_dynamic_list_test.o gcctestdir/ld $(srcdir)/gc_dynamic_list_test.t
+	$(LINK) -Bgcctestdir/ -Wl,--gc-sections -Wl,--dynamic-list,$(srcdir)/gc_dynamic_list_test.t gc_dynamic_list_test.o
+gc_dynamic_list_test.stdout: gc_dynamic_list_test
+	$(TEST_NM) gc_dynamic_list_test > $@
+
 check_SCRIPTS += icf_test.sh
 check_DATA += icf_test.stdout
 MOSTLYCLEANFILES += icf_test
@@ -211,15 +221,31 @@
 
 check_SCRIPTS += final_layout.sh
 check_DATA += final_layout.stdout
-MOSTLYCLEANFILES += final_layout
+MOSTLYCLEANFILES += final_layout final_layout_sequence.txt final_layout_script.lds
 final_layout.o: final_layout.cc
 	$(CXXCOMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
 final_layout_sequence.txt:
 	(echo "*_Z3barv*" && echo ".text._Z3bazv" && echo "*_Z3foov*" && echo "*global_varb*" && echo "*global_vara*" && echo "*global_varc*") > final_layout_sequence.txt
-final_layout: final_layout.o final_layout_sequence.txt gcctestdir/ld
-	$(CXXLINK) -Bgcctestdir/ -Wl,--section-ordering-file,final_layout_sequence.txt final_layout.o
+final_layout_script.lds:
+	(echo "SECTIONS { .text : { *(.text*) } .bss : { *(.bss*) } }") > final_layout_script.lds
+final_layout: final_layout.o final_layout_sequence.txt final_layout_script.lds gcctestdir/ld
+	$(CXXLINK) -Bgcctestdir/ -Wl,--section-ordering-file,final_layout_sequence.txt -Wl,-T,final_layout_script.lds final_layout.o
 final_layout.stdout: final_layout
-	$(TEST_NM) -n final_layout > final_layout.stdout
+	$(TEST_NM) -n --synthetic final_layout > final_layout.stdout
+
+check_SCRIPTS += text_section_grouping.sh
+check_DATA += text_section_grouping.stdout text_section_no_grouping.stdout
+MOSTLYCLEANFILES += text_section_grouping text_section_no_grouping
+text_section_grouping.o: text_section_grouping.cc
+	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+text_section_grouping: text_section_grouping.o gcctestdir/ld
+	$(CXXLINK)  -Bgcctestdir/ text_section_grouping.o
+text_section_no_grouping: text_section_grouping.o gcctestdir/ld
+	$(CXXLINK)  -Bgcctestdir/ -Wl,--no-text-reorder text_section_grouping.o
+text_section_grouping.stdout: text_section_grouping
+	$(TEST_NM) -n --synthetic text_section_grouping > text_section_grouping.stdout
+text_section_no_grouping.stdout: text_section_no_grouping
+	$(TEST_NM) -n --synthetic text_section_no_grouping > text_section_no_grouping.stdout 
 
 check_PROGRAMS += icf_virtual_function_folding_test
 MOSTLYCLEANFILES += icf_virtual_function_folding_test
@@ -612,6 +638,18 @@
 	test -d alt || mkdir -p alt
 	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2.o
 
+check_PROGRAMS += weak_undef_test_2
+weak_undef_test_2_SOURCES = weak_undef_test_2.cc
+weak_undef_test_2_DEPENDENCIES = gcctestdir/ld libweak_undef_2.a
+weak_undef_test_2_LDFLAGS = -Bgcctestdir/ -u weak_undef_2
+weak_undef_test_2_LDADD = -L . -lweak_undef_2
+libweak_undef_2.a: weak_undef_file3.o weak_undef_file4.o
+	$(TEST_AR) rc $@ $^
+weak_undef_file3.o: weak_undef_file3.cc
+	$(CXXCOMPILE) -c -o $@ $<
+weak_undef_file4.o: weak_undef_file4.cc
+	$(CXXCOMPILE) -c -o $@ $<
+
 if FN_PTRS_IN_SO_WITHOUT_PIC
 check_PROGRAMS += weak_undef_nonpic_test
 MOSTLYCLEANFILES += alt/weak_undef_lib_nonpic.so
@@ -907,6 +945,20 @@
 	  exit 1; \
 	fi
 
+# Test error message when a vtable is undefined.
+check_SCRIPTS += missing_key_func.sh
+check_DATA += missing_key_func.err
+MOSTLYCLEANFILES += missing_key_func.err
+missing_key_func.o: missing_key_func.cc
+	$(CXXCOMPILE) -O0 -g -c -o $@ $(srcdir)/missing_key_func.cc
+missing_key_func.err: missing_key_func.o gcctestdir/ld
+	@echo $(CXXLINK) -Bgcctestdir/ -o missing_key_func missing_key_func.o "2>$@"
+	@if $(CXXLINK) -Bgcctestdir/ -o missing_key_func missing_key_func.o 2>$@; \
+	then \
+	  echo 1>&2 "Link of missing_key_func should have failed"; \
+	  rm -f $@; \
+	  exit 1; \
+	fi
 
 if HAVE_ZLIB
 
@@ -1324,7 +1376,6 @@
 script_test_8.stdout: script_test_8
 	$(TEST_READELF) -SlW script_test_8 > script_test_8.stdout
 
-
 check_SCRIPTS += script_test_9.sh
 check_DATA += script_test_9.stdout
 script_test_9.o: script_test_9.cc
@@ -1334,6 +1385,16 @@
 script_test_9.stdout: script_test_9
 	$(TEST_READELF) -lW script_test_9 > script_test_9.stdout
 
+# Test scripts with a relocatable link.
+# The -g option is necessary to trigger a bug where a section
+# declared in a script file is assigned a non-zero starting address.
+check_PROGRAMS += script_test_11
+script_test_11: gcctestdir/ld script_test_11_r.o
+	$(LINK) -Bgcctestdir/ script_test_11_r.o
+script_test_11_r.o: gcctestdir/ld $(srcdir)/script_test_11.t script_test_11.o
+	gcctestdir/ld -r -o $@ -T $(srcdir)/script_test_11.t script_test_11.o
+script_test_11.o: script_test_11.c
+	$(COMPILE) -c -g -o $@ $<
 
 # Test --dynamic-list, --dynamic-list-data, --dynamic-list-cpp-new,
 # and --dynamic-list-cpp-typeinfo
@@ -1350,6 +1411,22 @@
 dynamic_list.stdout: dynamic_list
 	$(TEST_READELF) -W --dyn-syms dynamic_list > dynamic_list.stdout
 
+check_PROGRAMS += dynamic_list_2
+dynamic_list_2_SOURCES = dynamic_list_2.cc
+dynamic_list_2_DEPENDENCIES = gcctestdir/ld dynamic_list_lib1.so dynamic_list_lib2.so
+dynamic_list_2_LDFLAGS = -Bgcctestdir/ -L. -Wl,-R,. -Wl,--no-as-needed
+dynamic_list_2_LDADD = dynamic_list_lib1.so dynamic_list_lib2.so
+
+dynamic_list_lib1.so: gcctestdir/ld dynamic_list_lib1.o
+	$(CXXLINK) -Bgcctestdir/ -shared dynamic_list_lib1.o
+dynamic_list_lib1.o: dynamic_list_lib1.cc
+	$(CXXCOMPILE) -c -fpic -o $@ $<
+
+dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t
+	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
+dynamic_list_lib2.o: dynamic_list_lib2.cc
+	$(CXXCOMPILE) -c -fpic -o $@ $<
+
 check_PROGRAMS += thin_archive_test_1
 MOSTLYCLEANFILES += libthin1.a libthin3.a libthinall.a \
 	alt/thin_archive_test_2.o alt/thin_archive_test_4.o \
@@ -1509,6 +1586,22 @@
 	@echo "" >$@
 	@echo "Symbol table" >>$@
 
+if TLS
+
+check_PROGRAMS += plugin_test_tls
+check_SCRIPTS += plugin_test_tls.sh
+check_DATA += plugin_test_tls.err
+MOSTLYCLEANFILES += plugin_test_tls.err
+plugin_test_tls: two_file_test_tls.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2_tls.syms gcctestdir/ld plugin_test.so
+	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_tls.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2_tls.syms 2>plugin_test_tls.err
+plugin_test_tls.err: plugin_test_tls
+	@touch plugin_test_tls.err
+
+two_file_test_2_tls.syms: two_file_test_2_tls.o
+	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+
+endif TLS
+
 MOSTLYCLEANFILES += unused.c
 unused.syms: unused.o
 	$(TEST_READELF) -sW $< >$@ 2>/dev/null
@@ -1519,13 +1612,15 @@
 	@cp /dev/null $@
 
 check_SCRIPTS += plugin_final_layout.sh
-check_DATA += plugin_final_layout.stdout
+check_DATA += plugin_final_layout.stdout plugin_final_layout_readelf.stdout
 plugin_final_layout.o: plugin_final_layout.cc
 	$(CXXCOMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
 plugin_final_layout: plugin_final_layout.o plugin_section_order.so gcctestdir/ld
 	$(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_order.so" plugin_final_layout.o
 plugin_final_layout.stdout: plugin_final_layout
 	$(TEST_NM) -n plugin_final_layout > plugin_final_layout.stdout
+plugin_final_layout_readelf.stdout: plugin_final_layout
+	$(TEST_READELF) -Wl plugin_final_layout > plugin_final_layout_readelf.stdout
 
 plugin_section_order.so: plugin_section_order.o
 	$(LINK) -Bgcctestdir/ -shared plugin_section_order.o
@@ -1974,7 +2069,7 @@
 check_DATA += gdb_index_test_1.stdout
 MOSTLYCLEANFILES += gdb_index_test_1.stdout gdb_index_test_1
 gdb_index_test.o: gdb_index_test.cc
-	$(CXXCOMPILE) -O0 -g -gno-pubnames -c -o $@ $<
+	$(CXXCOMPILE) -O0 -g -gno-pubnames -fdebug-types-section -c -o $@ $<
 gdb_index_test_1: gdb_index_test.o gcctestdir/ld
 	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
 gdb_index_test_1.stdout: gdb_index_test_1
@@ -1987,7 +2082,7 @@
 check_DATA += gdb_index_test_2.stdout
 MOSTLYCLEANFILES += gdb_index_test_2.stdout gdb_index_test_2
 gdb_index_test_cdebug.o: gdb_index_test.cc
-	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -o $@ $<
+	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -fdebug-types-section -Wa,--compress-debug-sections -c -o $@ $<
 gdb_index_test_2: gdb_index_test_cdebug.o gcctestdir/ld
 	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
 gdb_index_test_2.stdout: gdb_index_test_2
@@ -2011,7 +2106,7 @@
 check_DATA += gdb_index_test_4.stdout
 MOSTLYCLEANFILES += gdb_index_test_4.stdout gdb_index_test_4
 gdb_index_test_pub.o: gdb_index_test.cc
-	$(CXXCOMPILE) -O0 -g -gpubnames -c -o $@ $<
+	$(CXXCOMPILE) -O0 -g -gpubnames -fdebug-types-section -c -o $@ $<
 gdb_index_test_4: gdb_index_test_pub.o gcctestdir/ld
 	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
 gdb_index_test_4.stdout: gdb_index_test_4
@@ -2122,7 +2217,7 @@
 endif DEFAULT_TARGET_X86_64
 
 endif GCC
-endif NATIVE_LINKER
+endif TEST_AS_NATIVE_LINKER
 
 # These tests work with native and cross linkers.
 
diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in
index ced8a21..f185392 100644
--- a/gold/testsuite/Makefile.in
+++ b/gold/testsuite/Makefile.in
@@ -52,7 +52,7 @@
 	$(am__EXEEXT_28) $(am__EXEEXT_29) $(am__EXEEXT_30) \
 	$(am__EXEEXT_31) $(am__EXEEXT_32) $(am__EXEEXT_33) \
 	$(am__EXEEXT_34) $(am__EXEEXT_35) $(am__EXEEXT_36) \
-	$(am__EXEEXT_37) $(am__EXEEXT_38)
+	$(am__EXEEXT_37) $(am__EXEEXT_38) $(am__EXEEXT_39)
 @NATIVE_OR_CROSS_LINKER_TRUE@am__append_1 = object_unittest \
 @NATIVE_OR_CROSS_LINKER_TRUE@	binary_unittest leb128_unittest
 
@@ -68,156 +68,193 @@
 
 # Test --detect-odr-violations
 
+# Test error message when a vtable is undefined.
+
 # Similar to --detect-odr-violations: check for undefined symbols in .so's
 
 # Test --dynamic-list, --dynamic-list-data, --dynamic-list-cpp-new,
 # and --dynamic-list-cpp-typeinfo
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_2 = incremental_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gc_comdat_test.sh gc_tls_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gc_orphan_section_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_keep_unique_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_safe_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_safe_so_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	final_layout.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_preemptible_functions_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_string_merge_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_sht_rel_addend_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared.sh weak_plt.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	debug_msg.sh undef_symbol.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_1.sh ver_test_2.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_4.sh ver_test_5.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_7.sh ver_test_10.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_matching_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_3.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_4.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_5.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_6.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_7.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_8.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_9.sh dynamic_list.sh
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_2 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_comdat_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_tls_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_orphan_section_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_dynamic_list_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_keep_unique_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_safe_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_safe_so_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	final_layout.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	text_section_grouping.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_preemptible_functions_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_string_merge_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_sht_rel_addend_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_plt.sh debug_msg.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	missing_key_func.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	undef_symbol.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_1.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_2.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_4.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_5.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_7.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_10.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_matching_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_3.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_4.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_5.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_6.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_7.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_8.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_9.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dynamic_list.sh
 
 # Create the data files that debug_msg.sh analyzes.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_3 = incremental_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gc_comdat_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gc_tls_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gc_orphan_section_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_keep_unique_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_safe_test_1.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_safe_test_2.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_safe_so_test_1.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_safe_so_test_2.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	final_layout.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_preemptible_functions_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_string_merge_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_sht_rel_addend_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared.dbg \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_plt_shared.so debug_msg.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_4 = incremental_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gc_comdat_test gc_tls_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gc_orphan_section_test icf_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_keep_unique_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_safe_test icf_safe_so_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	final_layout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_virtual_function_folding_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_preemptible_functions_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_string_merge_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	icf_sht_rel_addend_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared.dbg \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	alt/weak_undef_lib.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_5 = icf_virtual_function_folding_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	basic_test basic_pic_test
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am__append_6 = basic_static_test \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@	basic_static_pic_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_7 = basic_pie_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	constructor_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_3 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_comdat_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_tls_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_orphan_section_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_dynamic_list_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_keep_unique_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_safe_test_1.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_safe_test_2.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_safe_so_test_1.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_safe_so_test_2.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	final_layout.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	text_section_grouping.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	text_section_no_grouping.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_preemptible_functions_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_string_merge_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_sht_rel_addend_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared.dbg \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_plt_shared.so \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	debug_msg.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	missing_key_func.err
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_4 = incremental_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_comdat_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_tls_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_orphan_section_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gc_dynamic_list_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_keep_unique_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_safe_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_safe_so_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	final_layout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	final_layout_sequence.txt \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	final_layout_script.lds \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	text_section_grouping \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	text_section_no_grouping \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_virtual_function_folding_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_preemptible_functions_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_string_merge_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	icf_sht_rel_addend_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared.dbg \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	alt/weak_undef_lib.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_5 = icf_virtual_function_folding_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	basic_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	basic_pic_test
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_6 = basic_static_test \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	basic_static_pic_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_7 = basic_pie_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	constructor_test
 @GCC_FALSE@constructor_test_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@constructor_test_DEPENDENCIES =
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am__append_8 = constructor_static_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_9 = two_file_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_pic_test
+@TEST_AS_NATIVE_LINKER_FALSE@constructor_test_DEPENDENCIES =
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_8 = constructor_static_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_9 = two_file_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_pic_test
 @GCC_FALSE@two_file_test_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@two_file_test_DEPENDENCIES =
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am__append_10 = two_file_static_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_11 = two_file_shared_1_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_2_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_1_pic_2_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_2_pic_1_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_same_shared_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_separate_shared_12_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_separate_shared_21_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_relocatable_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_pie_test
+@TEST_AS_NATIVE_LINKER_FALSE@two_file_test_DEPENDENCIES =
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_10 = two_file_static_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_11 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_1_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_2_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_1_pic_2_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_2_pic_1_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_same_shared_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_separate_shared_12_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_separate_shared_21_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_relocatable_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_pie_test
 
 # The nonpic tests will fail on platforms which can not put non-PIC
 # code into shared libraries, so we just don't run them in that case.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_12 = two_file_shared_1_nonpic_test \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_2_nonpic_test \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_same_shared_nonpic_test \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_separate_shared_12_nonpic_test \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_separate_shared_21_nonpic_test \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_mixed_shared_test \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_mixed_2_shared_test \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_mixed_pie_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_13 = two_file_strip_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_same_shared_strip_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	common_test_1 common_test_2 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_shared_1_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_shared_2_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_same_shared_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_separate_shared_12_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_separate_shared_21_test
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_12 = two_file_shared_1_nonpic_test \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_2_nonpic_test \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_same_shared_nonpic_test \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_separate_shared_12_nonpic_test \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_separate_shared_21_nonpic_test \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_mixed_shared_test \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_mixed_2_shared_test \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_mixed_pie_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_13 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_strip_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_same_shared_strip_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	common_test_1 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	common_test_2 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_shared_1_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_shared_2_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_same_shared_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_separate_shared_12_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_separate_shared_21_test
 @GCC_FALSE@common_test_1_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@common_test_1_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@common_test_1_DEPENDENCIES =
 @GCC_FALSE@exception_test_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@exception_test_DEPENDENCIES =
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am__append_14 = exception_static_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_15 = weak_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_undef_test
+@TEST_AS_NATIVE_LINKER_FALSE@exception_test_DEPENDENCIES =
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_14 = exception_static_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_15 = weak_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_undef_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_undef_test_2
 @GCC_FALSE@weak_test_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@weak_test_DEPENDENCIES =
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_16 = weak_undef_nonpic_test
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_17 = alt/weak_undef_lib_nonpic.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_18 = weak_alias_test weak_plt \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	copy_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_19 = tls_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pic_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pie_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pie_pic_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_ie_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_gd_to_ie_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am__append_20 = tls_shared_gnu2_gd_to_ie_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am__append_21 = tls_shared_gnu2_test
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@am__append_22 = tls_static_test \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@	tls_static_pic_test
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_23 = tls_shared_nonpic_test
+@TEST_AS_NATIVE_LINKER_FALSE@weak_test_DEPENDENCIES =
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_16 = weak_undef_nonpic_test
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_17 = alt/weak_undef_lib_nonpic.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_18 = weak_alias_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_plt copy_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_19 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pic_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pie_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pie_pic_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_ie_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_gd_to_ie_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am__append_20 = tls_shared_gnu2_gd_to_ie_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am__append_21 = tls_shared_gnu2_test
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_22 = tls_static_test \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_static_pic_test
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_23 = tls_shared_nonpic_test
 
 # Test -o when emitting to a special file (such as something in /dev).
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_24 = many_sections_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	many_sections_r_test initpri1 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	initpri2 initpri3a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	flagstest_o_specialfile
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_24 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	many_sections_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	many_sections_r_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	initpri1 initpri2 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	initpri3a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	flagstest_o_specialfile
 @GCC_FALSE@many_sections_test_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@many_sections_test_DEPENDENCIES =
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_25 = many_sections_define.h \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	many_sections_check.h
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_26 = many_sections_define.h \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	many_sections_check.h \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	debug_msg.err
+@TEST_AS_NATIVE_LINKER_FALSE@many_sections_test_DEPENDENCIES =
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_25 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	many_sections_define.h \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	many_sections_check.h
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_26 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	many_sections_define.h \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	many_sections_check.h \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	debug_msg.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	missing_key_func.err
 @GCC_FALSE@initpri1_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@initpri1_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@initpri1_DEPENDENCIES =
 @GCC_FALSE@initpri2_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@initpri2_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@initpri2_DEPENDENCIES =
 @GCC_FALSE@initpri3a_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@initpri3a_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@initpri3a_DEPENDENCIES =
 
 # Check that --detect-odr-violations works with compressed debug sections.
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__append_27 = debug_msg_cdebug.err
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__append_28 = debug_msg_cdebug.err
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_27 = debug_msg_cdebug.err
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_28 = debug_msg_cdebug.err
 
 # See if we can also detect problems when we're linking .so's, not .o's.
 
@@ -227,123 +264,146 @@
 # This version won't be runnable, because there is no way to put the
 # PT_PHDR segment at file offset 0.  We just make sure that we can
 # build it without error.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_29 = debug_msg_so.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	debug_msg_ndebug.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	undef_symbol.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	flagstest_o_ttext_2 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_1.syms ver_test_2.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_4.syms ver_test_5.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_7.syms ver_test_10.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_3.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_matching_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_3.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_4.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_5.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_6.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_7.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_8.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_9.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	dynamic_list.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_30 = debug_msg_so.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	debug_msg_ndebug.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	undef_symbol.err ver_test_11.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_3.err binary.txt \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_matching_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_3.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_4 script_test_5 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_6 script_test_7 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_8 dynamic_list \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	dynamic_list.stdout libthin1.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	libthin3.a libthinall.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	alt/thin_archive_test_2.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	alt/thin_archive_test_4.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	alt/libthin2.a alt/libthin4.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_29 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	debug_msg_so.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	debug_msg_ndebug.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	undef_symbol.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	flagstest_o_ttext_2 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_1.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_2.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_4.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_5.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_7.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_10.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_3.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_matching_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_3.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_4.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_5.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_6.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_7.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_8.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_9.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dynamic_list.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_30 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	debug_msg_so.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	debug_msg_ndebug.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	undef_symbol.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_11.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_3.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	binary.txt \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_matching_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_3.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_4 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_5 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_6 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_7 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_8 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dynamic_list \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dynamic_list.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	libthin1.a libthin3.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	libthinall.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	alt/thin_archive_test_2.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	alt/thin_archive_test_4.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	alt/libthin2.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	alt/libthin4.a
 
 # Test --compress-debug-sections.  FIXME: check we actually compress.
 
 # The specialfile output has a tricky case when we also compress debug
 # sections, because it requires output-file resizing.
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__append_31 = flagstest_compress_debug_sections \
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	flagstest_o_specialfile_and_compress_debug_sections
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_31 = flagstest_compress_debug_sections \
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	flagstest_o_specialfile_and_compress_debug_sections
 
 # Test -TText and -Tdata.
 
 # Test symbol versioning.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_32 = flagstest_o_ttext_1 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test ver_test_2 ver_test_6 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_8 ver_test_9 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_11 ver_test_12 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_1 protected_2 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_test relro_now_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_strip_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_script_test script_test_1 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_2 justsyms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	justsyms_exec binary_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_3 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	tls_phdrs_script_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	tls_script_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	thin_archive_test_1 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	thin_archive_test_2
+
+# Test scripts with a relocatable link.
+# The -g option is necessary to trigger a bug where a section
+# declared in a script file is assigned a non-zero starting address.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_32 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	flagstest_o_ttext_1 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test ver_test_2 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_6 ver_test_8 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_9 ver_test_11 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_12 protected_1 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_2 relro_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_now_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_strip_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_script_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_1 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_2 justsyms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	justsyms_exec \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	binary_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_3 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	tls_phdrs_script_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	tls_script_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_11 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dynamic_list_2 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	thin_archive_test_1 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	thin_archive_test_2
 @GCC_FALSE@script_test_1_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@script_test_1_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@script_test_1_DEPENDENCIES =
 @GCC_FALSE@script_test_2_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@script_test_2_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@script_test_2_DEPENDENCIES =
 @GCC_FALSE@justsyms_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@justsyms_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@justsyms_DEPENDENCIES =
 @GCC_FALSE@justsyms_exec_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@justsyms_exec_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@justsyms_exec_DEPENDENCIES =
 @GCC_FALSE@binary_test_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@binary_test_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@binary_test_DEPENDENCIES =
 @GCC_FALSE@thin_archive_test_2_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@thin_archive_test_2_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@thin_archive_test_2_DEPENDENCIES =
 
 # Test plugins with -r.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@am__append_33 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_1 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_2 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_3 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_4 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_5 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_6 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_7 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_8
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@am__append_34 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_1.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_2.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_3.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_4.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_6.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_7.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_final_layout.sh
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_33 = plugin_test_1 \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_2 \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_3 \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_4 \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_5 \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_6 \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_7 \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_8
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_34 = plugin_test_1.sh \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_2.sh \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_3.sh \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_4.sh \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_6.sh \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_7.sh
 
 # Test that symbols known in the IR file but not in the replacement file
 # produce an unresolved symbol error.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@am__append_35 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_1.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_2.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_3.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_4.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_6.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_7.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_7.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_9.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_final_layout.stdout
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_35 = plugin_test_1.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_2.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_3.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_4.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_6.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_7.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_7.syms \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_9.err
 # Make a copy of two_file_test_1.o, which does not define the symbol _Z4t16av.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@am__append_36 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_1.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_2.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_3.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_4.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_4.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_6.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_7.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_9.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	two_file_test_1c.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	unused.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_37 = exclude_libs_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	local_labels_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_test
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_36 = plugin_test_1.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_2.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_3.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_4.a \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_4.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_6.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_7.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_9.err \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_1c.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_37 = plugin_test_tls
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_38 = plugin_test_tls.sh
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_39 = plugin_test_tls.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__append_40 = plugin_test_tls.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_41 = unused.c
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_42 = plugin_final_layout.sh
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_43 = plugin_final_layout.stdout plugin_final_layout_readelf.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_44 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exclude_libs_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	local_labels_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_test
 
 # Test that hidden and internal symbols in the main program cannot be
 # referenced by a shared library.
@@ -359,182 +419,192 @@
 # weak reference in a DSO.
 
 # Test that MEMORY region support works.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_38 = exclude_libs_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	hidden_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	retain_symbols_file_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	no_version_test.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	strong_ref_weak_def.sh \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	dyn_weak_ref.sh memory_test.sh
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_39 = exclude_libs_test.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_test.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_relocatable_test1.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_relocatable_test2.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	hidden_test.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	retain_symbols_file_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	no_version_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	strong_ref_weak_def.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	dyn_weak_ref.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	memory_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_40 = exclude_libs_test.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	libexclude_libs_test_1.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	libexclude_libs_test_2.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	alt/libexclude_libs_test_3.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_test.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_relocatable_test1.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_relocatable_test2.syms \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_relocatable_test1.out \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_relocatable_test2.out \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	hidden_test hidden_test.err \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	retain_symbols_file_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	retain_symbols_file_test.in \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	retain_symbols_file_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	searched_file_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	searched_file_test_lib.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	alt/searched_file_test_lib.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	libno_version_test.so \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	no_version_test.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	strong_ref_weak_def_1.so \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	strong_ref_weak_def_2.so \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	strong_ref_weak_def.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	dyn_weak_ref_1.so \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	dyn_weak_ref_2.so \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	dyn_weak_ref.stdout \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	memory_test.stdout memory_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	memory_test.o
-@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@am__append_41 = large
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_45 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exclude_libs_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	hidden_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	retain_symbols_file_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	no_version_test.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	strong_ref_weak_def.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dyn_weak_ref.sh \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	memory_test.sh
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_46 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exclude_libs_test.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_test.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_relocatable_test1.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_relocatable_test2.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	hidden_test.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	retain_symbols_file_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	no_version_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	strong_ref_weak_def.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dyn_weak_ref.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	memory_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_47 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exclude_libs_test.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	libexclude_libs_test_1.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	libexclude_libs_test_2.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	alt/libexclude_libs_test_3.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_test.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_relocatable_test1.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_relocatable_test2.syms \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_relocatable_test1.out \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_relocatable_test2.out \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	hidden_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	hidden_test.err \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	retain_symbols_file_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	retain_symbols_file_test.in \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	retain_symbols_file_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	searched_file_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	searched_file_test_lib.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	alt/searched_file_test_lib.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	libno_version_test.so \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	no_version_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	strong_ref_weak_def_1.so \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	strong_ref_weak_def_2.so \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	strong_ref_weak_def.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dyn_weak_ref_1.so \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dyn_weak_ref_2.so \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dyn_weak_ref.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	memory_test.stdout \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	memory_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	memory_test.o
+@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_48 = large
 @GCC_FALSE@large_DEPENDENCIES =
 @MCMODEL_MEDIUM_FALSE@large_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@large_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@large_DEPENDENCIES =
 
 # Test that if the output file already exists and is empty,
 # it will get execute permission.
 
 # Check -l:foo.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_42 = permission_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	searched_file_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_49 = permission_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	searched_file_test
 @GCC_FALSE@searched_file_test_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@searched_file_test_DEPENDENCIES =
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_43 = ifuncmain1static \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1picstatic
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_44 = ifuncmain1 \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1pic \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1vis \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1vispic \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1staticpic \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1pie \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1vispie \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1staticpie
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_45 = ifuncmain2static \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain2picstatic
+@TEST_AS_NATIVE_LINKER_FALSE@searched_file_test_DEPENDENCIES =
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_50 = ifuncmain1static \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1picstatic
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_51 =  \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1 \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1pic \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1vis \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1vispic \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1staticpic \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1pie \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1vispie \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1staticpie
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_52 = ifuncmain2static \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain2picstatic
 @GCC_FALSE@ifuncmain2static_DEPENDENCIES =
 @HAVE_STATIC_FALSE@ifuncmain2static_DEPENDENCIES =
 @IFUNC_FALSE@ifuncmain2static_DEPENDENCIES =
 @IFUNC_STATIC_FALSE@ifuncmain2static_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@ifuncmain2static_DEPENDENCIES =
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_46 = ifuncmain2 \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain2pic \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain3
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain2static_DEPENDENCIES =
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_53 =  \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain2 \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain2pic \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain3
 @GCC_FALSE@ifuncmain2_DEPENDENCIES =
 @IFUNC_FALSE@ifuncmain2_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@ifuncmain2_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain2_DEPENDENCIES =
 @GCC_FALSE@ifuncmain3_DEPENDENCIES =
 @IFUNC_FALSE@ifuncmain3_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@ifuncmain3_DEPENDENCIES =
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_47 = ifuncmain4static \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain4picstatic
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain3_DEPENDENCIES =
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_54 = ifuncmain4static \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain4picstatic
 @GCC_FALSE@ifuncmain4static_DEPENDENCIES =
 @HAVE_STATIC_FALSE@ifuncmain4static_DEPENDENCIES =
 @IFUNC_FALSE@ifuncmain4static_DEPENDENCIES =
 @IFUNC_STATIC_FALSE@ifuncmain4static_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@ifuncmain4static_DEPENDENCIES =
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_48 = ifuncmain4
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain4static_DEPENDENCIES =
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_55 = ifuncmain4
 @GCC_FALSE@ifuncmain4_DEPENDENCIES =
 @IFUNC_FALSE@ifuncmain4_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@ifuncmain4_DEPENDENCIES =
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_49 = ifuncmain5static \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5picstatic
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_50 = ifuncmain5 \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5pic \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5staticpic \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5pie \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain6pie
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_51 = ifuncmain7static \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain7picstatic
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain4_DEPENDENCIES =
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_56 = ifuncmain5static \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5picstatic
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_57 =  \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5 \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5pic \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5staticpic \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5pie \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain6pie
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_58 = ifuncmain7static \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain7picstatic
 @GCC_FALSE@ifuncmain7static_DEPENDENCIES =
 @HAVE_STATIC_FALSE@ifuncmain7static_DEPENDENCIES =
 @IFUNC_FALSE@ifuncmain7static_DEPENDENCIES =
 @IFUNC_STATIC_FALSE@ifuncmain7static_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@ifuncmain7static_DEPENDENCIES =
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__append_52 = ifuncmain7 \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain7pic \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain7pie \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncvar
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain7static_DEPENDENCIES =
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_59 =  \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain7 \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain7pic \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain7pie \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncvar
 @GCC_FALSE@ifuncmain7_DEPENDENCIES =
 @IFUNC_FALSE@ifuncmain7_DEPENDENCIES =
-@NATIVE_LINKER_FALSE@ifuncmain7_DEPENDENCIES =
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain7_DEPENDENCIES =
 
 # Test that --start-lib and --end-lib function correctly.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_53 = start_lib_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_60 = start_lib_test
 
 # Test that --gdb-index functions correctly without gcc-generated pubnames.
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@am__append_54 = gdb_index_test_1.sh
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@am__append_55 = gdb_index_test_1.stdout
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@am__append_56 = gdb_index_test_1.stdout gdb_index_test_1
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_61 = gdb_index_test_1.sh
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_62 = gdb_index_test_1.stdout
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_63 = gdb_index_test_1.stdout gdb_index_test_1
 
 # Test that --gdb-index functions correctly with compressed debug sections.
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__append_57 = gdb_index_test_2.sh
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__append_58 = gdb_index_test_2.stdout
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__append_59 = gdb_index_test_2.stdout gdb_index_test_2
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_64 = gdb_index_test_2.sh
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_65 = gdb_index_test_2.stdout
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_66 = gdb_index_test_2.stdout gdb_index_test_2
 
 # Another simple C test (DW_AT_high_pc encoding) for --gdb-index.
 
 # Test that --gdb-index functions correctly with gcc-generated pubnames.
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@am__append_60 = gdb_index_test_3.sh \
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	gdb_index_test_4.sh
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@am__append_61 = gdb_index_test_3.stdout \
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	gdb_index_test_4.stdout
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@am__append_62 = gdb_index_test_3.stdout \
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	gdb_index_test_3 \
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	gdb_index_test_4.stdout \
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	gdb_index_test_4
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_67 = gdb_index_test_3.sh \
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gdb_index_test_4.sh
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_68 = gdb_index_test_3.stdout \
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gdb_index_test_4.stdout
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_69 = gdb_index_test_3.stdout \
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gdb_index_test_3 \
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gdb_index_test_4.stdout \
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gdb_index_test_4
 
 # Test the --incremental-unchanged flag with an archive library.
 # The second link should not update the library.
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_63 = incremental_test_2 \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_3 \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_4 \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_5 \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_6 \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_copy_test \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_common_test_1 \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_comdat_test_1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_64 = two_file_test_tmp_2.o \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_tmp_3.o \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_4.base \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_tmp_4.o \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_5.a \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_6.a
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_70 = incremental_test_2 \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_3 \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_4 \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_5 \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_6 \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_copy_test \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_common_test_1 \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_comdat_test_1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__append_71 = two_file_test_tmp_2.o \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_tmp_3.o \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_4.base \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_tmp_4.o \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_5.a \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_6.a
 
 # These tests work with native and cross linkers.
 
 # Test script section order.
-@NATIVE_OR_CROSS_LINKER_TRUE@am__append_65 = script_test_10.sh
-@NATIVE_OR_CROSS_LINKER_TRUE@am__append_66 = script_test_10.stdout
+@NATIVE_OR_CROSS_LINKER_TRUE@am__append_72 = script_test_10.sh
+@NATIVE_OR_CROSS_LINKER_TRUE@am__append_73 = script_test_10.stdout
 
 # These tests work with cross linkers only.
-@DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_67 = split_i386.sh
-@DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_68 = split_i386_1.stdout split_i386_2.stdout \
+@DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_74 = split_i386.sh
+@DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_75 = split_i386_1.stdout split_i386_2.stdout \
 @DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	split_i386_3.stdout split_i386_4.stdout split_i386_r.stdout
 
-@DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_69 = split_i386_1 split_i386_2 split_i386_3 \
+@DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_76 = split_i386_1 split_i386_2 split_i386_3 \
 @DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	split_i386_4 split_i386_r
 
-@DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_70 = split_x86_64.sh
-@DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_71 = split_x86_64_1.stdout split_x86_64_2.stdout \
+@DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_77 = split_x86_64.sh
+@DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_78 = split_x86_64_1.stdout split_x86_64_2.stdout \
 @DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	split_x86_64_3.stdout split_x86_64_4.stdout split_x86_64_r.stdout
 
-@DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_72 = split_x86_64_1 split_x86_64_2 split_x86_64_3 \
+@DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_79 = split_x86_64_1 split_x86_64_2 split_x86_64_3 \
 @DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	split_x86_64_4 split_x86_64_r
 
 
@@ -549,7 +619,7 @@
 # Check Thumb to Thumb farcall veneers
 
 # Check Thumb to ARM farcall veneers
-@DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_73 = arm_abs_global.sh \
+@DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_80 = arm_abs_global.sh \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_branch_in_range.sh \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_branch_out_of_range.sh \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_fix_v4bx.sh \
@@ -563,7 +633,7 @@
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_arm_thumb.sh \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_thumb_thumb.sh \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_thumb_arm.sh
-@DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_74 = arm_abs_global.stdout \
+@DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_81 = arm_abs_global.stdout \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_bl_in_range.stdout \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_bl_out_of_range.stdout \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	thumb_bl_in_range.stdout \
@@ -608,7 +678,7 @@
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_thumb_thumb_6m.stdout \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_thumb_arm.stdout \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_thumb_arm_5t.stdout
-@DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_75 = arm_abs_global \
+@DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@am__append_82 = arm_abs_global \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_bl_in_range \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_bl_out_of_range \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	thumb_bl_in_range \
@@ -651,9 +721,9 @@
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_thumb_thumb_6m \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_thumb_arm \
 @DEFAULT_TARGET_ARM_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@	arm_farcall_thumb_arm_5t
-@DEFAULT_TARGET_X86_64_TRUE@am__append_76 = dwp_test_1.sh \
+@DEFAULT_TARGET_X86_64_TRUE@am__append_83 = dwp_test_1.sh \
 @DEFAULT_TARGET_X86_64_TRUE@	dwp_test_2.sh
-@DEFAULT_TARGET_X86_64_TRUE@am__append_77 = dwp_test_1.stdout \
+@DEFAULT_TARGET_X86_64_TRUE@am__append_84 = dwp_test_1.stdout \
 @DEFAULT_TARGET_X86_64_TRUE@	dwp_test_2.stdout
 subdir = testsuite
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
@@ -682,162 +752,157 @@
 @NATIVE_OR_CROSS_LINKER_TRUE@am__EXEEXT_1 = object_unittest$(EXEEXT) \
 @NATIVE_OR_CROSS_LINKER_TRUE@	binary_unittest$(EXEEXT) \
 @NATIVE_OR_CROSS_LINKER_TRUE@	leb128_unittest$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_2 = icf_virtual_function_folding_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	basic_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	basic_pic_test$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_3 = basic_static_test$(EXEEXT) \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@	basic_static_pic_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_4 = basic_pie_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	constructor_test$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_5 = constructor_static_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_6 = two_file_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_pic_test$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_7 = two_file_static_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_8 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_1_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_2_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_1_pic_2_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_2_pic_1_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_same_shared_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_separate_shared_12_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_separate_shared_21_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_relocatable_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_pie_test$(EXEEXT)
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_9 = two_file_shared_1_nonpic_test$(EXEEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_2_nonpic_test$(EXEEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_same_shared_nonpic_test$(EXEEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_separate_shared_12_nonpic_test$(EXEEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_separate_shared_21_nonpic_test$(EXEEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_mixed_shared_test$(EXEEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_mixed_2_shared_test$(EXEEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_mixed_pie_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_10 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_strip_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_same_shared_strip_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	common_test_1$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	common_test_2$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_shared_1_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_shared_2_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_same_shared_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_separate_shared_12_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_separate_shared_21_test$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_11 = exception_static_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_12 = weak_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_undef_test$(EXEEXT)
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_13 = weak_undef_nonpic_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_14 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_alias_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_plt$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	copy_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am__EXEEXT_15 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pic_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pie_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pie_pic_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_ie_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_gd_to_ie_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am__EXEEXT_16 = tls_shared_gnu2_gd_to_ie_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am__EXEEXT_17 = tls_shared_gnu2_test$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@am__EXEEXT_18 = tls_static_test$(EXEEXT) \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@	tls_static_pic_test$(EXEEXT)
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am__EXEEXT_19 = tls_shared_nonpic_test$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_20 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	many_sections_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	many_sections_r_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	initpri1$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	initpri2$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	initpri3a$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	flagstest_o_specialfile$(EXEEXT)
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_21 = flagstest_compress_debug_sections$(EXEEXT) \
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_22 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	flagstest_o_ttext_1$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_2$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_6$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_8$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_9$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_11$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_12$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_1$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_2$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_now_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_strip_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_script_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_1$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_2$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	justsyms$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	justsyms_exec$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	binary_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_3$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	tls_phdrs_script_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	tls_script_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	thin_archive_test_1$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	thin_archive_test_2$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@am__EXEEXT_23 = plugin_test_1$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_2$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_3$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_4$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_5$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_6$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_7$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	plugin_test_8$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_24 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exclude_libs_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	local_labels_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_test$(EXEEXT)
-@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_25 = large$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_26 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	permission_test$(EXEEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	searched_file_test$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_27 = ifuncmain1static$(EXEEXT) \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1picstatic$(EXEEXT)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_28 =  \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1pic$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1vis$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1vispic$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1staticpic$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1pie$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1vispie$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain1staticpie$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_29 = ifuncmain2static$(EXEEXT) \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain2picstatic$(EXEEXT)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_30 =  \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain2$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain2pic$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain3$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_31 = ifuncmain4static$(EXEEXT) \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain4picstatic$(EXEEXT)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_32 =  \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain4$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_33 = ifuncmain5static$(EXEEXT) \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5picstatic$(EXEEXT)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_34 =  \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5pic$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5staticpic$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain5pie$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain6pie$(EXEEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_35 = ifuncmain7static$(EXEEXT) \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain7picstatic$(EXEEXT)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_36 =  \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain7$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain7pic$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncmain7pie$(EXEEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncvar$(EXEEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_37 = start_lib_test$(EXEEXT)
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_38 = incremental_test_2$(EXEEXT) \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_3$(EXEEXT) \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_4$(EXEEXT) \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_5$(EXEEXT) \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_test_6$(EXEEXT) \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_copy_test$(EXEEXT) \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_common_test_1$(EXEEXT) \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	incremental_comdat_test_1$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_2 = icf_virtual_function_folding_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	basic_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	basic_pic_test$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_3 = basic_static_test$(EXEEXT) \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	basic_static_pic_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_4 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	basic_pie_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	constructor_test$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_5 = constructor_static_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_6 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_pic_test$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_7 = two_file_static_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_8 = two_file_shared_1_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_2_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_1_pic_2_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_2_pic_1_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_same_shared_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_separate_shared_12_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_separate_shared_21_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_relocatable_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_pie_test$(EXEEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_9 = two_file_shared_1_nonpic_test$(EXEEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_2_nonpic_test$(EXEEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_same_shared_nonpic_test$(EXEEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_separate_shared_12_nonpic_test$(EXEEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_separate_shared_21_nonpic_test$(EXEEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_mixed_shared_test$(EXEEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_mixed_2_shared_test$(EXEEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_mixed_pie_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_10 = two_file_strip_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_same_shared_strip_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	common_test_1$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	common_test_2$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_shared_1_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_shared_2_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_same_shared_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_separate_shared_12_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_separate_shared_21_test$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_11 = exception_static_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_12 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_undef_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_undef_test_2$(EXEEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_13 = weak_undef_nonpic_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_14 = weak_alias_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_plt$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	copy_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__EXEEXT_15 = tls_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pic_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pie_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_pie_pic_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_ie_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_shared_gd_to_ie_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am__EXEEXT_16 = tls_shared_gnu2_gd_to_ie_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am__EXEEXT_17 = tls_shared_gnu2_test$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__EXEEXT_18 = tls_static_test$(EXEEXT) \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_static_pic_test$(EXEEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__EXEEXT_19 = tls_shared_nonpic_test$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_20 = many_sections_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	many_sections_r_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	initpri1$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	initpri2$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	initpri3a$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	flagstest_o_specialfile$(EXEEXT)
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_21 = flagstest_compress_debug_sections$(EXEEXT) \
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_22 = flagstest_o_ttext_1$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_2$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_6$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_8$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_9$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_11$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_12$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_1$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_2$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_now_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_strip_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	relro_script_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_1$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_2$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	justsyms$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	justsyms_exec$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	binary_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_3$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	tls_phdrs_script_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	tls_script_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_11$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	dynamic_list_2$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	thin_archive_test_1$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	thin_archive_test_2$(EXEEXT)
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_23 = plugin_test_1$(EXEEXT) \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_2$(EXEEXT) \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_3$(EXEEXT) \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_4$(EXEEXT) \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_5$(EXEEXT) \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_6$(EXEEXT) \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_7$(EXEEXT) \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	plugin_test_8$(EXEEXT)
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__EXEEXT_24 = plugin_test_tls$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_25 = exclude_libs_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	local_labels_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	discard_locals_test$(EXEEXT)
+@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_26 = large$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_27 = permission_test$(EXEEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	searched_file_test$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_28 = ifuncmain1static$(EXEEXT) \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1picstatic$(EXEEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_29 = ifuncmain1$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1pic$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1vis$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1vispic$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1staticpic$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1pie$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1vispie$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain1staticpie$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_30 = ifuncmain2static$(EXEEXT) \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain2picstatic$(EXEEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_31 = ifuncmain2$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain2pic$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain3$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_32 = ifuncmain4static$(EXEEXT) \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain4picstatic$(EXEEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_33 = ifuncmain4$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_34 = ifuncmain5static$(EXEEXT) \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5picstatic$(EXEEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_35 = ifuncmain5$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5pic$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5staticpic$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain5pie$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain6pie$(EXEEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_36 = ifuncmain7static$(EXEEXT) \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain7picstatic$(EXEEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_37 = ifuncmain7$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain7pic$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncmain7pie$(EXEEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncvar$(EXEEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_38 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	start_lib_test$(EXEEXT)
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__EXEEXT_39 = incremental_test_2$(EXEEXT) \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_3$(EXEEXT) \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_4$(EXEEXT) \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_5$(EXEEXT) \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_test_6$(EXEEXT) \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_copy_test$(EXEEXT) \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_common_test_1$(EXEEXT) \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	incremental_comdat_test_1$(EXEEXT)
 basic_pic_test_SOURCES = basic_pic_test.c
 basic_pic_test_OBJECTS = basic_pic_test.$(OBJEXT)
 basic_pic_test_LDADD = $(LDADD)
@@ -869,8 +934,8 @@
 basic_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_binary_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	binary_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_binary_test_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	binary_test.$(OBJEXT)
 binary_test_OBJECTS = $(am_binary_test_OBJECTS)
 binary_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(binary_test_LDFLAGS) $(LDFLAGS) -o $@
@@ -881,35 +946,32 @@
 binary_unittest_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_common_test_1_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	common_test_1.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_common_test_1_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	common_test_1.$(OBJEXT)
 common_test_1_OBJECTS = $(am_common_test_1_OBJECTS)
 common_test_1_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(common_test_1_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_common_test_2_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	common_test_1.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_common_test_2_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	common_test_1.$(OBJEXT)
 common_test_2_OBJECTS = $(am_common_test_2_OBJECTS)
 common_test_2_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(common_test_2_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__objects_1 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	constructor_test.$(OBJEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am_constructor_static_test_OBJECTS = $(am__objects_1)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__objects_1 = constructor_test.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_constructor_static_test_OBJECTS = $(am__objects_1)
 constructor_static_test_OBJECTS =  \
 	$(am_constructor_static_test_OBJECTS)
 constructor_static_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(constructor_static_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_constructor_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	constructor_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_constructor_test_OBJECTS = constructor_test.$(OBJEXT)
 constructor_test_OBJECTS = $(am_constructor_test_OBJECTS)
 constructor_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(constructor_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_copy_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	copy_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_copy_test_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	copy_test.$(OBJEXT)
 copy_test_OBJECTS = $(am_copy_test_OBJECTS)
 copy_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(copy_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_discard_locals_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	discard_locals_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_discard_locals_test_OBJECTS = discard_locals_test.$(OBJEXT)
 discard_locals_test_OBJECTS = $(am_discard_locals_test_OBJECTS)
 discard_locals_test_LDADD = $(LDADD)
 discard_locals_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
@@ -917,57 +979,53 @@
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 discard_locals_test_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(discard_locals_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_exception_same_shared_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_dynamic_list_2_OBJECTS = dynamic_list_2.$(OBJEXT)
+dynamic_list_2_OBJECTS = $(am_dynamic_list_2_OBJECTS)
+dynamic_list_2_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+	$(dynamic_list_2_LDFLAGS) $(LDFLAGS) -o $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_exception_same_shared_test_OBJECTS = exception_test_main.$(OBJEXT)
 exception_same_shared_test_OBJECTS =  \
 	$(am_exception_same_shared_test_OBJECTS)
 exception_same_shared_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(exception_same_shared_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_exception_separate_shared_12_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_exception_separate_shared_12_test_OBJECTS = exception_test_main.$(OBJEXT)
 exception_separate_shared_12_test_OBJECTS =  \
 	$(am_exception_separate_shared_12_test_OBJECTS)
 exception_separate_shared_12_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(exception_separate_shared_12_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_exception_separate_shared_21_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_exception_separate_shared_21_test_OBJECTS = exception_test_main.$(OBJEXT)
 exception_separate_shared_21_test_OBJECTS =  \
 	$(am_exception_separate_shared_21_test_OBJECTS)
 exception_separate_shared_21_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(exception_separate_shared_21_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_exception_shared_1_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_2.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_exception_shared_1_test_OBJECTS = exception_test_2.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT)
 exception_shared_1_test_OBJECTS =  \
 	$(am_exception_shared_1_test_OBJECTS)
 exception_shared_1_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(exception_shared_1_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_exception_shared_2_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_1.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_exception_shared_2_test_OBJECTS = exception_test_1.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT)
 exception_shared_2_test_OBJECTS =  \
 	$(am_exception_shared_2_test_OBJECTS)
 exception_shared_2_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(exception_shared_2_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__objects_2 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_1.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_2.$(OBJEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am_exception_static_test_OBJECTS = $(am__objects_2)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__objects_2 = exception_test_main.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_1.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_2.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_exception_static_test_OBJECTS = $(am__objects_2)
 exception_static_test_OBJECTS = $(am_exception_static_test_OBJECTS)
 exception_static_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(exception_static_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_exception_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_main.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_1.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_2.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_exception_test_OBJECTS = exception_test_main.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_1.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_2.$(OBJEXT)
 exception_test_OBJECTS = $(am_exception_test_OBJECTS)
 exception_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(exception_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_exclude_libs_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exclude_libs_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_exclude_libs_test_OBJECTS = exclude_libs_test.$(OBJEXT)
 exclude_libs_test_OBJECTS = $(am_exclude_libs_test_OBJECTS)
 exclude_libs_test_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(exclude_libs_test_LDFLAGS) $(LDFLAGS) -o $@
@@ -1008,7 +1066,7 @@
 icf_virtual_function_folding_test_DEPENDENCIES = libgoldtest.a \
 	../libgold.a ../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain1_OBJECTS = ifuncmain1.$(OBJEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain1_OBJECTS = ifuncmain1.$(OBJEXT)
 ifuncmain1_OBJECTS = $(am_ifuncmain1_OBJECTS)
 ifuncmain1_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ifuncmain1_LDFLAGS) \
 	$(LDFLAGS) -o $@
@@ -1030,7 +1088,7 @@
 ifuncmain1pie_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain1static_OBJECTS = ifuncmain1.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain1static_OBJECTS = ifuncmain1.$(OBJEXT)
 ifuncmain1static_OBJECTS = $(am_ifuncmain1static_OBJECTS)
 ifuncmain1static_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(ifuncmain1static_LDFLAGS) $(LDFLAGS) -o $@
@@ -1046,7 +1104,7 @@
 ifuncmain1staticpie_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain1vis_OBJECTS = ifuncmain1vis.$(OBJEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain1vis_OBJECTS = ifuncmain1vis.$(OBJEXT)
 ifuncmain1vis_OBJECTS = $(am_ifuncmain1vis_OBJECTS)
 ifuncmain1vis_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(ifuncmain1vis_LDFLAGS) $(LDFLAGS) -o $@
@@ -1062,8 +1120,8 @@
 ifuncmain1vispie_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain2_OBJECTS = ifuncmain2.$(OBJEXT) \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncdep2.$(OBJEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain2_OBJECTS = ifuncmain2.$(OBJEXT) \
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncdep2.$(OBJEXT)
 ifuncmain2_OBJECTS = $(am_ifuncmain2_OBJECTS)
 ifuncmain2_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ifuncmain2_LDFLAGS) \
 	$(LDFLAGS) -o $@
@@ -1079,16 +1137,16 @@
 ifuncmain2picstatic_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain2static_OBJECTS = ifuncmain2.$(OBJEXT) \
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncdep2.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain2static_OBJECTS = ifuncmain2.$(OBJEXT) \
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ifuncdep2.$(OBJEXT)
 ifuncmain2static_OBJECTS = $(am_ifuncmain2static_OBJECTS)
 ifuncmain2static_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(ifuncmain2static_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain3_OBJECTS = ifuncmain3.$(OBJEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain3_OBJECTS = ifuncmain3.$(OBJEXT)
 ifuncmain3_OBJECTS = $(am_ifuncmain3_OBJECTS)
 ifuncmain3_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ifuncmain3_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain4_OBJECTS = ifuncmain4.$(OBJEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain4_OBJECTS = ifuncmain4.$(OBJEXT)
 ifuncmain4_OBJECTS = $(am_ifuncmain4_OBJECTS)
 ifuncmain4_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ifuncmain4_LDFLAGS) \
 	$(LDFLAGS) -o $@
@@ -1098,11 +1156,11 @@
 ifuncmain4picstatic_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain4static_OBJECTS = ifuncmain4.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain4static_OBJECTS = ifuncmain4.$(OBJEXT)
 ifuncmain4static_OBJECTS = $(am_ifuncmain4static_OBJECTS)
 ifuncmain4static_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(ifuncmain4static_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain5_OBJECTS = ifuncmain5.$(OBJEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain5_OBJECTS = ifuncmain5.$(OBJEXT)
 ifuncmain5_OBJECTS = $(am_ifuncmain5_OBJECTS)
 ifuncmain5_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ifuncmain5_LDFLAGS) \
 	$(LDFLAGS) -o $@
@@ -1124,7 +1182,7 @@
 ifuncmain5pie_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain5static_OBJECTS = ifuncmain5.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain5static_OBJECTS = ifuncmain5.$(OBJEXT)
 ifuncmain5static_OBJECTS = $(am_ifuncmain5static_OBJECTS)
 ifuncmain5static_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(ifuncmain5static_LDFLAGS) $(LDFLAGS) -o $@
@@ -1140,7 +1198,7 @@
 ifuncmain6pie_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain7_OBJECTS = ifuncmain7.$(OBJEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain7_OBJECTS = ifuncmain7.$(OBJEXT)
 ifuncmain7_OBJECTS = $(am_ifuncmain7_OBJECTS)
 ifuncmain7_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ifuncmain7_LDFLAGS) \
 	$(LDFLAGS) -o $@
@@ -1162,12 +1220,11 @@
 ifuncmain7pie_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncmain7static_OBJECTS = ifuncmain7.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncmain7static_OBJECTS = ifuncmain7.$(OBJEXT)
 ifuncmain7static_OBJECTS = $(am_ifuncmain7static_OBJECTS)
 ifuncmain7static_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(ifuncmain7static_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@am_ifuncvar_OBJECTS =  \
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	ifuncvar3.$(OBJEXT)
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ifuncvar_OBJECTS = ifuncvar3.$(OBJEXT)
 ifuncvar_OBJECTS = $(am_ifuncvar_OBJECTS)
 ifuncvar_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ifuncvar_LDFLAGS) \
 	$(LDFLAGS) -o $@
@@ -1221,32 +1278,32 @@
 incremental_test_6_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_initpri1_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	initpri1.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_initpri1_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	initpri1.$(OBJEXT)
 initpri1_OBJECTS = $(am_initpri1_OBJECTS)
 initpri1_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(initpri1_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_initpri2_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	initpri2.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_initpri2_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	initpri2.$(OBJEXT)
 initpri2_OBJECTS = $(am_initpri2_OBJECTS)
 initpri2_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(initpri2_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_initpri3a_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	initpri3.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_initpri3a_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	initpri3.$(OBJEXT)
 initpri3a_OBJECTS = $(am_initpri3a_OBJECTS)
 initpri3a_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(initpri3a_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_justsyms_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	justsyms_1.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_justsyms_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	justsyms_1.$(OBJEXT)
 justsyms_OBJECTS = $(am_justsyms_OBJECTS)
 justsyms_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(justsyms_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_justsyms_exec_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	justsyms_exec.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_justsyms_exec_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	justsyms_exec.$(OBJEXT)
 justsyms_exec_OBJECTS = $(am_justsyms_exec_OBJECTS)
 justsyms_exec_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(justsyms_exec_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@am_large_OBJECTS = large-large.$(OBJEXT)
+@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_large_OBJECTS = large-large.$(OBJEXT)
 large_OBJECTS = $(am_large_OBJECTS)
 large_LINK = $(CCLD) $(large_CFLAGS) $(CFLAGS) $(large_LDFLAGS) \
 	$(LDFLAGS) -o $@
@@ -1269,8 +1326,7 @@
 many_sections_r_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_many_sections_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	many_sections_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_many_sections_test_OBJECTS = many_sections_test.$(OBJEXT)
 many_sections_test_OBJECTS = $(am_many_sections_test_OBJECTS)
 many_sections_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(many_sections_test_LDFLAGS) $(LDFLAGS) -o $@
@@ -1335,48 +1391,54 @@
 plugin_test_8_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_protected_1_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_main_1.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_main_2.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_main_3.$(OBJEXT)
+plugin_test_tls_SOURCES = plugin_test_tls.c
+plugin_test_tls_OBJECTS = plugin_test_tls.$(OBJEXT)
+plugin_test_tls_LDADD = $(LDADD)
+plugin_test_tls_DEPENDENCIES = libgoldtest.a ../libgold.a \
+	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_protected_1_OBJECTS = protected_main_1.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_main_2.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_main_3.$(OBJEXT)
 protected_1_OBJECTS = $(am_protected_1_OBJECTS)
 protected_1_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(protected_1_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_protected_2_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_main_1.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_3.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_protected_2_OBJECTS = protected_main_1.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_3.$(OBJEXT)
 protected_2_OBJECTS = $(am_protected_2_OBJECTS)
 protected_2_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(protected_2_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_relro_now_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_relro_now_test_OBJECTS = relro_test_main.$(OBJEXT)
 relro_now_test_OBJECTS = $(am_relro_now_test_OBJECTS)
 relro_now_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(relro_now_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_relro_script_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_relro_script_test_OBJECTS = relro_test_main.$(OBJEXT)
 relro_script_test_OBJECTS = $(am_relro_script_test_OBJECTS)
 relro_script_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(relro_script_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_relro_strip_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_relro_strip_test_OBJECTS = relro_test_main.$(OBJEXT)
 relro_strip_test_OBJECTS = $(am_relro_strip_test_OBJECTS)
 relro_strip_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(relro_strip_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_relro_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	relro_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_relro_test_OBJECTS = relro_test_main.$(OBJEXT)
 relro_test_OBJECTS = $(am_relro_test_OBJECTS)
 relro_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(relro_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_script_test_1_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_1.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_script_test_1_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_1.$(OBJEXT)
 script_test_1_OBJECTS = $(am_script_test_1_OBJECTS)
 script_test_1_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(script_test_1_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_script_test_2_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_2.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_2a.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	script_test_2b.$(OBJEXT)
+script_test_11_SOURCES = script_test_11.c
+script_test_11_OBJECTS = script_test_11.$(OBJEXT)
+script_test_11_LDADD = $(LDADD)
+script_test_11_DEPENDENCIES = libgoldtest.a ../libgold.a \
+	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_script_test_2_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_2.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_2a.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	script_test_2b.$(OBJEXT)
 script_test_2_OBJECTS = $(am_script_test_2_OBJECTS)
 script_test_2_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(script_test_2_LDFLAGS) $(LDFLAGS) -o $@
@@ -1386,8 +1448,7 @@
 script_test_3_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_searched_file_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	searched_file_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_searched_file_test_OBJECTS = searched_file_test.$(OBJEXT)
 searched_file_test_OBJECTS = $(am_searched_file_test_OBJECTS)
 searched_file_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(searched_file_test_LDFLAGS) $(LDFLAGS) -o $@
@@ -1397,28 +1458,25 @@
 start_lib_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_thin_archive_test_1_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	thin_archive_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_thin_archive_test_1_OBJECTS = thin_archive_main.$(OBJEXT)
 thin_archive_test_1_OBJECTS = $(am_thin_archive_test_1_OBJECTS)
 thin_archive_test_1_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(thin_archive_test_1_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_thin_archive_test_2_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	thin_archive_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_thin_archive_test_2_OBJECTS = thin_archive_main.$(OBJEXT)
 thin_archive_test_2_OBJECTS = $(am_thin_archive_test_2_OBJECTS)
 thin_archive_test_2_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(thin_archive_test_2_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am__objects_3 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_file2.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_main.$(OBJEXT)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_tls_phdrs_script_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__objects_3)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__objects_3 = tls_test.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_file2.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_tls_phdrs_script_test_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(am__objects_3)
 tls_phdrs_script_test_OBJECTS = $(am_tls_phdrs_script_test_OBJECTS)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am__DEPENDENCIES_2 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_c.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__DEPENDENCIES_2 =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_c.o
 tls_phdrs_script_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_phdrs_script_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_pic_test_OBJECTS = tls_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_pic_test_OBJECTS = tls_test_main.$(OBJEXT)
 tls_pic_test_OBJECTS = $(am_tls_pic_test_OBJECTS)
 tls_pic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_pic_test_LDFLAGS) $(LDFLAGS) -o $@
@@ -1434,59 +1492,57 @@
 tls_pie_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_tls_script_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(am__objects_3)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_tls_script_test_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(am__objects_3)
 tls_script_test_OBJECTS = $(am_tls_script_test_OBJECTS)
 tls_script_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_script_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_shared_gd_to_ie_test_OBJECTS = tls_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_shared_gd_to_ie_test_OBJECTS = tls_test_main.$(OBJEXT)
 tls_shared_gd_to_ie_test_OBJECTS =  \
 	$(am_tls_shared_gd_to_ie_test_OBJECTS)
 tls_shared_gd_to_ie_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_shared_gd_to_ie_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am_tls_shared_gnu2_gd_to_ie_test_OBJECTS = tls_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am_tls_shared_gnu2_gd_to_ie_test_OBJECTS = tls_test_main.$(OBJEXT)
 tls_shared_gnu2_gd_to_ie_test_OBJECTS =  \
 	$(am_tls_shared_gnu2_gd_to_ie_test_OBJECTS)
 tls_shared_gnu2_gd_to_ie_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(tls_shared_gnu2_gd_to_ie_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am_tls_shared_gnu2_test_OBJECTS = tls_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@am_tls_shared_gnu2_test_OBJECTS = tls_test_main.$(OBJEXT)
 tls_shared_gnu2_test_OBJECTS = $(am_tls_shared_gnu2_test_OBJECTS)
 tls_shared_gnu2_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_shared_gnu2_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_shared_ie_test_OBJECTS = tls_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_shared_ie_test_OBJECTS = tls_test_main.$(OBJEXT)
 tls_shared_ie_test_OBJECTS = $(am_tls_shared_ie_test_OBJECTS)
 tls_shared_ie_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_shared_ie_test_LDFLAGS) $(LDFLAGS) -o $@
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_shared_nonpic_test_OBJECTS = tls_test_main.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_shared_nonpic_test_OBJECTS = tls_test_main.$(OBJEXT)
 tls_shared_nonpic_test_OBJECTS = $(am_tls_shared_nonpic_test_OBJECTS)
 tls_shared_nonpic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_shared_nonpic_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_shared_test_OBJECTS = tls_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_shared_test_OBJECTS = tls_test_main.$(OBJEXT)
 tls_shared_test_OBJECTS = $(am_tls_shared_test_OBJECTS)
 tls_shared_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_shared_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am__objects_4 = tls_test_main.$(OBJEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@am_tls_static_pic_test_OBJECTS = $(am__objects_4)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__objects_4 = tls_test_main.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_static_pic_test_OBJECTS = $(am__objects_4)
 tls_static_pic_test_OBJECTS = $(am_tls_static_pic_test_OBJECTS)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am__DEPENDENCIES_3 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_pic.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_file2_pic.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_c_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am__DEPENDENCIES_3 = tls_test_pic.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_file2_pic.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_c_pic.o
 tls_static_pic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_static_pic_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@am_tls_static_test_OBJECTS = $(am__objects_3)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_static_test_OBJECTS = $(am__objects_3)
 tls_static_test_OBJECTS = $(am_tls_static_test_OBJECTS)
 tls_static_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_static_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_file2.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@am_tls_test_OBJECTS = tls_test.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_file2.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_main.$(OBJEXT)
 tls_test_OBJECTS = $(am_tls_test_OBJECTS)
 tls_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(tls_test_LDFLAGS) $(LDFLAGS) -o $@
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_mixed_2_shared_test_OBJECTS = two_file_test_main.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_mixed_2_shared_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_mixed_2_shared_test_OBJECTS =  \
 	$(am_two_file_mixed_2_shared_test_OBJECTS)
 two_file_mixed_2_shared_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
@@ -1498,13 +1554,12 @@
 two_file_mixed_pie_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_mixed_shared_test_OBJECTS = two_file_test_main.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_mixed_shared_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_mixed_shared_test_OBJECTS =  \
 	$(am_two_file_mixed_shared_test_OBJECTS)
 two_file_mixed_shared_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(two_file_mixed_shared_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_pic_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_pic_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_pic_test_OBJECTS = $(am_two_file_pic_test_OBJECTS)
 two_file_pic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(two_file_pic_test_LDFLAGS) $(LDFLAGS) -o $@
@@ -1514,105 +1569,95 @@
 two_file_pie_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_relocatable_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_relocatable_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_relocatable_test_OBJECTS =  \
 	$(am_two_file_relocatable_test_OBJECTS)
 two_file_relocatable_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(two_file_relocatable_test_LDFLAGS) $(LDFLAGS) -o $@
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_same_shared_nonpic_test_OBJECTS = two_file_test_main.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_same_shared_nonpic_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_same_shared_nonpic_test_OBJECTS =  \
 	$(am_two_file_same_shared_nonpic_test_OBJECTS)
 two_file_same_shared_nonpic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_same_shared_nonpic_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_same_shared_strip_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_same_shared_strip_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_same_shared_strip_test_OBJECTS =  \
 	$(am_two_file_same_shared_strip_test_OBJECTS)
 two_file_same_shared_strip_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_same_shared_strip_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_same_shared_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_same_shared_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_same_shared_test_OBJECTS =  \
 	$(am_two_file_same_shared_test_OBJECTS)
 two_file_same_shared_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(two_file_same_shared_test_LDFLAGS) $(LDFLAGS) -o $@
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_separate_shared_12_nonpic_test_OBJECTS = two_file_test_main.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_separate_shared_12_nonpic_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_separate_shared_12_nonpic_test_OBJECTS =  \
 	$(am_two_file_separate_shared_12_nonpic_test_OBJECTS)
 two_file_separate_shared_12_nonpic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_separate_shared_12_nonpic_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_separate_shared_12_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_separate_shared_12_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_separate_shared_12_test_OBJECTS =  \
 	$(am_two_file_separate_shared_12_test_OBJECTS)
 two_file_separate_shared_12_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_separate_shared_12_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_separate_shared_21_nonpic_test_OBJECTS = two_file_test_main.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_separate_shared_21_nonpic_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_separate_shared_21_nonpic_test_OBJECTS =  \
 	$(am_two_file_separate_shared_21_nonpic_test_OBJECTS)
 two_file_separate_shared_21_nonpic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_separate_shared_21_nonpic_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_separate_shared_21_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_separate_shared_21_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_separate_shared_21_test_OBJECTS =  \
 	$(am_two_file_separate_shared_21_test_OBJECTS)
 two_file_separate_shared_21_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_separate_shared_21_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_shared_1_nonpic_test_OBJECTS = two_file_test_2.$(OBJEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_shared_1_nonpic_test_OBJECTS = two_file_test_2.$(OBJEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
 two_file_shared_1_nonpic_test_OBJECTS =  \
 	$(am_two_file_shared_1_nonpic_test_OBJECTS)
 two_file_shared_1_nonpic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_shared_1_nonpic_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_shared_1_pic_2_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_shared_1_pic_2_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_shared_1_pic_2_test_OBJECTS =  \
 	$(am_two_file_shared_1_pic_2_test_OBJECTS)
 two_file_shared_1_pic_2_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_shared_1_pic_2_test_LDFLAGS) $(LDFLAGS) \
 	-o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_shared_1_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_2.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_shared_1_test_OBJECTS = two_file_test_2.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
 two_file_shared_1_test_OBJECTS = $(am_two_file_shared_1_test_OBJECTS)
 two_file_shared_1_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(two_file_shared_1_test_LDFLAGS) $(LDFLAGS) -o $@
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_shared_2_nonpic_test_OBJECTS = two_file_test_1.$(OBJEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1b.$(OBJEXT) \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_shared_2_nonpic_test_OBJECTS = two_file_test_1.$(OBJEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_1b.$(OBJEXT) \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
 two_file_shared_2_nonpic_test_OBJECTS =  \
 	$(am_two_file_shared_2_nonpic_test_OBJECTS)
 two_file_shared_2_nonpic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_shared_2_nonpic_test_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_shared_2_pic_1_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_shared_2_pic_1_test_OBJECTS = two_file_test_main.$(OBJEXT)
 two_file_shared_2_pic_1_test_OBJECTS =  \
 	$(am_two_file_shared_2_pic_1_test_OBJECTS)
 two_file_shared_2_pic_1_test_LINK = $(CXXLD) $(AM_CXXFLAGS) \
 	$(CXXFLAGS) $(two_file_shared_2_pic_1_test_LDFLAGS) $(LDFLAGS) \
 	-o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_shared_2_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1b.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_shared_2_test_OBJECTS = two_file_test_1.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_1b.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
 two_file_shared_2_test_OBJECTS = $(am_two_file_shared_2_test_OBJECTS)
 two_file_shared_2_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(two_file_shared_2_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am__objects_5 =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1b.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_2.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_static_test_OBJECTS = $(am__objects_5)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am__objects_5 = two_file_test_1.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_1b.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_2.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_static_test_OBJECTS = $(am__objects_5)
 two_file_static_test_OBJECTS = $(am_two_file_static_test_OBJECTS)
 two_file_static_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(two_file_static_test_LDFLAGS) $(LDFLAGS) -o $@
@@ -1622,51 +1667,45 @@
 two_file_strip_test_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_two_file_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1b.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_2.$(OBJEXT) \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_two_file_test_OBJECTS = two_file_test_1.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_1b.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_2.$(OBJEXT) \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
 two_file_test_OBJECTS = $(am_two_file_test_OBJECTS)
 two_file_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(two_file_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ver_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ver_test_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_main.$(OBJEXT)
 ver_test_OBJECTS = $(am_ver_test_OBJECTS)
 ver_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(ver_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ver_test_11_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_main_2.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ver_test_11_OBJECTS = ver_test_main_2.$(OBJEXT)
 ver_test_11_OBJECTS = $(am_ver_test_11_OBJECTS)
 ver_test_11_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(ver_test_11_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ver_test_12_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_main_2.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ver_test_12_OBJECTS = ver_test_main_2.$(OBJEXT)
 ver_test_12_OBJECTS = $(am_ver_test_12_OBJECTS)
 ver_test_12_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(ver_test_12_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ver_test_2_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_main_2.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ver_test_2_OBJECTS = ver_test_main_2.$(OBJEXT)
 ver_test_2_OBJECTS = $(am_ver_test_2_OBJECTS)
 ver_test_2_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(ver_test_2_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ver_test_6_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_6.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ver_test_6_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_6.$(OBJEXT)
 ver_test_6_OBJECTS = $(am_ver_test_6_OBJECTS)
 ver_test_6_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(ver_test_6_LDFLAGS) \
 	$(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ver_test_8_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ver_test_8_OBJECTS = two_file_test_main.$(OBJEXT)
 ver_test_8_OBJECTS = $(am_ver_test_8_OBJECTS)
 ver_test_8_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(ver_test_8_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_ver_test_9_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	ver_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_ver_test_9_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	ver_test_main.$(OBJEXT)
 ver_test_9_OBJECTS = $(am_ver_test_9_OBJECTS)
 ver_test_9_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(ver_test_9_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_weak_alias_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_alias_test_main.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_weak_alias_test_OBJECTS = weak_alias_test_main.$(OBJEXT)
 weak_alias_test_OBJECTS = $(am_weak_alias_test_OBJECTS)
 weak_alias_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(weak_alias_test_LDFLAGS) $(LDFLAGS) -o $@
@@ -1676,20 +1715,23 @@
 weak_plt_DEPENDENCIES = libgoldtest.a ../libgold.a \
 	../../libiberty/libiberty.a $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_weak_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_weak_test_OBJECTS =  \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_test.$(OBJEXT)
 weak_test_OBJECTS = $(am_weak_test_OBJECTS)
 weak_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(weak_test_LDFLAGS) $(LDFLAGS) -o $@
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@am_weak_undef_nonpic_test_OBJECTS = weak_undef_test.$(OBJEXT)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_weak_undef_nonpic_test_OBJECTS = weak_undef_test.$(OBJEXT)
 weak_undef_nonpic_test_OBJECTS = $(am_weak_undef_nonpic_test_OBJECTS)
 weak_undef_nonpic_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(weak_undef_nonpic_test_LDFLAGS) $(LDFLAGS) -o $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@am_weak_undef_test_OBJECTS =  \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_undef_test.$(OBJEXT)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_weak_undef_test_OBJECTS = weak_undef_test.$(OBJEXT)
 weak_undef_test_OBJECTS = $(am_weak_undef_test_OBJECTS)
 weak_undef_test_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
 	$(weak_undef_test_LDFLAGS) $(LDFLAGS) -o $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@am_weak_undef_test_2_OBJECTS = weak_undef_test_2.$(OBJEXT)
+weak_undef_test_2_OBJECTS = $(am_weak_undef_test_2_OBJECTS)
+weak_undef_test_2_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+	$(weak_undef_test_2_LDFLAGS) $(LDFLAGS) -o $@
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/../depcomp
 am__depfiles_maybe = depfiles
@@ -1709,6 +1751,7 @@
 	$(common_test_1_SOURCES) $(common_test_2_SOURCES) \
 	$(constructor_static_test_SOURCES) $(constructor_test_SOURCES) \
 	$(copy_test_SOURCES) $(discard_locals_test_SOURCES) \
+	$(dynamic_list_2_SOURCES) \
 	$(exception_same_shared_test_SOURCES) \
 	$(exception_separate_shared_12_test_SOURCES) \
 	$(exception_separate_shared_21_test_SOURCES) \
@@ -1743,11 +1786,12 @@
 	$(object_unittest_SOURCES) permission_test.c plugin_test_1.c \
 	plugin_test_2.c plugin_test_3.c plugin_test_4.c \
 	plugin_test_5.c plugin_test_6.c plugin_test_7.c \
-	plugin_test_8.c $(protected_1_SOURCES) $(protected_2_SOURCES) \
-	$(relro_now_test_SOURCES) $(relro_script_test_SOURCES) \
-	$(relro_strip_test_SOURCES) $(relro_test_SOURCES) \
-	$(script_test_1_SOURCES) $(script_test_2_SOURCES) \
-	script_test_3.c $(searched_file_test_SOURCES) start_lib_test.c \
+	plugin_test_8.c plugin_test_tls.c $(protected_1_SOURCES) \
+	$(protected_2_SOURCES) $(relro_now_test_SOURCES) \
+	$(relro_script_test_SOURCES) $(relro_strip_test_SOURCES) \
+	$(relro_test_SOURCES) $(script_test_1_SOURCES) \
+	script_test_11.c $(script_test_2_SOURCES) script_test_3.c \
+	$(searched_file_test_SOURCES) start_lib_test.c \
 	$(thin_archive_test_1_SOURCES) $(thin_archive_test_2_SOURCES) \
 	$(tls_phdrs_script_test_SOURCES) $(tls_pic_test_SOURCES) \
 	tls_pie_pic_test.c tls_pie_test.c $(tls_script_test_SOURCES) \
@@ -1780,7 +1824,8 @@
 	$(ver_test_2_SOURCES) $(ver_test_6_SOURCES) \
 	$(ver_test_8_SOURCES) $(ver_test_9_SOURCES) \
 	$(weak_alias_test_SOURCES) weak_plt.c $(weak_test_SOURCES) \
-	$(weak_undef_nonpic_test_SOURCES) $(weak_undef_test_SOURCES)
+	$(weak_undef_nonpic_test_SOURCES) $(weak_undef_test_SOURCES) \
+	$(weak_undef_test_2_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 am__tty_colors = \
@@ -2023,22 +2068,23 @@
 MOSTLYCLEANFILES = *.so *.syms *.stdout $(am__append_4) \
 	$(am__append_17) $(am__append_26) $(am__append_28) \
 	$(am__append_30) $(am__append_36) $(am__append_40) \
-	$(am__append_56) $(am__append_59) $(am__append_62) \
-	$(am__append_64) $(am__append_69) $(am__append_72) \
-	$(am__append_75)
+	$(am__append_41) $(am__append_47) $(am__append_63) \
+	$(am__append_66) $(am__append_69) $(am__append_71) \
+	$(am__append_76) $(am__append_79) $(am__append_82)
 
 # We will add to these later, for each individual test.  Note
 # that we add each test under check_SCRIPTS or check_PROGRAMS;
 # the TESTS variable is automatically populated from these.
 check_SCRIPTS = $(am__append_2) $(am__append_34) $(am__append_38) \
-	$(am__append_54) $(am__append_57) $(am__append_60) \
-	$(am__append_65) $(am__append_67) $(am__append_70) \
-	$(am__append_73) $(am__append_76)
+	$(am__append_42) $(am__append_45) $(am__append_61) \
+	$(am__append_64) $(am__append_67) $(am__append_72) \
+	$(am__append_74) $(am__append_77) $(am__append_80) \
+	$(am__append_83)
 check_DATA = $(am__append_3) $(am__append_27) $(am__append_29) \
-	$(am__append_35) $(am__append_39) $(am__append_55) \
-	$(am__append_58) $(am__append_61) $(am__append_66) \
-	$(am__append_68) $(am__append_71) $(am__append_74) \
-	$(am__append_77)
+	$(am__append_35) $(am__append_39) $(am__append_43) \
+	$(am__append_46) $(am__append_62) $(am__append_65) \
+	$(am__append_68) $(am__append_73) $(am__append_75) \
+	$(am__append_78) $(am__append_81) $(am__append_84)
 BUILT_SOURCES = $(am__append_25)
 TESTS = $(check_SCRIPTS) $(check_PROGRAMS)
 
@@ -2057,439 +2103,447 @@
 @NATIVE_OR_CROSS_LINKER_TRUE@object_unittest_SOURCES = object_unittest.cc
 @NATIVE_OR_CROSS_LINKER_TRUE@binary_unittest_SOURCES = binary_unittest.cc
 @NATIVE_OR_CROSS_LINKER_TRUE@leb128_unittest_SOURCES = leb128_unittest.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@constructor_test_SOURCES = constructor_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@constructor_test_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@constructor_test_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@constructor_test_LDADD = 
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@constructor_static_test_SOURCES = $(constructor_test_SOURCES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@constructor_static_test_DEPENDENCIES = $(constructor_test_DEPENDENCIES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@constructor_static_test_LDFLAGS = $(constructor_test_LDFLAGS) -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@constructor_static_test_LDADD = $(constructor_test_LDADD)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_SOURCES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1.cc \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1b.cc \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_2.cc \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_main.cc \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test.h
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@constructor_test_SOURCES = constructor_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@constructor_test_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@constructor_test_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@constructor_test_LDADD = 
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@constructor_static_test_SOURCES = $(constructor_test_SOURCES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@constructor_static_test_DEPENDENCIES = $(constructor_test_DEPENDENCIES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@constructor_static_test_LDFLAGS = $(constructor_test_LDFLAGS) -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@constructor_static_test_LDADD = $(constructor_test_LDADD)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_SOURCES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_1.cc \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_1b.cc \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_2.cc \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_main.cc \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test.h
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_LDADD = 
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@two_file_static_test_SOURCES = $(two_file_test_SOURCES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@two_file_static_test_DEPENDENCIES = $(two_file_test_DEPENDENCIES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@two_file_static_test_LDFLAGS = $(two_file_test_LDFLAGS) -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@two_file_static_test_LDADD = $(two_file_test_LDADD)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_LDADD = 
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_static_test_SOURCES = $(two_file_test_SOURCES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_static_test_DEPENDENCIES = $(two_file_test_DEPENDENCIES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_static_test_LDFLAGS = $(two_file_test_LDFLAGS) -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_static_test_LDADD = $(two_file_test_LDADD)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_pic_test_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_pic_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_test_LDADD = two_file_shared_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_test_LDADD = two_file_shared_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_2.so two_file_test_1_pic.o two_file_test_1b_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_pic_test_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_test_LDADD = two_file_shared_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_test_LDADD = two_file_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_2.so two_file_test_1_pic.o two_file_test_1b_pic.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_shared_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_2.so two_file_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_pic_2_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_2.so two_file_test_2_pic.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_LDADD = two_file_test_2_pic.o two_file_shared_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_test_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_test_LDADD = two_file_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_pic_1_test_LDADD = two_file_test_2_pic.o two_file_shared_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_test_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_test_LDADD = two_file_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_LDADD = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_1.so two_file_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_12_test_LDADD = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_1.so two_file_shared_2.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_21_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_test_LDADD = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_2.so two_file_shared_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_21_test_LDADD = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_2.so two_file_shared_1.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_relocatable_test_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_relocatable_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_relocatable.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_relocatable_test_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_relocatable_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_relocatable.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_relocatable_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_relocatable_test_LDADD = two_file_relocatable.o
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_SOURCES = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_2.cc two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_relocatable_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_relocatable_test_LDADD = two_file_relocatable.o
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_SOURCES = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_2.cc two_file_test_main.cc
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_DEPENDENCIES = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_DEPENDENCIES = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1_nonpic.so
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_SOURCES = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_SOURCES = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_DEPENDENCIES = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_2_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_DEPENDENCIES = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_2_nonpic.so
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_nonpic_test_DEPENDENCIES = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_nonpic_test_DEPENDENCIES = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_nonpic.so
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_12_nonpic_test_LDADD = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_12_nonpic_test_LDADD = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_LDADD = \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_separate_shared_21_nonpic_test_LDADD = \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
 
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_SOURCES = two_file_test_main.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed_1.so two_file_shared_2.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_LDADD = two_file_shared_mixed_1.so two_file_shared_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_strip_test_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_strip_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_strip.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_SOURCES = two_file_test_main.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed_1.so two_file_shared_2.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_2_shared_test_LDADD = two_file_shared_mixed_1.so two_file_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_strip_test_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_strip_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld two_file_shared_strip.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_same_shared_strip_test_LDADD = two_file_shared_strip.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_1_SOURCES = common_test_1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_1_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_1_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_1_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_2_SOURCES = common_test_1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_2_DEPENDENCIES = common_test_2.so common_test_3.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_2_LDADD = common_test_2.so common_test_3.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_SOURCES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_main.cc \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_1.cc \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test_2.cc \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_test.h
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_same_shared_strip_test_LDADD = two_file_shared_strip.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_1_SOURCES = common_test_1.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_1_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_1_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_1_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_2_SOURCES = common_test_1.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_2_DEPENDENCIES = common_test_2.so common_test_3.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_2_LDADD = common_test_2.so common_test_3.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_test_SOURCES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_main.cc \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_1.cc \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test_2.cc \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_test.h
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_LDADD = 
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@exception_static_test_SOURCES = $(exception_test_SOURCES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@exception_static_test_DEPENDENCIES = $(exception_test_DEPENDENCIES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@exception_static_test_LDFLAGS = $(exception_test_LDFLAGS) -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@exception_static_test_LDADD = $(exception_test_LDADD)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_1_test_LDADD = exception_shared_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_2_test_LDADD = exception_shared_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_same_shared_test_SOURCES = exception_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_same_shared_test_LDADD = exception_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_12_test_SOURCES = exception_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_12_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld exception_shared_1.so exception_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_test_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_test_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_test_LDADD = 
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_static_test_SOURCES = $(exception_test_SOURCES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_static_test_DEPENDENCIES = $(exception_test_DEPENDENCIES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_static_test_LDFLAGS = $(exception_test_LDFLAGS) -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_static_test_LDADD = $(exception_test_LDADD)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_1_test_LDADD = exception_shared_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_2_test_LDADD = exception_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_same_shared_test_SOURCES = exception_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_same_shared_test_LDADD = exception_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_separate_shared_12_test_SOURCES = exception_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_separate_shared_12_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld exception_shared_1.so exception_shared_2.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_12_test_LDADD = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_shared_1.so exception_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_separate_shared_12_test_LDADD = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_shared_1.so exception_shared_2.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_21_test_SOURCES = exception_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_21_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld exception_shared_1.so exception_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_separate_shared_21_test_SOURCES = exception_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_separate_shared_21_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld exception_shared_1.so exception_shared_2.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_separate_shared_21_test_LDADD = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	exception_shared_2.so exception_shared_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_separate_shared_21_test_LDADD = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	exception_shared_2.so exception_shared_1.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_test_SOURCES = weak_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_test_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_test_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_test_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_test_SOURCES = weak_undef_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib.so alt/weak_undef_lib.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_test_LDADD = -L . weak_undef_lib.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_nonpic_test_SOURCES = weak_undef_test.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_nonpic_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib_nonpic.so alt/weak_undef_lib_nonpic.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_nonpic_test_LDADD = -L . weak_undef_lib_nonpic.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_SOURCES = weak_alias_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_DEPENDENCIES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld weak_alias_test_1.so weak_alias_test_2.so \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_alias_test_3.o weak_alias_test_4.so weak_alias_test_5.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_test_SOURCES = weak_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_test_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_test_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_test_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_test_SOURCES = weak_undef_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib.so alt/weak_undef_lib.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_test_LDADD = -L . weak_undef_lib.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_test_2_SOURCES = weak_undef_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_test_2_DEPENDENCIES = gcctestdir/ld libweak_undef_2.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_test_2_LDFLAGS = -Bgcctestdir/ -u weak_undef_2
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_test_2_LDADD = -L . -lweak_undef_2
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_nonpic_test_SOURCES = weak_undef_test.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_nonpic_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib_nonpic.so alt/weak_undef_lib_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_nonpic_test_LDADD = -L . weak_undef_lib_nonpic.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_SOURCES = weak_alias_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_DEPENDENCIES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld weak_alias_test_1.so weak_alias_test_2.so \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_alias_test_3.o weak_alias_test_4.so weak_alias_test_5.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_LDADD = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_alias_test_1.so weak_alias_test_2.so weak_alias_test_3.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	weak_alias_test_4.so weak_alias_test_5.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_LDADD = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_alias_test_1.so weak_alias_test_2.so weak_alias_test_3.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	weak_alias_test_4.so weak_alias_test_5.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@copy_test_SOURCES = copy_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@copy_test_DEPENDENCIES = gcctestdir/ld copy_test_1.so copy_test_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@copy_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@copy_test_LDADD = copy_test_1.so copy_test_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_DEPENDENCIES = gcctestdir/ld tls_test_c.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_LDADD = tls_test_c.o -lpthread
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_SOURCES = tls_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_c_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@copy_test_SOURCES = copy_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@copy_test_DEPENDENCIES = gcctestdir/ld copy_test_1.so copy_test_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@copy_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@copy_test_LDADD = copy_test_1.so copy_test_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_DEPENDENCIES = gcctestdir/ld tls_test_c.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_LDADD = tls_test_c.o -lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_SOURCES = tls_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_c_pic.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	-lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	-lpthread
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_SOURCES = tls_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_LDADD = tls_test_shared.so -lpthread
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_ie_test_SOURCES = tls_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_ie_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_ie_test_LDADD = tls_test_ie_shared.so -lpthread
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_gd_to_ie_test_SOURCES = tls_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_c_pic.o tls_test_shared2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_SOURCES = tls_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_test_LDADD = tls_test_shared.so -lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_ie_test_SOURCES = tls_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_ie_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_ie_test_LDADD = tls_test_ie_shared.so -lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_gd_to_ie_test_SOURCES = tls_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_c_pic.o tls_test_shared2.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_gd_to_ie_test_LDADD = tls_test_pic.o tls_test_c_pic.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_shared2.so -lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_gd_to_ie_test_LDADD = tls_test_pic.o tls_test_c_pic.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	tls_test_shared2.so -lpthread
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_gd_to_ie_test_SOURCES = tls_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	tls_test_c_gnu2.o tls_test_gnu2_shared2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_gd_to_ie_test_SOURCES = tls_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	tls_test_c_gnu2.o tls_test_gnu2_shared2.so
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_gd_to_ie_test_LDADD = tls_test_gnu2.o tls_test_c_gnu2.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	tls_test_gnu2_shared2.so -lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_gd_to_ie_test_LDADD = tls_test_gnu2.o tls_test_c_gnu2.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	tls_test_gnu2_shared2.so -lpthread
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_test_SOURCES = tls_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_test_LDADD = tls_test_gnu2_shared.so -lpthread
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@tls_static_test_SOURCES = $(tls_test_SOURCES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@tls_static_test_DEPENDENCIES = $(tls_test_DEPENDENCIES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@tls_static_test_LDFLAGS = $(tls_test_LDFLAGS) -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@tls_static_test_LDADD = $(tls_test_LDADD)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@tls_static_pic_test_SOURCES = $(tls_pic_test_SOURCES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@tls_static_pic_test_DEPENDENCIES = $(tls_pic_test_DEPENDENCIES)
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@tls_static_pic_test_LDFLAGS = $(tls_pic_test_LDFLAGS) -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@@STATIC_TLS_TRUE@@TLS_TRUE@tls_static_pic_test_LDADD = $(tls_pic_test_LDADD)
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_nonpic_test_SOURCES = tls_test_main.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
-@GCC_TRUE@@NATIVE_LINKER_TRUE@many_sections_test_SOURCES = many_sections_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@many_sections_test_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@many_sections_test_LDFLAGS = -Bgcctestdir/ -rdynamic
-@GCC_TRUE@@NATIVE_LINKER_TRUE@many_sections_test_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri1_SOURCES = initpri1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri1_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri1_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri1_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri2_SOURCES = initpri2.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri2_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri2_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri2_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3a_SOURCES = initpri3.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3a_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3a_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3a_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_SOURCES = ver_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_DEPENDENCIES = gcctestdir/ld ver_test_1.so ver_test_2.so ver_test_4.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_LDADD = ver_test_1.so ver_test_2.so ver_test_4.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_2_SOURCES = ver_test_main_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_2_DEPENDENCIES = gcctestdir/ld ver_test_4.so ver_test_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_2_LDADD = ver_test_4.so ver_test_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_6_SOURCES = ver_test_6.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_6_DEPENDENCIES = gcctestdir/ld ver_test_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_6_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_6_LDADD = ver_test_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_8_SOURCES = two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_8_DEPENDENCIES = gcctestdir/ld ver_test_8_1.so ver_test_8_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_8_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_8_LDADD = ver_test_8_1.so ver_test_8_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_9_SOURCES = ver_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_9_DEPENDENCIES = gcctestdir/ld ver_test_9.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_9_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_9_LDADD = ver_test_9.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_11_SOURCES = ver_test_main_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_11_DEPENDENCIES = gcctestdir/ld ver_test_11.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_11_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_11_LDADD = ver_test_11.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_12_SOURCES = ver_test_main_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_12_DEPENDENCIES = gcctestdir/ld ver_test_12.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_12_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_12_LDADD = ver_test_12.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_1_SOURCES = \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	protected_main_1.cc protected_main_2.cc protected_main_3.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_test_SOURCES = tls_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_shared_gnu2_test_LDADD = tls_test_gnu2_shared.so -lpthread
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_SOURCES = $(tls_test_SOURCES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_DEPENDENCIES = $(tls_test_DEPENDENCIES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_LDFLAGS = $(tls_test_LDFLAGS) -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_test_LDADD = $(tls_test_LDADD)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_SOURCES = $(tls_pic_test_SOURCES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_DEPENDENCIES = $(tls_pic_test_DEPENDENCIES)
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_LDFLAGS = $(tls_pic_test_LDFLAGS) -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@STATIC_TLS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_static_pic_test_LDADD = $(tls_pic_test_LDADD)
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_nonpic_test_SOURCES = tls_test_main.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so -lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@many_sections_test_SOURCES = many_sections_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@many_sections_test_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@many_sections_test_LDFLAGS = -Bgcctestdir/ -rdynamic
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@many_sections_test_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri1_SOURCES = initpri1.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri1_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri1_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri1_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri2_SOURCES = initpri2.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri2_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri2_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri2_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri3a_SOURCES = initpri3.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri3a_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri3a_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@initpri3a_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_SOURCES = ver_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_DEPENDENCIES = gcctestdir/ld ver_test_1.so ver_test_2.so ver_test_4.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_LDADD = ver_test_1.so ver_test_2.so ver_test_4.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_2_SOURCES = ver_test_main_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_2_DEPENDENCIES = gcctestdir/ld ver_test_4.so ver_test_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_2_LDADD = ver_test_4.so ver_test_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_6_SOURCES = ver_test_6.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_6_DEPENDENCIES = gcctestdir/ld ver_test_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_6_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_6_LDADD = ver_test_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_8_SOURCES = two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_8_DEPENDENCIES = gcctestdir/ld ver_test_8_1.so ver_test_8_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_8_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_8_LDADD = ver_test_8_1.so ver_test_8_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_9_SOURCES = ver_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_9_DEPENDENCIES = gcctestdir/ld ver_test_9.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_9_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_9_LDADD = ver_test_9.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_11_SOURCES = ver_test_main_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_11_DEPENDENCIES = gcctestdir/ld ver_test_11.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_11_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_11_LDADD = ver_test_11.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_12_SOURCES = ver_test_main_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_12_DEPENDENCIES = gcctestdir/ld ver_test_12.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_12_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_12_LDADD = ver_test_12.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_1_SOURCES = \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	protected_main_1.cc protected_main_2.cc protected_main_3.cc
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_1_DEPENDENCIES = gcctestdir/ld protected_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_1_LDADD = protected_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_2_SOURCES = protected_main_1.cc protected_3.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_2_DEPENDENCIES = gcctestdir/ld protected_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_2_LDADD = protected_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_test_SOURCES = relro_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_test_DEPENDENCIES = gcctestdir/ld relro_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_test_LDADD = relro_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_now_test_SOURCES = relro_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_now_test_DEPENDENCIES = gcctestdir/ld relro_now_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_now_test_LDFLAGS = -Bgcctestdir -Wl,-R,. -Wl,-z,relro -Wl,-z,now
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_now_test_LDADD = relro_now_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_strip_test_SOURCES = relro_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_strip_test_DEPENDENCIES = gcctestdir/ld relro_strip_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_strip_test_LDADD = relro_strip_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_script_test_SOURCES = relro_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_script_test_DEPENDENCIES = gcctestdir/ld relro_script_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_script_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_script_test_LDADD = relro_script_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_1_SOURCES = script_test_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_1_DEPENDENCIES = gcctestdir/ld script_test_1.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -T $(srcdir)/script_test_1.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_1_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_2_SOURCES = script_test_2.cc script_test_2a.cc script_test_2b.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_2_DEPENDENCIES = gcctestdir/ld script_test_2.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -T $(srcdir)/script_test_2.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_2_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_SOURCES = justsyms_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_DEPENDENCIES = gcctestdir/ld justsyms_2r.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_2r.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_exec_SOURCES = justsyms_exec.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_exec_DEPENDENCIES = gcctestdir/ld justsyms_lib
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_exec_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_lib
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_exec_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@binary_test_SOURCES = binary_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@binary_test_DEPENDENCIES = gcctestdir/ld binary.txt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@binary_test_LDFLAGS = -Bgcctestdir/ -Wl,--format,binary,binary.txt,--format,elf
-@GCC_TRUE@@NATIVE_LINKER_TRUE@binary_test_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@tls_phdrs_script_test_SOURCES = $(tls_test_SOURCES)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@tls_phdrs_script_test_DEPENDENCIES = $(tls_test_DEPENDENCIES) $(srcdir)/script_test_3.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@tls_phdrs_script_test_LDFLAGS = $(tls_test_LDFLAGS) -T $(srcdir)/script_test_3.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@tls_phdrs_script_test_LDADD = $(tls_test_LDADD)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@tls_script_test_SOURCES = $(tls_test_SOURCES)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@tls_script_test_DEPENDENCIES = $(tls_test_DEPENDENCIES) $(srcdir)/script_test_4.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@tls_script_test_LDFLAGS = $(tls_test_LDFLAGS) -T $(srcdir)/script_test_4.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@tls_script_test_LDADD = $(tls_test_LDADD)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@thin_archive_test_1_SOURCES = thin_archive_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@thin_archive_test_1_DEPENDENCIES = gcctestdir/ld libthin1.a alt/libthin2.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@thin_archive_test_1_LDFLAGS = -Bgcctestdir/ -Lalt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@thin_archive_test_1_LDADD = libthin1.a -lthin2
-@GCC_TRUE@@NATIVE_LINKER_TRUE@thin_archive_test_2_SOURCES = thin_archive_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@thin_archive_test_2_DEPENDENCIES = gcctestdir/ld libthinall.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@thin_archive_test_2_LDFLAGS = -Bgcctestdir/ -L.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@thin_archive_test_2_LDADD = -lthinall
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exclude_libs_test_SOURCES = exclude_libs_test.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exclude_libs_test_DEPENDENCIES = gcctestdir/ld libexclude_libs_test_1.a \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	libexclude_libs_test_2.a alt/libexclude_libs_test_3.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_1_DEPENDENCIES = gcctestdir/ld protected_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_1_LDADD = protected_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_2_SOURCES = protected_main_1.cc protected_3.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_2_DEPENDENCIES = gcctestdir/ld protected_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_2_LDADD = protected_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_test_SOURCES = relro_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_test_DEPENDENCIES = gcctestdir/ld relro_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_test_LDADD = relro_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_now_test_SOURCES = relro_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_now_test_DEPENDENCIES = gcctestdir/ld relro_now_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_now_test_LDFLAGS = -Bgcctestdir -Wl,-R,. -Wl,-z,relro -Wl,-z,now
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_now_test_LDADD = relro_now_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_strip_test_SOURCES = relro_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_strip_test_DEPENDENCIES = gcctestdir/ld relro_strip_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_strip_test_LDADD = relro_strip_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_script_test_SOURCES = relro_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_script_test_DEPENDENCIES = gcctestdir/ld relro_script_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_script_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_script_test_LDADD = relro_script_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_1_SOURCES = script_test_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_1_DEPENDENCIES = gcctestdir/ld script_test_1.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -T $(srcdir)/script_test_1.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_1_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_2_SOURCES = script_test_2.cc script_test_2a.cc script_test_2b.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_2_DEPENDENCIES = gcctestdir/ld script_test_2.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -T $(srcdir)/script_test_2.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_2_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_SOURCES = justsyms_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_DEPENDENCIES = gcctestdir/ld justsyms_2r.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_2r.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_exec_SOURCES = justsyms_exec.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_exec_DEPENDENCIES = gcctestdir/ld justsyms_lib
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_exec_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_lib
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_exec_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@binary_test_SOURCES = binary_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@binary_test_DEPENDENCIES = gcctestdir/ld binary.txt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@binary_test_LDFLAGS = -Bgcctestdir/ -Wl,--format,binary,binary.txt,--format,elf
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@binary_test_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@tls_phdrs_script_test_SOURCES = $(tls_test_SOURCES)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@tls_phdrs_script_test_DEPENDENCIES = $(tls_test_DEPENDENCIES) $(srcdir)/script_test_3.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@tls_phdrs_script_test_LDFLAGS = $(tls_test_LDFLAGS) -T $(srcdir)/script_test_3.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@tls_phdrs_script_test_LDADD = $(tls_test_LDADD)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@tls_script_test_SOURCES = $(tls_test_SOURCES)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@tls_script_test_DEPENDENCIES = $(tls_test_DEPENDENCIES) $(srcdir)/script_test_4.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@tls_script_test_LDFLAGS = $(tls_test_LDFLAGS) -T $(srcdir)/script_test_4.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@tls_script_test_LDADD = $(tls_test_LDADD)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list_2_SOURCES = dynamic_list_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list_2_DEPENDENCIES = gcctestdir/ld dynamic_list_lib1.so dynamic_list_lib2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list_2_LDFLAGS = -Bgcctestdir/ -L. -Wl,-R,. -Wl,--no-as-needed
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list_2_LDADD = dynamic_list_lib1.so dynamic_list_lib2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@thin_archive_test_1_SOURCES = thin_archive_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@thin_archive_test_1_DEPENDENCIES = gcctestdir/ld libthin1.a alt/libthin2.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@thin_archive_test_1_LDFLAGS = -Bgcctestdir/ -Lalt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@thin_archive_test_1_LDADD = libthin1.a -lthin2
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@thin_archive_test_2_SOURCES = thin_archive_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@thin_archive_test_2_DEPENDENCIES = gcctestdir/ld libthinall.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@thin_archive_test_2_LDFLAGS = -Bgcctestdir/ -L.
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@thin_archive_test_2_LDADD = -lthinall
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exclude_libs_test_SOURCES = exclude_libs_test.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exclude_libs_test_DEPENDENCIES = gcctestdir/ld libexclude_libs_test_1.a \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	libexclude_libs_test_2.a alt/libexclude_libs_test_3.a
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exclude_libs_test_LDFLAGS = -Bgcctestdir/ -L. -Lalt \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--exclude-libs,dummy:libexclude_libs_test_1 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,--exclude-libs,libexclude_libs_test_3
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exclude_libs_test_LDFLAGS = -Bgcctestdir/ -L. -Lalt \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	-Wl,--exclude-libs,dummy:libexclude_libs_test_1 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	-Wl,--exclude-libs,libexclude_libs_test_3
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exclude_libs_test_LDADD = -lexclude_libs_test_1 -lexclude_libs_test_2 \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	alt/libexclude_libs_test_3.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exclude_libs_test_LDADD = -lexclude_libs_test_1 -lexclude_libs_test_2 \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	alt/libexclude_libs_test_3.a
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_test_SOURCES = discard_locals_test.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_test_LDFLAGS = -Bgcctestdir/ -Wl,--discard-locals
-@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@large_SOURCES = large.c
-@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@large_CFLAGS = -mcmodel=medium
-@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@large_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@large_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@NATIVE_LINKER_TRUE@large_LDADD = 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@searched_file_test_SOURCES = searched_file_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@searched_file_test_DEPENDENCIES = alt/searched_file_test_lib.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@searched_file_test_LDFLAGS = -Bgcctestdir/ -Lalt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@searched_file_test_LDADD = -l:searched_file_test_lib.a
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1static_SOURCES = ifuncmain1.c
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1static_DEPENDENCIES = gcctestdir/ld ifuncdep1.o
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1static_LDFLAGS = -Bgcctestdir/ -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1static_LDADD = ifuncdep1.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1_SOURCES = ifuncmain1.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1_DEPENDENCIES = gcctestdir/ld ifuncmod1.so
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1_LDADD = ifuncmod1.so
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1vis_SOURCES = ifuncmain1vis.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1vis_DEPENDENCIES = gcctestdir/ld ifuncmod1.so
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1vis_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1vis_LDADD = ifuncmod1.so
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2static_SOURCES = ifuncmain2.c ifuncdep2.c
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2static_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2static_LDFLAGS = -Bgcctestdir/ -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2static_LDADD = 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2_SOURCES = ifuncmain2.c ifuncdep2.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2_LDADD = 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain3_SOURCES = ifuncmain3.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain3_DEPENDENCIES = gcctestdir/ld ifuncmod3.so
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain3_LDFLAGS = -Bgcctestdir/ -Wl,--export-dynamic -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain3_LDADD = -ldl
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4static_SOURCES = ifuncmain4.c
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4static_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4static_LDFLAGS = -Bgcctestdir/ -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4static_LDADD = 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4_SOURCES = ifuncmain4.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4_LDADD = 
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5static_SOURCES = ifuncmain5.c
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5static_DEPENDENCIES = gcctestdir/ld ifuncdep5.o
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5static_LDFLAGS = -Bgcctestdir/ -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5static_LDADD = ifuncdep5.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5_SOURCES = ifuncmain5.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5_DEPENDENCIES = gcctestdir/ld ifuncmod5.so
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5_LDADD = ifuncmod5.so
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7static_SOURCES = ifuncmain7.c
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7static_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7static_LDFLAGS = -Bgcctestdir/ -static
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7static_LDADD = 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7_SOURCES = ifuncmain7.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7_DEPENDENCIES = gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7_LDFLAGS = -Bgcctestdir/
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7_LDADD = 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar_SOURCES = ifuncvar3.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar_DEPENDENCIES = gcctestdir/ld ifuncvar.so
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar_LDADD = ifuncvar.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_test_SOURCES = discard_locals_test.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_test_LDFLAGS = -Bgcctestdir/ -Wl,--discard-locals
+@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@large_SOURCES = large.c
+@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@large_CFLAGS = -mcmodel=medium
+@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@large_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@large_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@MCMODEL_MEDIUM_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@large_LDADD = 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@searched_file_test_SOURCES = searched_file_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@searched_file_test_DEPENDENCIES = alt/searched_file_test_lib.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@searched_file_test_LDFLAGS = -Bgcctestdir/ -Lalt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@searched_file_test_LDADD = -l:searched_file_test_lib.a
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1static_SOURCES = ifuncmain1.c
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1static_DEPENDENCIES = gcctestdir/ld ifuncdep1.o
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1static_LDFLAGS = -Bgcctestdir/ -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1static_LDADD = ifuncdep1.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1_SOURCES = ifuncmain1.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1_DEPENDENCIES = gcctestdir/ld ifuncmod1.so
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1_LDADD = ifuncmod1.so
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1vis_SOURCES = ifuncmain1vis.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1vis_DEPENDENCIES = gcctestdir/ld ifuncmod1.so
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1vis_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1vis_LDADD = ifuncmod1.so
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2static_SOURCES = ifuncmain2.c ifuncdep2.c
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2static_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2static_LDFLAGS = -Bgcctestdir/ -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2static_LDADD = 
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2_SOURCES = ifuncmain2.c ifuncdep2.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2_LDADD = 
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain3_SOURCES = ifuncmain3.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain3_DEPENDENCIES = gcctestdir/ld ifuncmod3.so
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain3_LDFLAGS = -Bgcctestdir/ -Wl,--export-dynamic -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain3_LDADD = -ldl
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4static_SOURCES = ifuncmain4.c
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4static_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4static_LDFLAGS = -Bgcctestdir/ -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4static_LDADD = 
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4_SOURCES = ifuncmain4.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4_LDADD = 
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5static_SOURCES = ifuncmain5.c
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5static_DEPENDENCIES = gcctestdir/ld ifuncdep5.o
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5static_LDFLAGS = -Bgcctestdir/ -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5static_LDADD = ifuncdep5.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5_SOURCES = ifuncmain5.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5_DEPENDENCIES = gcctestdir/ld ifuncmod5.so
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5_LDADD = ifuncmod5.so
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7static_SOURCES = ifuncmain7.c
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7static_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7static_LDFLAGS = -Bgcctestdir/ -static
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7static_LDADD = 
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7_SOURCES = ifuncmain7.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7_DEPENDENCIES = gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7_LDFLAGS = -Bgcctestdir/
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7_LDADD = 
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncvar_SOURCES = ifuncvar3.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncvar_DEPENDENCIES = gcctestdir/ld ifuncvar.so
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncvar_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncvar_LDADD = ifuncvar.so
 @DEFAULT_TARGET_I386_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@SPLIT_DEFSYMS = --defsym __morestack=0x100 --defsym __morestack_non_split=0x200
 @DEFAULT_TARGET_X86_64_TRUE@@NATIVE_OR_CROSS_LINKER_TRUE@SPLIT_DEFSYMS = --defsym __morestack=0x100 --defsym __morestack_non_split=0x200
 all: $(BUILT_SOURCES)
@@ -2540,39 +2594,39 @@
 @GCC_FALSE@basic_pic_test$(EXEEXT): $(basic_pic_test_OBJECTS) $(basic_pic_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f basic_pic_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(basic_pic_test_OBJECTS) $(basic_pic_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@basic_pic_test$(EXEEXT): $(basic_pic_test_OBJECTS) $(basic_pic_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f basic_pic_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(basic_pic_test_OBJECTS) $(basic_pic_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@basic_pic_test$(EXEEXT): $(basic_pic_test_OBJECTS) $(basic_pic_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f basic_pic_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(basic_pic_test_OBJECTS) $(basic_pic_test_LDADD) $(LIBS)
 @GCC_FALSE@basic_pie_test$(EXEEXT): $(basic_pie_test_OBJECTS) $(basic_pie_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f basic_pie_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(basic_pie_test_OBJECTS) $(basic_pie_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@basic_pie_test$(EXEEXT): $(basic_pie_test_OBJECTS) $(basic_pie_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f basic_pie_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(basic_pie_test_OBJECTS) $(basic_pie_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@basic_pie_test$(EXEEXT): $(basic_pie_test_OBJECTS) $(basic_pie_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f basic_pie_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(basic_pie_test_OBJECTS) $(basic_pie_test_LDADD) $(LIBS)
 @GCC_FALSE@basic_static_pic_test$(EXEEXT): $(basic_static_pic_test_OBJECTS) $(basic_static_pic_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f basic_static_pic_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(basic_static_pic_test_OBJECTS) $(basic_static_pic_test_LDADD) $(LIBS)
 @HAVE_STATIC_FALSE@basic_static_pic_test$(EXEEXT): $(basic_static_pic_test_OBJECTS) $(basic_static_pic_test_DEPENDENCIES) 
 @HAVE_STATIC_FALSE@	@rm -f basic_static_pic_test$(EXEEXT)
 @HAVE_STATIC_FALSE@	$(LINK) $(basic_static_pic_test_OBJECTS) $(basic_static_pic_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@basic_static_pic_test$(EXEEXT): $(basic_static_pic_test_OBJECTS) $(basic_static_pic_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f basic_static_pic_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(basic_static_pic_test_OBJECTS) $(basic_static_pic_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@basic_static_pic_test$(EXEEXT): $(basic_static_pic_test_OBJECTS) $(basic_static_pic_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f basic_static_pic_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(basic_static_pic_test_OBJECTS) $(basic_static_pic_test_LDADD) $(LIBS)
 @GCC_FALSE@basic_static_test$(EXEEXT): $(basic_static_test_OBJECTS) $(basic_static_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f basic_static_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(basic_static_test_OBJECTS) $(basic_static_test_LDADD) $(LIBS)
 @HAVE_STATIC_FALSE@basic_static_test$(EXEEXT): $(basic_static_test_OBJECTS) $(basic_static_test_DEPENDENCIES) 
 @HAVE_STATIC_FALSE@	@rm -f basic_static_test$(EXEEXT)
 @HAVE_STATIC_FALSE@	$(LINK) $(basic_static_test_OBJECTS) $(basic_static_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@basic_static_test$(EXEEXT): $(basic_static_test_OBJECTS) $(basic_static_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f basic_static_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(basic_static_test_OBJECTS) $(basic_static_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@basic_static_test$(EXEEXT): $(basic_static_test_OBJECTS) $(basic_static_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f basic_static_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(basic_static_test_OBJECTS) $(basic_static_test_LDADD) $(LIBS)
 @GCC_FALSE@basic_test$(EXEEXT): $(basic_test_OBJECTS) $(basic_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f basic_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(basic_test_OBJECTS) $(basic_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@basic_test$(EXEEXT): $(basic_test_OBJECTS) $(basic_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f basic_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(basic_test_OBJECTS) $(basic_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@basic_test$(EXEEXT): $(basic_test_OBJECTS) $(basic_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f basic_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(basic_test_OBJECTS) $(basic_test_LDADD) $(LIBS)
 binary_test$(EXEEXT): $(binary_test_OBJECTS) $(binary_test_DEPENDENCIES) 
 	@rm -f binary_test$(EXEEXT)
 	$(binary_test_LINK) $(binary_test_OBJECTS) $(binary_test_LDADD) $(LIBS)
@@ -2597,6 +2651,9 @@
 discard_locals_test$(EXEEXT): $(discard_locals_test_OBJECTS) $(discard_locals_test_DEPENDENCIES) 
 	@rm -f discard_locals_test$(EXEEXT)
 	$(discard_locals_test_LINK) $(discard_locals_test_OBJECTS) $(discard_locals_test_LDADD) $(LIBS)
+dynamic_list_2$(EXEEXT): $(dynamic_list_2_OBJECTS) $(dynamic_list_2_DEPENDENCIES) 
+	@rm -f dynamic_list_2$(EXEEXT)
+	$(dynamic_list_2_LINK) $(dynamic_list_2_OBJECTS) $(dynamic_list_2_LDADD) $(LIBS)
 exception_same_shared_test$(EXEEXT): $(exception_same_shared_test_OBJECTS) $(exception_same_shared_test_DEPENDENCIES) 
 	@rm -f exception_same_shared_test$(EXEEXT)
 	$(exception_same_shared_test_LINK) $(exception_same_shared_test_OBJECTS) $(exception_same_shared_test_LDADD) $(LIBS)
@@ -2627,36 +2684,36 @@
 @HAVE_ZLIB_FALSE@flagstest_compress_debug_sections$(EXEEXT): $(flagstest_compress_debug_sections_OBJECTS) $(flagstest_compress_debug_sections_DEPENDENCIES) 
 @HAVE_ZLIB_FALSE@	@rm -f flagstest_compress_debug_sections$(EXEEXT)
 @HAVE_ZLIB_FALSE@	$(LINK) $(flagstest_compress_debug_sections_OBJECTS) $(flagstest_compress_debug_sections_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@flagstest_compress_debug_sections$(EXEEXT): $(flagstest_compress_debug_sections_OBJECTS) $(flagstest_compress_debug_sections_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f flagstest_compress_debug_sections$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(flagstest_compress_debug_sections_OBJECTS) $(flagstest_compress_debug_sections_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@flagstest_compress_debug_sections$(EXEEXT): $(flagstest_compress_debug_sections_OBJECTS) $(flagstest_compress_debug_sections_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f flagstest_compress_debug_sections$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(flagstest_compress_debug_sections_OBJECTS) $(flagstest_compress_debug_sections_LDADD) $(LIBS)
 @GCC_FALSE@flagstest_o_specialfile$(EXEEXT): $(flagstest_o_specialfile_OBJECTS) $(flagstest_o_specialfile_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f flagstest_o_specialfile$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(flagstest_o_specialfile_OBJECTS) $(flagstest_o_specialfile_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@flagstest_o_specialfile$(EXEEXT): $(flagstest_o_specialfile_OBJECTS) $(flagstest_o_specialfile_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f flagstest_o_specialfile$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(flagstest_o_specialfile_OBJECTS) $(flagstest_o_specialfile_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@flagstest_o_specialfile$(EXEEXT): $(flagstest_o_specialfile_OBJECTS) $(flagstest_o_specialfile_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f flagstest_o_specialfile$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(flagstest_o_specialfile_OBJECTS) $(flagstest_o_specialfile_LDADD) $(LIBS)
 @GCC_FALSE@flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT): $(flagstest_o_specialfile_and_compress_debug_sections_OBJECTS) $(flagstest_o_specialfile_and_compress_debug_sections_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(flagstest_o_specialfile_and_compress_debug_sections_OBJECTS) $(flagstest_o_specialfile_and_compress_debug_sections_LDADD) $(LIBS)
 @HAVE_ZLIB_FALSE@flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT): $(flagstest_o_specialfile_and_compress_debug_sections_OBJECTS) $(flagstest_o_specialfile_and_compress_debug_sections_DEPENDENCIES) 
 @HAVE_ZLIB_FALSE@	@rm -f flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT)
 @HAVE_ZLIB_FALSE@	$(LINK) $(flagstest_o_specialfile_and_compress_debug_sections_OBJECTS) $(flagstest_o_specialfile_and_compress_debug_sections_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT): $(flagstest_o_specialfile_and_compress_debug_sections_OBJECTS) $(flagstest_o_specialfile_and_compress_debug_sections_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(flagstest_o_specialfile_and_compress_debug_sections_OBJECTS) $(flagstest_o_specialfile_and_compress_debug_sections_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT): $(flagstest_o_specialfile_and_compress_debug_sections_OBJECTS) $(flagstest_o_specialfile_and_compress_debug_sections_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(flagstest_o_specialfile_and_compress_debug_sections_OBJECTS) $(flagstest_o_specialfile_and_compress_debug_sections_LDADD) $(LIBS)
 @GCC_FALSE@flagstest_o_ttext_1$(EXEEXT): $(flagstest_o_ttext_1_OBJECTS) $(flagstest_o_ttext_1_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f flagstest_o_ttext_1$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(flagstest_o_ttext_1_OBJECTS) $(flagstest_o_ttext_1_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@flagstest_o_ttext_1$(EXEEXT): $(flagstest_o_ttext_1_OBJECTS) $(flagstest_o_ttext_1_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f flagstest_o_ttext_1$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(flagstest_o_ttext_1_OBJECTS) $(flagstest_o_ttext_1_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@flagstest_o_ttext_1$(EXEEXT): $(flagstest_o_ttext_1_OBJECTS) $(flagstest_o_ttext_1_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f flagstest_o_ttext_1$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(flagstest_o_ttext_1_OBJECTS) $(flagstest_o_ttext_1_LDADD) $(LIBS)
 @GCC_FALSE@icf_virtual_function_folding_test$(EXEEXT): $(icf_virtual_function_folding_test_OBJECTS) $(icf_virtual_function_folding_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f icf_virtual_function_folding_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(icf_virtual_function_folding_test_OBJECTS) $(icf_virtual_function_folding_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@icf_virtual_function_folding_test$(EXEEXT): $(icf_virtual_function_folding_test_OBJECTS) $(icf_virtual_function_folding_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f icf_virtual_function_folding_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(icf_virtual_function_folding_test_OBJECTS) $(icf_virtual_function_folding_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@icf_virtual_function_folding_test$(EXEEXT): $(icf_virtual_function_folding_test_OBJECTS) $(icf_virtual_function_folding_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f icf_virtual_function_folding_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(icf_virtual_function_folding_test_OBJECTS) $(icf_virtual_function_folding_test_LDADD) $(LIBS)
 ifuncmain1$(EXEEXT): $(ifuncmain1_OBJECTS) $(ifuncmain1_DEPENDENCIES) 
 	@rm -f ifuncmain1$(EXEEXT)
 	$(ifuncmain1_LINK) $(ifuncmain1_OBJECTS) $(ifuncmain1_LDADD) $(LIBS)
@@ -2666,9 +2723,9 @@
 @IFUNC_FALSE@ifuncmain1pic$(EXEEXT): $(ifuncmain1pic_OBJECTS) $(ifuncmain1pic_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain1pic$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain1pic_OBJECTS) $(ifuncmain1pic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain1pic$(EXEEXT): $(ifuncmain1pic_OBJECTS) $(ifuncmain1pic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain1pic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1pic_OBJECTS) $(ifuncmain1pic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain1pic$(EXEEXT): $(ifuncmain1pic_OBJECTS) $(ifuncmain1pic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain1pic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1pic_OBJECTS) $(ifuncmain1pic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain1picstatic$(EXEEXT): $(ifuncmain1picstatic_OBJECTS) $(ifuncmain1picstatic_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain1picstatic$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain1picstatic_OBJECTS) $(ifuncmain1picstatic_LDADD) $(LIBS)
@@ -2681,18 +2738,18 @@
 @IFUNC_STATIC_FALSE@ifuncmain1picstatic$(EXEEXT): $(ifuncmain1picstatic_OBJECTS) $(ifuncmain1picstatic_DEPENDENCIES) 
 @IFUNC_STATIC_FALSE@	@rm -f ifuncmain1picstatic$(EXEEXT)
 @IFUNC_STATIC_FALSE@	$(LINK) $(ifuncmain1picstatic_OBJECTS) $(ifuncmain1picstatic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain1picstatic$(EXEEXT): $(ifuncmain1picstatic_OBJECTS) $(ifuncmain1picstatic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain1picstatic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1picstatic_OBJECTS) $(ifuncmain1picstatic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain1picstatic$(EXEEXT): $(ifuncmain1picstatic_OBJECTS) $(ifuncmain1picstatic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain1picstatic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1picstatic_OBJECTS) $(ifuncmain1picstatic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain1pie$(EXEEXT): $(ifuncmain1pie_OBJECTS) $(ifuncmain1pie_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain1pie$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain1pie_OBJECTS) $(ifuncmain1pie_LDADD) $(LIBS)
 @IFUNC_FALSE@ifuncmain1pie$(EXEEXT): $(ifuncmain1pie_OBJECTS) $(ifuncmain1pie_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain1pie$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain1pie_OBJECTS) $(ifuncmain1pie_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain1pie$(EXEEXT): $(ifuncmain1pie_OBJECTS) $(ifuncmain1pie_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain1pie$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1pie_OBJECTS) $(ifuncmain1pie_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain1pie$(EXEEXT): $(ifuncmain1pie_OBJECTS) $(ifuncmain1pie_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain1pie$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1pie_OBJECTS) $(ifuncmain1pie_LDADD) $(LIBS)
 ifuncmain1static$(EXEEXT): $(ifuncmain1static_OBJECTS) $(ifuncmain1static_DEPENDENCIES) 
 	@rm -f ifuncmain1static$(EXEEXT)
 	$(ifuncmain1static_LINK) $(ifuncmain1static_OBJECTS) $(ifuncmain1static_LDADD) $(LIBS)
@@ -2702,18 +2759,18 @@
 @IFUNC_FALSE@ifuncmain1staticpic$(EXEEXT): $(ifuncmain1staticpic_OBJECTS) $(ifuncmain1staticpic_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain1staticpic$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain1staticpic_OBJECTS) $(ifuncmain1staticpic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain1staticpic$(EXEEXT): $(ifuncmain1staticpic_OBJECTS) $(ifuncmain1staticpic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain1staticpic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1staticpic_OBJECTS) $(ifuncmain1staticpic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain1staticpic$(EXEEXT): $(ifuncmain1staticpic_OBJECTS) $(ifuncmain1staticpic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain1staticpic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1staticpic_OBJECTS) $(ifuncmain1staticpic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain1staticpie$(EXEEXT): $(ifuncmain1staticpie_OBJECTS) $(ifuncmain1staticpie_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain1staticpie$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain1staticpie_OBJECTS) $(ifuncmain1staticpie_LDADD) $(LIBS)
 @IFUNC_FALSE@ifuncmain1staticpie$(EXEEXT): $(ifuncmain1staticpie_OBJECTS) $(ifuncmain1staticpie_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain1staticpie$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain1staticpie_OBJECTS) $(ifuncmain1staticpie_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain1staticpie$(EXEEXT): $(ifuncmain1staticpie_OBJECTS) $(ifuncmain1staticpie_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain1staticpie$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1staticpie_OBJECTS) $(ifuncmain1staticpie_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain1staticpie$(EXEEXT): $(ifuncmain1staticpie_OBJECTS) $(ifuncmain1staticpie_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain1staticpie$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1staticpie_OBJECTS) $(ifuncmain1staticpie_LDADD) $(LIBS)
 ifuncmain1vis$(EXEEXT): $(ifuncmain1vis_OBJECTS) $(ifuncmain1vis_DEPENDENCIES) 
 	@rm -f ifuncmain1vis$(EXEEXT)
 	$(ifuncmain1vis_LINK) $(ifuncmain1vis_OBJECTS) $(ifuncmain1vis_LDADD) $(LIBS)
@@ -2723,18 +2780,18 @@
 @IFUNC_FALSE@ifuncmain1vispic$(EXEEXT): $(ifuncmain1vispic_OBJECTS) $(ifuncmain1vispic_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain1vispic$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain1vispic_OBJECTS) $(ifuncmain1vispic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain1vispic$(EXEEXT): $(ifuncmain1vispic_OBJECTS) $(ifuncmain1vispic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain1vispic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1vispic_OBJECTS) $(ifuncmain1vispic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain1vispic$(EXEEXT): $(ifuncmain1vispic_OBJECTS) $(ifuncmain1vispic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain1vispic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1vispic_OBJECTS) $(ifuncmain1vispic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain1vispie$(EXEEXT): $(ifuncmain1vispie_OBJECTS) $(ifuncmain1vispie_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain1vispie$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain1vispie_OBJECTS) $(ifuncmain1vispie_LDADD) $(LIBS)
 @IFUNC_FALSE@ifuncmain1vispie$(EXEEXT): $(ifuncmain1vispie_OBJECTS) $(ifuncmain1vispie_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain1vispie$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain1vispie_OBJECTS) $(ifuncmain1vispie_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain1vispie$(EXEEXT): $(ifuncmain1vispie_OBJECTS) $(ifuncmain1vispie_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain1vispie$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1vispie_OBJECTS) $(ifuncmain1vispie_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain1vispie$(EXEEXT): $(ifuncmain1vispie_OBJECTS) $(ifuncmain1vispie_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain1vispie$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain1vispie_OBJECTS) $(ifuncmain1vispie_LDADD) $(LIBS)
 ifuncmain2$(EXEEXT): $(ifuncmain2_OBJECTS) $(ifuncmain2_DEPENDENCIES) 
 	@rm -f ifuncmain2$(EXEEXT)
 	$(ifuncmain2_LINK) $(ifuncmain2_OBJECTS) $(ifuncmain2_LDADD) $(LIBS)
@@ -2744,9 +2801,9 @@
 @IFUNC_FALSE@ifuncmain2pic$(EXEEXT): $(ifuncmain2pic_OBJECTS) $(ifuncmain2pic_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain2pic$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain2pic_OBJECTS) $(ifuncmain2pic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain2pic$(EXEEXT): $(ifuncmain2pic_OBJECTS) $(ifuncmain2pic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain2pic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain2pic_OBJECTS) $(ifuncmain2pic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain2pic$(EXEEXT): $(ifuncmain2pic_OBJECTS) $(ifuncmain2pic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain2pic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain2pic_OBJECTS) $(ifuncmain2pic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain2picstatic$(EXEEXT): $(ifuncmain2picstatic_OBJECTS) $(ifuncmain2picstatic_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain2picstatic$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain2picstatic_OBJECTS) $(ifuncmain2picstatic_LDADD) $(LIBS)
@@ -2759,9 +2816,9 @@
 @IFUNC_STATIC_FALSE@ifuncmain2picstatic$(EXEEXT): $(ifuncmain2picstatic_OBJECTS) $(ifuncmain2picstatic_DEPENDENCIES) 
 @IFUNC_STATIC_FALSE@	@rm -f ifuncmain2picstatic$(EXEEXT)
 @IFUNC_STATIC_FALSE@	$(LINK) $(ifuncmain2picstatic_OBJECTS) $(ifuncmain2picstatic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain2picstatic$(EXEEXT): $(ifuncmain2picstatic_OBJECTS) $(ifuncmain2picstatic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain2picstatic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain2picstatic_OBJECTS) $(ifuncmain2picstatic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain2picstatic$(EXEEXT): $(ifuncmain2picstatic_OBJECTS) $(ifuncmain2picstatic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain2picstatic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain2picstatic_OBJECTS) $(ifuncmain2picstatic_LDADD) $(LIBS)
 ifuncmain2static$(EXEEXT): $(ifuncmain2static_OBJECTS) $(ifuncmain2static_DEPENDENCIES) 
 	@rm -f ifuncmain2static$(EXEEXT)
 	$(ifuncmain2static_LINK) $(ifuncmain2static_OBJECTS) $(ifuncmain2static_LDADD) $(LIBS)
@@ -2783,9 +2840,9 @@
 @IFUNC_STATIC_FALSE@ifuncmain4picstatic$(EXEEXT): $(ifuncmain4picstatic_OBJECTS) $(ifuncmain4picstatic_DEPENDENCIES) 
 @IFUNC_STATIC_FALSE@	@rm -f ifuncmain4picstatic$(EXEEXT)
 @IFUNC_STATIC_FALSE@	$(LINK) $(ifuncmain4picstatic_OBJECTS) $(ifuncmain4picstatic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain4picstatic$(EXEEXT): $(ifuncmain4picstatic_OBJECTS) $(ifuncmain4picstatic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain4picstatic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain4picstatic_OBJECTS) $(ifuncmain4picstatic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain4picstatic$(EXEEXT): $(ifuncmain4picstatic_OBJECTS) $(ifuncmain4picstatic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain4picstatic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain4picstatic_OBJECTS) $(ifuncmain4picstatic_LDADD) $(LIBS)
 ifuncmain4static$(EXEEXT): $(ifuncmain4static_OBJECTS) $(ifuncmain4static_DEPENDENCIES) 
 	@rm -f ifuncmain4static$(EXEEXT)
 	$(ifuncmain4static_LINK) $(ifuncmain4static_OBJECTS) $(ifuncmain4static_LDADD) $(LIBS)
@@ -2798,9 +2855,9 @@
 @IFUNC_FALSE@ifuncmain5pic$(EXEEXT): $(ifuncmain5pic_OBJECTS) $(ifuncmain5pic_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain5pic$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain5pic_OBJECTS) $(ifuncmain5pic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain5pic$(EXEEXT): $(ifuncmain5pic_OBJECTS) $(ifuncmain5pic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain5pic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain5pic_OBJECTS) $(ifuncmain5pic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain5pic$(EXEEXT): $(ifuncmain5pic_OBJECTS) $(ifuncmain5pic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain5pic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain5pic_OBJECTS) $(ifuncmain5pic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain5picstatic$(EXEEXT): $(ifuncmain5picstatic_OBJECTS) $(ifuncmain5picstatic_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain5picstatic$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain5picstatic_OBJECTS) $(ifuncmain5picstatic_LDADD) $(LIBS)
@@ -2813,18 +2870,18 @@
 @IFUNC_STATIC_FALSE@ifuncmain5picstatic$(EXEEXT): $(ifuncmain5picstatic_OBJECTS) $(ifuncmain5picstatic_DEPENDENCIES) 
 @IFUNC_STATIC_FALSE@	@rm -f ifuncmain5picstatic$(EXEEXT)
 @IFUNC_STATIC_FALSE@	$(LINK) $(ifuncmain5picstatic_OBJECTS) $(ifuncmain5picstatic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain5picstatic$(EXEEXT): $(ifuncmain5picstatic_OBJECTS) $(ifuncmain5picstatic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain5picstatic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain5picstatic_OBJECTS) $(ifuncmain5picstatic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain5picstatic$(EXEEXT): $(ifuncmain5picstatic_OBJECTS) $(ifuncmain5picstatic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain5picstatic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain5picstatic_OBJECTS) $(ifuncmain5picstatic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain5pie$(EXEEXT): $(ifuncmain5pie_OBJECTS) $(ifuncmain5pie_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain5pie$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain5pie_OBJECTS) $(ifuncmain5pie_LDADD) $(LIBS)
 @IFUNC_FALSE@ifuncmain5pie$(EXEEXT): $(ifuncmain5pie_OBJECTS) $(ifuncmain5pie_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain5pie$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain5pie_OBJECTS) $(ifuncmain5pie_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain5pie$(EXEEXT): $(ifuncmain5pie_OBJECTS) $(ifuncmain5pie_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain5pie$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain5pie_OBJECTS) $(ifuncmain5pie_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain5pie$(EXEEXT): $(ifuncmain5pie_OBJECTS) $(ifuncmain5pie_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain5pie$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain5pie_OBJECTS) $(ifuncmain5pie_LDADD) $(LIBS)
 ifuncmain5static$(EXEEXT): $(ifuncmain5static_OBJECTS) $(ifuncmain5static_DEPENDENCIES) 
 	@rm -f ifuncmain5static$(EXEEXT)
 	$(ifuncmain5static_LINK) $(ifuncmain5static_OBJECTS) $(ifuncmain5static_LDADD) $(LIBS)
@@ -2834,18 +2891,18 @@
 @IFUNC_FALSE@ifuncmain5staticpic$(EXEEXT): $(ifuncmain5staticpic_OBJECTS) $(ifuncmain5staticpic_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain5staticpic$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain5staticpic_OBJECTS) $(ifuncmain5staticpic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain5staticpic$(EXEEXT): $(ifuncmain5staticpic_OBJECTS) $(ifuncmain5staticpic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain5staticpic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain5staticpic_OBJECTS) $(ifuncmain5staticpic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain5staticpic$(EXEEXT): $(ifuncmain5staticpic_OBJECTS) $(ifuncmain5staticpic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain5staticpic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain5staticpic_OBJECTS) $(ifuncmain5staticpic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain6pie$(EXEEXT): $(ifuncmain6pie_OBJECTS) $(ifuncmain6pie_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain6pie$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain6pie_OBJECTS) $(ifuncmain6pie_LDADD) $(LIBS)
 @IFUNC_FALSE@ifuncmain6pie$(EXEEXT): $(ifuncmain6pie_OBJECTS) $(ifuncmain6pie_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain6pie$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain6pie_OBJECTS) $(ifuncmain6pie_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain6pie$(EXEEXT): $(ifuncmain6pie_OBJECTS) $(ifuncmain6pie_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain6pie$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain6pie_OBJECTS) $(ifuncmain6pie_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain6pie$(EXEEXT): $(ifuncmain6pie_OBJECTS) $(ifuncmain6pie_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain6pie$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain6pie_OBJECTS) $(ifuncmain6pie_LDADD) $(LIBS)
 ifuncmain7$(EXEEXT): $(ifuncmain7_OBJECTS) $(ifuncmain7_DEPENDENCIES) 
 	@rm -f ifuncmain7$(EXEEXT)
 	$(ifuncmain7_LINK) $(ifuncmain7_OBJECTS) $(ifuncmain7_LDADD) $(LIBS)
@@ -2855,9 +2912,9 @@
 @IFUNC_FALSE@ifuncmain7pic$(EXEEXT): $(ifuncmain7pic_OBJECTS) $(ifuncmain7pic_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain7pic$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain7pic_OBJECTS) $(ifuncmain7pic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain7pic$(EXEEXT): $(ifuncmain7pic_OBJECTS) $(ifuncmain7pic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain7pic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain7pic_OBJECTS) $(ifuncmain7pic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain7pic$(EXEEXT): $(ifuncmain7pic_OBJECTS) $(ifuncmain7pic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain7pic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain7pic_OBJECTS) $(ifuncmain7pic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain7picstatic$(EXEEXT): $(ifuncmain7picstatic_OBJECTS) $(ifuncmain7picstatic_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain7picstatic$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain7picstatic_OBJECTS) $(ifuncmain7picstatic_LDADD) $(LIBS)
@@ -2870,18 +2927,18 @@
 @IFUNC_STATIC_FALSE@ifuncmain7picstatic$(EXEEXT): $(ifuncmain7picstatic_OBJECTS) $(ifuncmain7picstatic_DEPENDENCIES) 
 @IFUNC_STATIC_FALSE@	@rm -f ifuncmain7picstatic$(EXEEXT)
 @IFUNC_STATIC_FALSE@	$(LINK) $(ifuncmain7picstatic_OBJECTS) $(ifuncmain7picstatic_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain7picstatic$(EXEEXT): $(ifuncmain7picstatic_OBJECTS) $(ifuncmain7picstatic_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain7picstatic$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain7picstatic_OBJECTS) $(ifuncmain7picstatic_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain7picstatic$(EXEEXT): $(ifuncmain7picstatic_OBJECTS) $(ifuncmain7picstatic_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain7picstatic$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain7picstatic_OBJECTS) $(ifuncmain7picstatic_LDADD) $(LIBS)
 @GCC_FALSE@ifuncmain7pie$(EXEEXT): $(ifuncmain7pie_OBJECTS) $(ifuncmain7pie_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f ifuncmain7pie$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(ifuncmain7pie_OBJECTS) $(ifuncmain7pie_LDADD) $(LIBS)
 @IFUNC_FALSE@ifuncmain7pie$(EXEEXT): $(ifuncmain7pie_OBJECTS) $(ifuncmain7pie_DEPENDENCIES) 
 @IFUNC_FALSE@	@rm -f ifuncmain7pie$(EXEEXT)
 @IFUNC_FALSE@	$(LINK) $(ifuncmain7pie_OBJECTS) $(ifuncmain7pie_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@ifuncmain7pie$(EXEEXT): $(ifuncmain7pie_OBJECTS) $(ifuncmain7pie_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f ifuncmain7pie$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain7pie_OBJECTS) $(ifuncmain7pie_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@ifuncmain7pie$(EXEEXT): $(ifuncmain7pie_OBJECTS) $(ifuncmain7pie_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f ifuncmain7pie$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(ifuncmain7pie_OBJECTS) $(ifuncmain7pie_LDADD) $(LIBS)
 ifuncmain7static$(EXEEXT): $(ifuncmain7static_OBJECTS) $(ifuncmain7static_DEPENDENCIES) 
 	@rm -f ifuncmain7static$(EXEEXT)
 	$(ifuncmain7static_LINK) $(ifuncmain7static_OBJECTS) $(ifuncmain7static_LDADD) $(LIBS)
@@ -2894,72 +2951,72 @@
 @GCC_FALSE@incremental_comdat_test_1$(EXEEXT): $(incremental_comdat_test_1_OBJECTS) $(incremental_comdat_test_1_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f incremental_comdat_test_1$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(incremental_comdat_test_1_OBJECTS) $(incremental_comdat_test_1_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@incremental_comdat_test_1$(EXEEXT): $(incremental_comdat_test_1_OBJECTS) $(incremental_comdat_test_1_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f incremental_comdat_test_1$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(incremental_comdat_test_1_OBJECTS) $(incremental_comdat_test_1_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@incremental_comdat_test_1$(EXEEXT): $(incremental_comdat_test_1_OBJECTS) $(incremental_comdat_test_1_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f incremental_comdat_test_1$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(incremental_comdat_test_1_OBJECTS) $(incremental_comdat_test_1_LDADD) $(LIBS)
 @DEFAULT_TARGET_X86_64_FALSE@incremental_common_test_1$(EXEEXT): $(incremental_common_test_1_OBJECTS) $(incremental_common_test_1_DEPENDENCIES) 
 @DEFAULT_TARGET_X86_64_FALSE@	@rm -f incremental_common_test_1$(EXEEXT)
 @DEFAULT_TARGET_X86_64_FALSE@	$(LINK) $(incremental_common_test_1_OBJECTS) $(incremental_common_test_1_LDADD) $(LIBS)
 @GCC_FALSE@incremental_common_test_1$(EXEEXT): $(incremental_common_test_1_OBJECTS) $(incremental_common_test_1_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f incremental_common_test_1$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(incremental_common_test_1_OBJECTS) $(incremental_common_test_1_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@incremental_common_test_1$(EXEEXT): $(incremental_common_test_1_OBJECTS) $(incremental_common_test_1_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f incremental_common_test_1$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(incremental_common_test_1_OBJECTS) $(incremental_common_test_1_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@incremental_common_test_1$(EXEEXT): $(incremental_common_test_1_OBJECTS) $(incremental_common_test_1_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f incremental_common_test_1$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(incremental_common_test_1_OBJECTS) $(incremental_common_test_1_LDADD) $(LIBS)
 @DEFAULT_TARGET_X86_64_FALSE@incremental_copy_test$(EXEEXT): $(incremental_copy_test_OBJECTS) $(incremental_copy_test_DEPENDENCIES) 
 @DEFAULT_TARGET_X86_64_FALSE@	@rm -f incremental_copy_test$(EXEEXT)
 @DEFAULT_TARGET_X86_64_FALSE@	$(LINK) $(incremental_copy_test_OBJECTS) $(incremental_copy_test_LDADD) $(LIBS)
 @GCC_FALSE@incremental_copy_test$(EXEEXT): $(incremental_copy_test_OBJECTS) $(incremental_copy_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f incremental_copy_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(incremental_copy_test_OBJECTS) $(incremental_copy_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@incremental_copy_test$(EXEEXT): $(incremental_copy_test_OBJECTS) $(incremental_copy_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f incremental_copy_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(incremental_copy_test_OBJECTS) $(incremental_copy_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@incremental_copy_test$(EXEEXT): $(incremental_copy_test_OBJECTS) $(incremental_copy_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f incremental_copy_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(incremental_copy_test_OBJECTS) $(incremental_copy_test_LDADD) $(LIBS)
 @DEFAULT_TARGET_X86_64_FALSE@incremental_test_2$(EXEEXT): $(incremental_test_2_OBJECTS) $(incremental_test_2_DEPENDENCIES) 
 @DEFAULT_TARGET_X86_64_FALSE@	@rm -f incremental_test_2$(EXEEXT)
 @DEFAULT_TARGET_X86_64_FALSE@	$(LINK) $(incremental_test_2_OBJECTS) $(incremental_test_2_LDADD) $(LIBS)
 @GCC_FALSE@incremental_test_2$(EXEEXT): $(incremental_test_2_OBJECTS) $(incremental_test_2_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f incremental_test_2$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(incremental_test_2_OBJECTS) $(incremental_test_2_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@incremental_test_2$(EXEEXT): $(incremental_test_2_OBJECTS) $(incremental_test_2_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f incremental_test_2$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_2_OBJECTS) $(incremental_test_2_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@incremental_test_2$(EXEEXT): $(incremental_test_2_OBJECTS) $(incremental_test_2_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f incremental_test_2$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_2_OBJECTS) $(incremental_test_2_LDADD) $(LIBS)
 @DEFAULT_TARGET_X86_64_FALSE@incremental_test_3$(EXEEXT): $(incremental_test_3_OBJECTS) $(incremental_test_3_DEPENDENCIES) 
 @DEFAULT_TARGET_X86_64_FALSE@	@rm -f incremental_test_3$(EXEEXT)
 @DEFAULT_TARGET_X86_64_FALSE@	$(LINK) $(incremental_test_3_OBJECTS) $(incremental_test_3_LDADD) $(LIBS)
 @GCC_FALSE@incremental_test_3$(EXEEXT): $(incremental_test_3_OBJECTS) $(incremental_test_3_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f incremental_test_3$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(incremental_test_3_OBJECTS) $(incremental_test_3_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@incremental_test_3$(EXEEXT): $(incremental_test_3_OBJECTS) $(incremental_test_3_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f incremental_test_3$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_3_OBJECTS) $(incremental_test_3_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@incremental_test_3$(EXEEXT): $(incremental_test_3_OBJECTS) $(incremental_test_3_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f incremental_test_3$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_3_OBJECTS) $(incremental_test_3_LDADD) $(LIBS)
 @DEFAULT_TARGET_X86_64_FALSE@incremental_test_4$(EXEEXT): $(incremental_test_4_OBJECTS) $(incremental_test_4_DEPENDENCIES) 
 @DEFAULT_TARGET_X86_64_FALSE@	@rm -f incremental_test_4$(EXEEXT)
 @DEFAULT_TARGET_X86_64_FALSE@	$(LINK) $(incremental_test_4_OBJECTS) $(incremental_test_4_LDADD) $(LIBS)
 @GCC_FALSE@incremental_test_4$(EXEEXT): $(incremental_test_4_OBJECTS) $(incremental_test_4_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f incremental_test_4$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(incremental_test_4_OBJECTS) $(incremental_test_4_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@incremental_test_4$(EXEEXT): $(incremental_test_4_OBJECTS) $(incremental_test_4_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f incremental_test_4$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_4_OBJECTS) $(incremental_test_4_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@incremental_test_4$(EXEEXT): $(incremental_test_4_OBJECTS) $(incremental_test_4_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f incremental_test_4$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_4_OBJECTS) $(incremental_test_4_LDADD) $(LIBS)
 @DEFAULT_TARGET_X86_64_FALSE@incremental_test_5$(EXEEXT): $(incremental_test_5_OBJECTS) $(incremental_test_5_DEPENDENCIES) 
 @DEFAULT_TARGET_X86_64_FALSE@	@rm -f incremental_test_5$(EXEEXT)
 @DEFAULT_TARGET_X86_64_FALSE@	$(LINK) $(incremental_test_5_OBJECTS) $(incremental_test_5_LDADD) $(LIBS)
 @GCC_FALSE@incremental_test_5$(EXEEXT): $(incremental_test_5_OBJECTS) $(incremental_test_5_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f incremental_test_5$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(incremental_test_5_OBJECTS) $(incremental_test_5_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@incremental_test_5$(EXEEXT): $(incremental_test_5_OBJECTS) $(incremental_test_5_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f incremental_test_5$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_5_OBJECTS) $(incremental_test_5_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@incremental_test_5$(EXEEXT): $(incremental_test_5_OBJECTS) $(incremental_test_5_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f incremental_test_5$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_5_OBJECTS) $(incremental_test_5_LDADD) $(LIBS)
 @DEFAULT_TARGET_X86_64_FALSE@incremental_test_6$(EXEEXT): $(incremental_test_6_OBJECTS) $(incremental_test_6_DEPENDENCIES) 
 @DEFAULT_TARGET_X86_64_FALSE@	@rm -f incremental_test_6$(EXEEXT)
 @DEFAULT_TARGET_X86_64_FALSE@	$(LINK) $(incremental_test_6_OBJECTS) $(incremental_test_6_LDADD) $(LIBS)
 @GCC_FALSE@incremental_test_6$(EXEEXT): $(incremental_test_6_OBJECTS) $(incremental_test_6_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f incremental_test_6$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(incremental_test_6_OBJECTS) $(incremental_test_6_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@incremental_test_6$(EXEEXT): $(incremental_test_6_OBJECTS) $(incremental_test_6_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f incremental_test_6$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_6_OBJECTS) $(incremental_test_6_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@incremental_test_6$(EXEEXT): $(incremental_test_6_OBJECTS) $(incremental_test_6_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f incremental_test_6$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(incremental_test_6_OBJECTS) $(incremental_test_6_LDADD) $(LIBS)
 initpri1$(EXEEXT): $(initpri1_OBJECTS) $(initpri1_DEPENDENCIES) 
 	@rm -f initpri1$(EXEEXT)
 	$(initpri1_LINK) $(initpri1_OBJECTS) $(initpri1_LDADD) $(LIBS)
@@ -2984,15 +3041,15 @@
 @GCC_FALSE@local_labels_test$(EXEEXT): $(local_labels_test_OBJECTS) $(local_labels_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f local_labels_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(local_labels_test_OBJECTS) $(local_labels_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@local_labels_test$(EXEEXT): $(local_labels_test_OBJECTS) $(local_labels_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f local_labels_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(local_labels_test_OBJECTS) $(local_labels_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@local_labels_test$(EXEEXT): $(local_labels_test_OBJECTS) $(local_labels_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f local_labels_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(local_labels_test_OBJECTS) $(local_labels_test_LDADD) $(LIBS)
 @GCC_FALSE@many_sections_r_test$(EXEEXT): $(many_sections_r_test_OBJECTS) $(many_sections_r_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f many_sections_r_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(many_sections_r_test_OBJECTS) $(many_sections_r_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@many_sections_r_test$(EXEEXT): $(many_sections_r_test_OBJECTS) $(many_sections_r_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f many_sections_r_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(many_sections_r_test_OBJECTS) $(many_sections_r_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@many_sections_r_test$(EXEEXT): $(many_sections_r_test_OBJECTS) $(many_sections_r_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f many_sections_r_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(many_sections_r_test_OBJECTS) $(many_sections_r_test_LDADD) $(LIBS)
 many_sections_test$(EXEEXT): $(many_sections_test_OBJECTS) $(many_sections_test_DEPENDENCIES) 
 	@rm -f many_sections_test$(EXEEXT)
 	$(many_sections_test_LINK) $(many_sections_test_OBJECTS) $(many_sections_test_LDADD) $(LIBS)
@@ -3002,81 +3059,93 @@
 @GCC_FALSE@permission_test$(EXEEXT): $(permission_test_OBJECTS) $(permission_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f permission_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(permission_test_OBJECTS) $(permission_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@permission_test$(EXEEXT): $(permission_test_OBJECTS) $(permission_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f permission_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(permission_test_OBJECTS) $(permission_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@permission_test$(EXEEXT): $(permission_test_OBJECTS) $(permission_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f permission_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(permission_test_OBJECTS) $(permission_test_LDADD) $(LIBS)
 @GCC_FALSE@plugin_test_1$(EXEEXT): $(plugin_test_1_OBJECTS) $(plugin_test_1_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f plugin_test_1$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(plugin_test_1_OBJECTS) $(plugin_test_1_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@plugin_test_1$(EXEEXT): $(plugin_test_1_OBJECTS) $(plugin_test_1_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f plugin_test_1$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_1_OBJECTS) $(plugin_test_1_LDADD) $(LIBS)
 @PLUGINS_FALSE@plugin_test_1$(EXEEXT): $(plugin_test_1_OBJECTS) $(plugin_test_1_DEPENDENCIES) 
 @PLUGINS_FALSE@	@rm -f plugin_test_1$(EXEEXT)
 @PLUGINS_FALSE@	$(LINK) $(plugin_test_1_OBJECTS) $(plugin_test_1_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_1$(EXEEXT): $(plugin_test_1_OBJECTS) $(plugin_test_1_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_1$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_1_OBJECTS) $(plugin_test_1_LDADD) $(LIBS)
 @GCC_FALSE@plugin_test_2$(EXEEXT): $(plugin_test_2_OBJECTS) $(plugin_test_2_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f plugin_test_2$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(plugin_test_2_OBJECTS) $(plugin_test_2_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@plugin_test_2$(EXEEXT): $(plugin_test_2_OBJECTS) $(plugin_test_2_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f plugin_test_2$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_2_OBJECTS) $(plugin_test_2_LDADD) $(LIBS)
 @PLUGINS_FALSE@plugin_test_2$(EXEEXT): $(plugin_test_2_OBJECTS) $(plugin_test_2_DEPENDENCIES) 
 @PLUGINS_FALSE@	@rm -f plugin_test_2$(EXEEXT)
 @PLUGINS_FALSE@	$(LINK) $(plugin_test_2_OBJECTS) $(plugin_test_2_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_2$(EXEEXT): $(plugin_test_2_OBJECTS) $(plugin_test_2_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_2$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_2_OBJECTS) $(plugin_test_2_LDADD) $(LIBS)
 @GCC_FALSE@plugin_test_3$(EXEEXT): $(plugin_test_3_OBJECTS) $(plugin_test_3_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f plugin_test_3$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(plugin_test_3_OBJECTS) $(plugin_test_3_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@plugin_test_3$(EXEEXT): $(plugin_test_3_OBJECTS) $(plugin_test_3_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f plugin_test_3$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_3_OBJECTS) $(plugin_test_3_LDADD) $(LIBS)
 @PLUGINS_FALSE@plugin_test_3$(EXEEXT): $(plugin_test_3_OBJECTS) $(plugin_test_3_DEPENDENCIES) 
 @PLUGINS_FALSE@	@rm -f plugin_test_3$(EXEEXT)
 @PLUGINS_FALSE@	$(LINK) $(plugin_test_3_OBJECTS) $(plugin_test_3_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_3$(EXEEXT): $(plugin_test_3_OBJECTS) $(plugin_test_3_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_3$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_3_OBJECTS) $(plugin_test_3_LDADD) $(LIBS)
 @GCC_FALSE@plugin_test_4$(EXEEXT): $(plugin_test_4_OBJECTS) $(plugin_test_4_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f plugin_test_4$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(plugin_test_4_OBJECTS) $(plugin_test_4_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@plugin_test_4$(EXEEXT): $(plugin_test_4_OBJECTS) $(plugin_test_4_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f plugin_test_4$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_4_OBJECTS) $(plugin_test_4_LDADD) $(LIBS)
 @PLUGINS_FALSE@plugin_test_4$(EXEEXT): $(plugin_test_4_OBJECTS) $(plugin_test_4_DEPENDENCIES) 
 @PLUGINS_FALSE@	@rm -f plugin_test_4$(EXEEXT)
 @PLUGINS_FALSE@	$(LINK) $(plugin_test_4_OBJECTS) $(plugin_test_4_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_4$(EXEEXT): $(plugin_test_4_OBJECTS) $(plugin_test_4_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_4$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_4_OBJECTS) $(plugin_test_4_LDADD) $(LIBS)
 @GCC_FALSE@plugin_test_5$(EXEEXT): $(plugin_test_5_OBJECTS) $(plugin_test_5_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f plugin_test_5$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(plugin_test_5_OBJECTS) $(plugin_test_5_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@plugin_test_5$(EXEEXT): $(plugin_test_5_OBJECTS) $(plugin_test_5_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f plugin_test_5$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_5_OBJECTS) $(plugin_test_5_LDADD) $(LIBS)
 @PLUGINS_FALSE@plugin_test_5$(EXEEXT): $(plugin_test_5_OBJECTS) $(plugin_test_5_DEPENDENCIES) 
 @PLUGINS_FALSE@	@rm -f plugin_test_5$(EXEEXT)
 @PLUGINS_FALSE@	$(LINK) $(plugin_test_5_OBJECTS) $(plugin_test_5_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_5$(EXEEXT): $(plugin_test_5_OBJECTS) $(plugin_test_5_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_5$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_5_OBJECTS) $(plugin_test_5_LDADD) $(LIBS)
 @GCC_FALSE@plugin_test_6$(EXEEXT): $(plugin_test_6_OBJECTS) $(plugin_test_6_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f plugin_test_6$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(plugin_test_6_OBJECTS) $(plugin_test_6_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@plugin_test_6$(EXEEXT): $(plugin_test_6_OBJECTS) $(plugin_test_6_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f plugin_test_6$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_6_OBJECTS) $(plugin_test_6_LDADD) $(LIBS)
 @PLUGINS_FALSE@plugin_test_6$(EXEEXT): $(plugin_test_6_OBJECTS) $(plugin_test_6_DEPENDENCIES) 
 @PLUGINS_FALSE@	@rm -f plugin_test_6$(EXEEXT)
 @PLUGINS_FALSE@	$(LINK) $(plugin_test_6_OBJECTS) $(plugin_test_6_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_6$(EXEEXT): $(plugin_test_6_OBJECTS) $(plugin_test_6_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_6$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_6_OBJECTS) $(plugin_test_6_LDADD) $(LIBS)
 @GCC_FALSE@plugin_test_7$(EXEEXT): $(plugin_test_7_OBJECTS) $(plugin_test_7_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f plugin_test_7$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(plugin_test_7_OBJECTS) $(plugin_test_7_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@plugin_test_7$(EXEEXT): $(plugin_test_7_OBJECTS) $(plugin_test_7_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f plugin_test_7$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_7_OBJECTS) $(plugin_test_7_LDADD) $(LIBS)
 @PLUGINS_FALSE@plugin_test_7$(EXEEXT): $(plugin_test_7_OBJECTS) $(plugin_test_7_DEPENDENCIES) 
 @PLUGINS_FALSE@	@rm -f plugin_test_7$(EXEEXT)
 @PLUGINS_FALSE@	$(LINK) $(plugin_test_7_OBJECTS) $(plugin_test_7_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_7$(EXEEXT): $(plugin_test_7_OBJECTS) $(plugin_test_7_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_7$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_7_OBJECTS) $(plugin_test_7_LDADD) $(LIBS)
 @GCC_FALSE@plugin_test_8$(EXEEXT): $(plugin_test_8_OBJECTS) $(plugin_test_8_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f plugin_test_8$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(plugin_test_8_OBJECTS) $(plugin_test_8_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@plugin_test_8$(EXEEXT): $(plugin_test_8_OBJECTS) $(plugin_test_8_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f plugin_test_8$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_8_OBJECTS) $(plugin_test_8_LDADD) $(LIBS)
 @PLUGINS_FALSE@plugin_test_8$(EXEEXT): $(plugin_test_8_OBJECTS) $(plugin_test_8_DEPENDENCIES) 
 @PLUGINS_FALSE@	@rm -f plugin_test_8$(EXEEXT)
 @PLUGINS_FALSE@	$(LINK) $(plugin_test_8_OBJECTS) $(plugin_test_8_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_8$(EXEEXT): $(plugin_test_8_OBJECTS) $(plugin_test_8_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_8$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_8_OBJECTS) $(plugin_test_8_LDADD) $(LIBS)
+@GCC_FALSE@plugin_test_tls$(EXEEXT): $(plugin_test_tls_OBJECTS) $(plugin_test_tls_DEPENDENCIES) 
+@GCC_FALSE@	@rm -f plugin_test_tls$(EXEEXT)
+@GCC_FALSE@	$(LINK) $(plugin_test_tls_OBJECTS) $(plugin_test_tls_LDADD) $(LIBS)
+@PLUGINS_FALSE@plugin_test_tls$(EXEEXT): $(plugin_test_tls_OBJECTS) $(plugin_test_tls_DEPENDENCIES) 
+@PLUGINS_FALSE@	@rm -f plugin_test_tls$(EXEEXT)
+@PLUGINS_FALSE@	$(LINK) $(plugin_test_tls_OBJECTS) $(plugin_test_tls_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@plugin_test_tls$(EXEEXT): $(plugin_test_tls_OBJECTS) $(plugin_test_tls_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f plugin_test_tls$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(plugin_test_tls_OBJECTS) $(plugin_test_tls_LDADD) $(LIBS)
+@TLS_FALSE@plugin_test_tls$(EXEEXT): $(plugin_test_tls_OBJECTS) $(plugin_test_tls_DEPENDENCIES) 
+@TLS_FALSE@	@rm -f plugin_test_tls$(EXEEXT)
+@TLS_FALSE@	$(LINK) $(plugin_test_tls_OBJECTS) $(plugin_test_tls_LDADD) $(LIBS)
 protected_1$(EXEEXT): $(protected_1_OBJECTS) $(protected_1_DEPENDENCIES) 
 	@rm -f protected_1$(EXEEXT)
 	$(protected_1_LINK) $(protected_1_OBJECTS) $(protected_1_LDADD) $(LIBS)
@@ -3098,24 +3167,30 @@
 script_test_1$(EXEEXT): $(script_test_1_OBJECTS) $(script_test_1_DEPENDENCIES) 
 	@rm -f script_test_1$(EXEEXT)
 	$(script_test_1_LINK) $(script_test_1_OBJECTS) $(script_test_1_LDADD) $(LIBS)
+@GCC_FALSE@script_test_11$(EXEEXT): $(script_test_11_OBJECTS) $(script_test_11_DEPENDENCIES) 
+@GCC_FALSE@	@rm -f script_test_11$(EXEEXT)
+@GCC_FALSE@	$(LINK) $(script_test_11_OBJECTS) $(script_test_11_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@script_test_11$(EXEEXT): $(script_test_11_OBJECTS) $(script_test_11_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f script_test_11$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(script_test_11_OBJECTS) $(script_test_11_LDADD) $(LIBS)
 script_test_2$(EXEEXT): $(script_test_2_OBJECTS) $(script_test_2_DEPENDENCIES) 
 	@rm -f script_test_2$(EXEEXT)
 	$(script_test_2_LINK) $(script_test_2_OBJECTS) $(script_test_2_LDADD) $(LIBS)
 @GCC_FALSE@script_test_3$(EXEEXT): $(script_test_3_OBJECTS) $(script_test_3_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f script_test_3$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(script_test_3_OBJECTS) $(script_test_3_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@script_test_3$(EXEEXT): $(script_test_3_OBJECTS) $(script_test_3_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f script_test_3$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(script_test_3_OBJECTS) $(script_test_3_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@script_test_3$(EXEEXT): $(script_test_3_OBJECTS) $(script_test_3_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f script_test_3$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(script_test_3_OBJECTS) $(script_test_3_LDADD) $(LIBS)
 searched_file_test$(EXEEXT): $(searched_file_test_OBJECTS) $(searched_file_test_DEPENDENCIES) 
 	@rm -f searched_file_test$(EXEEXT)
 	$(searched_file_test_LINK) $(searched_file_test_OBJECTS) $(searched_file_test_LDADD) $(LIBS)
 @GCC_FALSE@start_lib_test$(EXEEXT): $(start_lib_test_OBJECTS) $(start_lib_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f start_lib_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(start_lib_test_OBJECTS) $(start_lib_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@start_lib_test$(EXEEXT): $(start_lib_test_OBJECTS) $(start_lib_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f start_lib_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(start_lib_test_OBJECTS) $(start_lib_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@start_lib_test$(EXEEXT): $(start_lib_test_OBJECTS) $(start_lib_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f start_lib_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(start_lib_test_OBJECTS) $(start_lib_test_LDADD) $(LIBS)
 thin_archive_test_1$(EXEEXT): $(thin_archive_test_1_OBJECTS) $(thin_archive_test_1_DEPENDENCIES) 
 	@rm -f thin_archive_test_1$(EXEEXT)
 	$(thin_archive_test_1_LINK) $(thin_archive_test_1_OBJECTS) $(thin_archive_test_1_LDADD) $(LIBS)
@@ -3131,18 +3206,18 @@
 @GCC_FALSE@tls_pie_pic_test$(EXEEXT): $(tls_pie_pic_test_OBJECTS) $(tls_pie_pic_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f tls_pie_pic_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(tls_pie_pic_test_OBJECTS) $(tls_pie_pic_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@tls_pie_pic_test$(EXEEXT): $(tls_pie_pic_test_OBJECTS) $(tls_pie_pic_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f tls_pie_pic_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(tls_pie_pic_test_OBJECTS) $(tls_pie_pic_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@tls_pie_pic_test$(EXEEXT): $(tls_pie_pic_test_OBJECTS) $(tls_pie_pic_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f tls_pie_pic_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(tls_pie_pic_test_OBJECTS) $(tls_pie_pic_test_LDADD) $(LIBS)
 @TLS_FALSE@tls_pie_pic_test$(EXEEXT): $(tls_pie_pic_test_OBJECTS) $(tls_pie_pic_test_DEPENDENCIES) 
 @TLS_FALSE@	@rm -f tls_pie_pic_test$(EXEEXT)
 @TLS_FALSE@	$(LINK) $(tls_pie_pic_test_OBJECTS) $(tls_pie_pic_test_LDADD) $(LIBS)
 @GCC_FALSE@tls_pie_test$(EXEEXT): $(tls_pie_test_OBJECTS) $(tls_pie_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f tls_pie_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(tls_pie_test_OBJECTS) $(tls_pie_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@tls_pie_test$(EXEEXT): $(tls_pie_test_OBJECTS) $(tls_pie_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f tls_pie_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(tls_pie_test_OBJECTS) $(tls_pie_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@tls_pie_test$(EXEEXT): $(tls_pie_test_OBJECTS) $(tls_pie_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f tls_pie_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(tls_pie_test_OBJECTS) $(tls_pie_test_LDADD) $(LIBS)
 @TLS_FALSE@tls_pie_test$(EXEEXT): $(tls_pie_test_OBJECTS) $(tls_pie_test_DEPENDENCIES) 
 @TLS_FALSE@	@rm -f tls_pie_test$(EXEEXT)
 @TLS_FALSE@	$(LINK) $(tls_pie_test_OBJECTS) $(tls_pie_test_LDADD) $(LIBS)
@@ -3185,9 +3260,9 @@
 @GCC_FALSE@two_file_mixed_pie_test$(EXEEXT): $(two_file_mixed_pie_test_OBJECTS) $(two_file_mixed_pie_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f two_file_mixed_pie_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(two_file_mixed_pie_test_OBJECTS) $(two_file_mixed_pie_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@two_file_mixed_pie_test$(EXEEXT): $(two_file_mixed_pie_test_OBJECTS) $(two_file_mixed_pie_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f two_file_mixed_pie_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(two_file_mixed_pie_test_OBJECTS) $(two_file_mixed_pie_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@two_file_mixed_pie_test$(EXEEXT): $(two_file_mixed_pie_test_OBJECTS) $(two_file_mixed_pie_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f two_file_mixed_pie_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(two_file_mixed_pie_test_OBJECTS) $(two_file_mixed_pie_test_LDADD) $(LIBS)
 two_file_mixed_shared_test$(EXEEXT): $(two_file_mixed_shared_test_OBJECTS) $(two_file_mixed_shared_test_DEPENDENCIES) 
 	@rm -f two_file_mixed_shared_test$(EXEEXT)
 	$(two_file_mixed_shared_test_LINK) $(two_file_mixed_shared_test_OBJECTS) $(two_file_mixed_shared_test_LDADD) $(LIBS)
@@ -3197,9 +3272,9 @@
 @GCC_FALSE@two_file_pie_test$(EXEEXT): $(two_file_pie_test_OBJECTS) $(two_file_pie_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f two_file_pie_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(two_file_pie_test_OBJECTS) $(two_file_pie_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@two_file_pie_test$(EXEEXT): $(two_file_pie_test_OBJECTS) $(two_file_pie_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f two_file_pie_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(two_file_pie_test_OBJECTS) $(two_file_pie_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@two_file_pie_test$(EXEEXT): $(two_file_pie_test_OBJECTS) $(two_file_pie_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f two_file_pie_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(two_file_pie_test_OBJECTS) $(two_file_pie_test_LDADD) $(LIBS)
 two_file_relocatable_test$(EXEEXT): $(two_file_relocatable_test_OBJECTS) $(two_file_relocatable_test_DEPENDENCIES) 
 	@rm -f two_file_relocatable_test$(EXEEXT)
 	$(two_file_relocatable_test_LINK) $(two_file_relocatable_test_OBJECTS) $(two_file_relocatable_test_LDADD) $(LIBS)
@@ -3248,9 +3323,9 @@
 @GCC_FALSE@two_file_strip_test$(EXEEXT): $(two_file_strip_test_OBJECTS) $(two_file_strip_test_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f two_file_strip_test$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(two_file_strip_test_OBJECTS) $(two_file_strip_test_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@two_file_strip_test$(EXEEXT): $(two_file_strip_test_OBJECTS) $(two_file_strip_test_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f two_file_strip_test$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(two_file_strip_test_OBJECTS) $(two_file_strip_test_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@two_file_strip_test$(EXEEXT): $(two_file_strip_test_OBJECTS) $(two_file_strip_test_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f two_file_strip_test$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(two_file_strip_test_OBJECTS) $(two_file_strip_test_LDADD) $(LIBS)
 two_file_test$(EXEEXT): $(two_file_test_OBJECTS) $(two_file_test_DEPENDENCIES) 
 	@rm -f two_file_test$(EXEEXT)
 	$(two_file_test_LINK) $(two_file_test_OBJECTS) $(two_file_test_LDADD) $(LIBS)
@@ -3281,9 +3356,9 @@
 @GCC_FALSE@weak_plt$(EXEEXT): $(weak_plt_OBJECTS) $(weak_plt_DEPENDENCIES) 
 @GCC_FALSE@	@rm -f weak_plt$(EXEEXT)
 @GCC_FALSE@	$(LINK) $(weak_plt_OBJECTS) $(weak_plt_LDADD) $(LIBS)
-@NATIVE_LINKER_FALSE@weak_plt$(EXEEXT): $(weak_plt_OBJECTS) $(weak_plt_DEPENDENCIES) 
-@NATIVE_LINKER_FALSE@	@rm -f weak_plt$(EXEEXT)
-@NATIVE_LINKER_FALSE@	$(LINK) $(weak_plt_OBJECTS) $(weak_plt_LDADD) $(LIBS)
+@TEST_AS_NATIVE_LINKER_FALSE@weak_plt$(EXEEXT): $(weak_plt_OBJECTS) $(weak_plt_DEPENDENCIES) 
+@TEST_AS_NATIVE_LINKER_FALSE@	@rm -f weak_plt$(EXEEXT)
+@TEST_AS_NATIVE_LINKER_FALSE@	$(LINK) $(weak_plt_OBJECTS) $(weak_plt_LDADD) $(LIBS)
 weak_test$(EXEEXT): $(weak_test_OBJECTS) $(weak_test_DEPENDENCIES) 
 	@rm -f weak_test$(EXEEXT)
 	$(weak_test_LINK) $(weak_test_OBJECTS) $(weak_test_LDADD) $(LIBS)
@@ -3293,6 +3368,9 @@
 weak_undef_test$(EXEEXT): $(weak_undef_test_OBJECTS) $(weak_undef_test_DEPENDENCIES) 
 	@rm -f weak_undef_test$(EXEEXT)
 	$(weak_undef_test_LINK) $(weak_undef_test_OBJECTS) $(weak_undef_test_LDADD) $(LIBS)
+weak_undef_test_2$(EXEEXT): $(weak_undef_test_2_OBJECTS) $(weak_undef_test_2_DEPENDENCIES) 
+	@rm -f weak_undef_test_2$(EXEEXT)
+	$(weak_undef_test_2_LINK) $(weak_undef_test_2_OBJECTS) $(weak_undef_test_2_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -3311,6 +3389,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/constructor_test.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/copy_test.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/discard_locals_test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dynamic_list_2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception_test_1.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception_test_2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exception_test_main.Po@am__quote@
@@ -3375,12 +3454,14 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_test_6.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_test_7.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_test_8.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_test_tls.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protected_3.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protected_main_1.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protected_main_2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/protected_main_3.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/relro_test_main.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/script_test_1.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/script_test_11.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/script_test_2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/script_test_2a.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/script_test_2b.Po@am__quote@
@@ -3410,6 +3491,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weak_plt.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weak_test.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weak_undef_test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/weak_undef_test_2.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -3665,6 +3747,8 @@
 	@p='gc_tls_test.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 gc_orphan_section_test.sh.log: gc_orphan_section_test.sh
 	@p='gc_orphan_section_test.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+gc_dynamic_list_test.sh.log: gc_dynamic_list_test.sh
+	@p='gc_dynamic_list_test.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 icf_test.sh.log: icf_test.sh
 	@p='icf_test.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 icf_keep_unique_test.sh.log: icf_keep_unique_test.sh
@@ -3675,6 +3759,8 @@
 	@p='icf_safe_so_test.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 final_layout.sh.log: final_layout.sh
 	@p='final_layout.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+text_section_grouping.sh.log: text_section_grouping.sh
+	@p='text_section_grouping.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 icf_preemptible_functions_test.sh.log: icf_preemptible_functions_test.sh
 	@p='icf_preemptible_functions_test.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 icf_string_merge_test.sh.log: icf_string_merge_test.sh
@@ -3687,6 +3773,8 @@
 	@p='weak_plt.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 debug_msg.sh.log: debug_msg.sh
 	@p='debug_msg.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+missing_key_func.sh.log: missing_key_func.sh
+	@p='missing_key_func.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 undef_symbol.sh.log: undef_symbol.sh
 	@p='undef_symbol.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 ver_test_1.sh.log: ver_test_1.sh
@@ -3733,6 +3821,8 @@
 	@p='plugin_test_6.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 plugin_test_7.sh.log: plugin_test_7.sh
 	@p='plugin_test_7.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+plugin_test_tls.sh.log: plugin_test_tls.sh
+	@p='plugin_test_tls.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 plugin_final_layout.sh.log: plugin_final_layout.sh
 	@p='plugin_final_layout.sh'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 exclude_libs_test.sh.log: exclude_libs_test.sh
@@ -3885,6 +3975,8 @@
 	@p='weak_test$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 weak_undef_test.log: weak_undef_test$(EXEEXT)
 	@p='weak_undef_test$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+weak_undef_test_2.log: weak_undef_test_2$(EXEEXT)
+	@p='weak_undef_test_2$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 weak_undef_nonpic_test.log: weak_undef_nonpic_test$(EXEEXT)
 	@p='weak_undef_nonpic_test$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 weak_alias_test.log: weak_alias_test$(EXEEXT)
@@ -3977,6 +4069,10 @@
 	@p='tls_phdrs_script_test$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 tls_script_test.log: tls_script_test$(EXEEXT)
 	@p='tls_script_test$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+script_test_11.log: script_test_11$(EXEEXT)
+	@p='script_test_11$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+dynamic_list_2.log: dynamic_list_2$(EXEEXT)
+	@p='dynamic_list_2$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 thin_archive_test_1.log: thin_archive_test_1$(EXEEXT)
 	@p='thin_archive_test_1$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 thin_archive_test_2.log: thin_archive_test_2$(EXEEXT)
@@ -3997,6 +4093,8 @@
 	@p='plugin_test_7$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 plugin_test_8.log: plugin_test_8$(EXEEXT)
 	@p='plugin_test_8$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
+plugin_test_tls.log: plugin_test_tls$(EXEEXT)
+	@p='plugin_test_tls$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 exclude_libs_test.log: exclude_libs_test$(EXEEXT)
 	@p='exclude_libs_test$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post)
 local_labels_test.log: local_labels_test$(EXEEXT)
@@ -4248,941 +4346,1000 @@
 # particularly useful for making sure ld-new's flags do what they're
 # supposed to (hence their names), but are used for many tests that
 # don't actually involve analyzing input data.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@flagstest_debug.o: constructor_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@flagstest_ndebug.o: constructor_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test_1.o: incremental_test_1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test_2.o: incremental_test_2.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test: incremental_test_1.o incremental_test_2.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -Wl,--incremental-full incremental_test_1.o incremental_test_2.o -Wl,-debug 2> incremental_test.cmdline
-@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test.stdout: incremental_test ../incremental-dump
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	../incremental-dump incremental_test > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test_1.o: gc_comdat_test_1.cc 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test_2.o: gc_comdat_test_2.cc 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test: gc_comdat_test_1.o gc_comdat_test_2.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_comdat_test_1.o gc_comdat_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test.stdout: gc_comdat_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) -C gc_comdat_test > gc_comdat_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_tls_test.o: gc_tls_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_tls_test:gc_tls_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_tls_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_tls_test.stdout: gc_tls_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) -C gc_tls_test > gc_tls_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_orphan_section_test.o: gc_orphan_section_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_orphan_section_test:gc_orphan_section_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_orphan_section_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_orphan_section_test.stdout: gc_orphan_section_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) gc_orphan_section_test > gc_orphan_section_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_test.o: icf_test.cc 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_test: icf_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_test.stdout: icf_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) -C icf_test > icf_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_keep_unique_test.o: icf_keep_unique_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_keep_unique_test: icf_keep_unique_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all -Wl,--keep-unique,_Z11unique_funcv icf_keep_unique_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_keep_unique_test.stdout: icf_keep_unique_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) -C icf_keep_unique_test > icf_keep_unique_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_safe_test.o: icf_safe_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_safe_test: icf_safe_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=safe icf_safe_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_safe_test_1.stdout: icf_safe_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) icf_safe_test > icf_safe_test_1.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_safe_test_2.stdout: icf_safe_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -h icf_safe_test > icf_safe_test_2.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_safe_so_test.o: icf_safe_so_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_safe_so_test: icf_safe_so_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=safe icf_safe_so_test.o -fPIC -shared
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_safe_so_test_1.stdout: icf_safe_so_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) icf_safe_so_test > icf_safe_so_test_1.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_safe_so_test_2.stdout: icf_safe_so_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -h icf_safe_so_test > icf_safe_so_test_2.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@final_layout.o: final_layout.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@final_layout_sequence.txt:
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	(echo "*_Z3barv*" && echo ".text._Z3bazv" && echo "*_Z3foov*" && echo "*global_varb*" && echo "*global_vara*" && echo "*global_varc*") > final_layout_sequence.txt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@final_layout: final_layout.o final_layout_sequence.txt gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--section-ordering-file,final_layout_sequence.txt final_layout.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@final_layout.stdout: final_layout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) -n final_layout > final_layout.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_virtual_function_folding_test.o: icf_virtual_function_folding_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIE -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_virtual_function_folding_test: icf_virtual_function_folding_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_virtual_function_folding_test.o -pie
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_preemptible_functions_test.o: icf_preemptible_functions_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_preemptible_functions_test: icf_preemptible_functions_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_preemptible_functions_test.o -fPIC -shared
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_preemptible_functions_test.stdout: icf_preemptible_functions_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) icf_preemptible_functions_test > icf_preemptible_functions_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_string_merge_test.o: icf_string_merge_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_string_merge_test: icf_string_merge_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_string_merge_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_string_merge_test.stdout: icf_string_merge_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) icf_string_merge_test > icf_string_merge_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_sht_rel_addend_test_1.o: icf_sht_rel_addend_test_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_sht_rel_addend_test_2.o: icf_sht_rel_addend_test_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_sht_rel_addend_test: icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_sht_rel_addend_test.stdout: icf_sht_rel_addend_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) icf_sht_rel_addend_test > icf_sht_rel_addend_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@basic_test.o: basic_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@basic_test: basic_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@basic_static_test: basic_test.o gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -static basic_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@flagstest_debug.o: constructor_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@flagstest_ndebug.o: constructor_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test_1.o: incremental_test_1.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test_2.o: incremental_test_2.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test: incremental_test_1.o incremental_test_2.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -Wl,--incremental-full incremental_test_1.o incremental_test_2.o -Wl,-debug 2> incremental_test.cmdline
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test.stdout: incremental_test ../incremental-dump
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	../incremental-dump incremental_test > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_comdat_test_1.o: gc_comdat_test_1.cc 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_comdat_test_2.o: gc_comdat_test_2.cc 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_comdat_test: gc_comdat_test_1.o gc_comdat_test_2.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_comdat_test_1.o gc_comdat_test_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_comdat_test.stdout: gc_comdat_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -C gc_comdat_test > gc_comdat_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_tls_test.o: gc_tls_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_tls_test:gc_tls_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_tls_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_tls_test.stdout: gc_tls_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -C gc_tls_test > gc_tls_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_orphan_section_test.o: gc_orphan_section_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_orphan_section_test:gc_orphan_section_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_orphan_section_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_orphan_section_test.stdout: gc_orphan_section_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) gc_orphan_section_test > gc_orphan_section_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_dynamic_list_test.o: gc_dynamic_list_test.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -ffunction-sections -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_dynamic_list_test: gc_dynamic_list_test.o gcctestdir/ld $(srcdir)/gc_dynamic_list_test.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -Wl,--gc-sections -Wl,--dynamic-list,$(srcdir)/gc_dynamic_list_test.t gc_dynamic_list_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gc_dynamic_list_test.stdout: gc_dynamic_list_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) gc_dynamic_list_test > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_test.o: icf_test.cc 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_test: icf_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_test.stdout: icf_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -C icf_test > icf_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_keep_unique_test.o: icf_keep_unique_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_keep_unique_test: icf_keep_unique_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all -Wl,--keep-unique,_Z11unique_funcv icf_keep_unique_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_keep_unique_test.stdout: icf_keep_unique_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -C icf_keep_unique_test > icf_keep_unique_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_safe_test.o: icf_safe_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_safe_test: icf_safe_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=safe icf_safe_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_safe_test_1.stdout: icf_safe_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) icf_safe_test > icf_safe_test_1.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_safe_test_2.stdout: icf_safe_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -h icf_safe_test > icf_safe_test_2.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_safe_so_test.o: icf_safe_so_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_safe_so_test: icf_safe_so_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=safe icf_safe_so_test.o -fPIC -shared
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_safe_so_test_1.stdout: icf_safe_so_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) icf_safe_so_test > icf_safe_so_test_1.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_safe_so_test_2.stdout: icf_safe_so_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -h icf_safe_so_test > icf_safe_so_test_2.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@final_layout.o: final_layout.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@final_layout_sequence.txt:
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	(echo "*_Z3barv*" && echo ".text._Z3bazv" && echo "*_Z3foov*" && echo "*global_varb*" && echo "*global_vara*" && echo "*global_varc*") > final_layout_sequence.txt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@final_layout_script.lds:
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	(echo "SECTIONS { .text : { *(.text*) } .bss : { *(.bss*) } }") > final_layout_script.lds
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@final_layout: final_layout.o final_layout_sequence.txt final_layout_script.lds gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--section-ordering-file,final_layout_sequence.txt -Wl,-T,final_layout_script.lds final_layout.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@final_layout.stdout: final_layout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -n --synthetic final_layout > final_layout.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@text_section_grouping.o: text_section_grouping.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@text_section_grouping: text_section_grouping.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK)  -Bgcctestdir/ text_section_grouping.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@text_section_no_grouping: text_section_grouping.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK)  -Bgcctestdir/ -Wl,--no-text-reorder text_section_grouping.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@text_section_grouping.stdout: text_section_grouping
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -n --synthetic text_section_grouping > text_section_grouping.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@text_section_no_grouping.stdout: text_section_no_grouping
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -n --synthetic text_section_no_grouping > text_section_no_grouping.stdout 
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_virtual_function_folding_test.o: icf_virtual_function_folding_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIE -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_virtual_function_folding_test: icf_virtual_function_folding_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_virtual_function_folding_test.o -pie
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_preemptible_functions_test.o: icf_preemptible_functions_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_preemptible_functions_test: icf_preemptible_functions_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_preemptible_functions_test.o -fPIC -shared
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_preemptible_functions_test.stdout: icf_preemptible_functions_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) icf_preemptible_functions_test > icf_preemptible_functions_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_string_merge_test.o: icf_string_merge_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_string_merge_test: icf_string_merge_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_string_merge_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_string_merge_test.stdout: icf_string_merge_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) icf_string_merge_test > icf_string_merge_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_sht_rel_addend_test_1.o: icf_sht_rel_addend_test_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_sht_rel_addend_test_2.o: icf_sht_rel_addend_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_sht_rel_addend_test: icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@icf_sht_rel_addend_test.stdout: icf_sht_rel_addend_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) icf_sht_rel_addend_test > icf_sht_rel_addend_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@basic_test.o: basic_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@basic_test: basic_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@basic_static_test: basic_test.o gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -static basic_test.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@basic_pic_test.o: basic_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@basic_pic_test: basic_pic_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_pic_test.o
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@basic_static_pic_test: basic_pic_test.o gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@basic_pie_test.o: basic_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -fpie -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@basic_pie_test: basic_pie_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -pie basic_pie_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1_pic.o: two_file_test_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1b_pic.o: two_file_test_1b.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_2_pic.o: two_file_test_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2.so: two_file_test_2_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_relocatable.o: gcctestdir/ld two_file_test_1.o two_file_test_1b.o two_file_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -r -o $@ two_file_test_1.o two_file_test_1b.o two_file_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1_pie.o: two_file_test_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1b_pie.o: two_file_test_1b.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_2_pie.o: two_file_test_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_main_pie.o: two_file_test_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_pie_test: two_file_test_1_pie.o two_file_test_1b_pie.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@		two_file_test_2_pie.o two_file_test_main_pie.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -pie two_file_test_1_pie.o two_file_test_1b_pie.o two_file_test_2_pie.o two_file_test_main_pie.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared.dbg: two_file_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -w $< >$@ 2>/dev/null
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_1_nonpic.so: two_file_test_1.o gcctestdir/ld
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o -Wl,-z,notext
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_2_nonpic.so: two_file_test_2.o gcctestdir/ld
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_2.o
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_nonpic.so: two_file_test_1.o two_file_test_1b.o two_file_test_2.o gcctestdir/ld
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o -Wl,-z,notext
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o gcctestdir/ld
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o -Wl,-z,notext
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_mixed_1.so: two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so gcctestdir/ld
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so -Wl,-z,notext
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_mixed_pie_test: two_file_test_1.o two_file_test_1b_pie.o \
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@		two_file_test_main_pie.o two_file_shared_2.so gcctestdir/ld
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,-R,. -pie two_file_test_1.o two_file_test_1b_pie.o two_file_test_main_pie.o two_file_shared_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_strip_test: two_file_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_STRIP) -o two_file_strip_test two_file_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_shared_strip.so: two_file_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_STRIP) -S -o two_file_shared_strip.so two_file_shared.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_2_pic.o: common_test_2.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_2.so: common_test_2_pic.o common_test_3.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared common_test_2_pic.o common_test_3.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_3_pic.o: common_test_3.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@common_test_3.so: common_test_3_pic.o ver_test_2.script gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared common_test_3_pic.o -Wl,--version-script,$(srcdir)/ver_test_2.script
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_1_pic.o: exception_test_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_test_2_pic.o: exception_test_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_1.so: exception_test_1_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared_2.so: exception_test_2_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared exception_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o exception_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_file1.o: weak_undef_file1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_file2.o: weak_undef_file2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_lib.so: weak_undef_file1.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@alt/weak_undef_lib.so: weak_undef_file2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2.o
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_file1_nonpic.o: weak_undef_file1.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_file2_nonpic.o: weak_undef_file2.cc
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_undef_lib_nonpic.so: weak_undef_file1_nonpic.o
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1_nonpic.o -Wl,-z,notext
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@alt/weak_undef_lib_nonpic.so: weak_undef_file2_nonpic.o
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2_nonpic.o -Wl,-z,notext
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_1_pic.o: weak_alias_test_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_1.so: weak_alias_test_1_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_1_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_2_pic.o: weak_alias_test_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_2.so: weak_alias_test_2_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_3.o: weak_alias_test_3.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_4_pic.o: weak_alias_test_4.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_4.so: weak_alias_test_4_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_4_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_5_pic.o: weak_alias_test_5.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_alias_test_5.so: weak_alias_test_5_pic.o $(srcdir)/weak_alias_test.script gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_5_pic.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@		-Wl,--version-script,$(srcdir)/weak_alias_test.script
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_plt_main_pic.o: weak_plt_main.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_plt: weak_plt_main_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ weak_plt_main_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_plt_shared_pic.o: weak_plt_shared.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@weak_plt_shared.so: weak_plt_shared_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_plt_shared_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@copy_test_1_pic.o: copy_test_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@copy_test_1.so: gcctestdir/ld copy_test_1_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared copy_test_1_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@copy_test_2_pic.o: copy_test_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@copy_test_2.so: gcctestdir/ld copy_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared copy_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_pic.o: tls_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_file2_pic.o: tls_test_file2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_c_pic.o: tls_test_c.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -Wl,-z,defs
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared2.so: tls_test_file2_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@basic_pic_test.o: basic_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@basic_pic_test: basic_pic_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_pic_test.o
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@basic_static_pic_test: basic_pic_test.o gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@basic_pie_test.o: basic_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -fpie -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@basic_pie_test: basic_pie_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -pie basic_pie_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1_pic.o: two_file_test_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1b_pic.o: two_file_test_1b.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_2_pic.o: two_file_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2.so: two_file_test_2_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_relocatable.o: gcctestdir/ld two_file_test_1.o two_file_test_1b.o two_file_test_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -r -o $@ two_file_test_1.o two_file_test_1b.o two_file_test_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1_pie.o: two_file_test_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1b_pie.o: two_file_test_1b.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_2_pie.o: two_file_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_main_pie.o: two_file_test_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_pie_test: two_file_test_1_pie.o two_file_test_1b_pie.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		two_file_test_2_pie.o two_file_test_main_pie.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -pie two_file_test_1_pie.o two_file_test_1b_pie.o two_file_test_2_pie.o two_file_test_main_pie.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared.dbg: two_file_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -w $< >$@ 2>/dev/null
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_1_nonpic.so: two_file_test_1.o gcctestdir/ld
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o -Wl,-z,notext
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_2_nonpic.so: two_file_test_2.o gcctestdir/ld
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_2.o
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_nonpic.so: two_file_test_1.o two_file_test_1b.o two_file_test_2.o gcctestdir/ld
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o -Wl,-z,notext
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o gcctestdir/ld
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o -Wl,-z,notext
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_mixed_1.so: two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so gcctestdir/ld
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so -Wl,-z,notext
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_mixed_pie_test: two_file_test_1.o two_file_test_1b_pie.o \
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		two_file_test_main_pie.o two_file_shared_2.so gcctestdir/ld
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,-R,. -pie two_file_test_1.o two_file_test_1b_pie.o two_file_test_main_pie.o two_file_shared_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_strip_test: two_file_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_STRIP) -o two_file_strip_test two_file_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_shared_strip.so: two_file_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_STRIP) -S -o two_file_shared_strip.so two_file_shared.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_2_pic.o: common_test_2.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_2.so: common_test_2_pic.o common_test_3.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared common_test_2_pic.o common_test_3.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_3_pic.o: common_test_3.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@common_test_3.so: common_test_3_pic.o ver_test_2.script gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared common_test_3_pic.o -Wl,--version-script,$(srcdir)/ver_test_2.script
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_test_1_pic.o: exception_test_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_test_2_pic.o: exception_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_1.so: exception_test_1_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared_2.so: exception_test_2_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared exception_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o exception_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_file1.o: weak_undef_file1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_file2.o: weak_undef_file2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_lib.so: weak_undef_file1.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@alt/weak_undef_lib.so: weak_undef_file2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libweak_undef_2.a: weak_undef_file3.o weak_undef_file4.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_file3.o: weak_undef_file3.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_file4.o: weak_undef_file4.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_file1_nonpic.o: weak_undef_file1.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_file2_nonpic.o: weak_undef_file2.cc
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_undef_lib_nonpic.so: weak_undef_file1_nonpic.o
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1_nonpic.o -Wl,-z,notext
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@alt/weak_undef_lib_nonpic.so: weak_undef_file2_nonpic.o
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2_nonpic.o -Wl,-z,notext
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_1_pic.o: weak_alias_test_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_1.so: weak_alias_test_1_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_1_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_2_pic.o: weak_alias_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_2.so: weak_alias_test_2_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_3.o: weak_alias_test_3.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_4_pic.o: weak_alias_test_4.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_4.so: weak_alias_test_4_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_4_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_5_pic.o: weak_alias_test_5.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_alias_test_5.so: weak_alias_test_5_pic.o $(srcdir)/weak_alias_test.script gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_5_pic.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		-Wl,--version-script,$(srcdir)/weak_alias_test.script
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_plt_main_pic.o: weak_plt_main.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_plt: weak_plt_main_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ weak_plt_main_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_plt_shared_pic.o: weak_plt_shared.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@weak_plt_shared.so: weak_plt_shared_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared weak_plt_shared_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@copy_test_1_pic.o: copy_test_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@copy_test_1.so: gcctestdir/ld copy_test_1_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared copy_test_1_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@copy_test_2_pic.o: copy_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@copy_test_2.so: gcctestdir/ld copy_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared copy_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_pic.o: tls_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_file2_pic.o: tls_test_file2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_c_pic.o: tls_test_c.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -Wl,-z,defs
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared2.so: tls_test_file2_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_pic.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_pic_ie.o: tls_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_file2_pic_ie.o: tls_test_file2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_c_pic_ie.o: tls_test_c.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(COMPILE) -c -fpic -ftls-model=initial-exec $(TLS_TEST_C_CFLAGS) -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_ie_shared.so: tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_c.o: tls_test_c.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(COMPILE) -c $(TLS_TEST_C_CFLAGS) -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_pic_ie.o: tls_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_file2_pic_ie.o: tls_test_file2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_c_pic_ie.o: tls_test_c.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(COMPILE) -c -fpic -ftls-model=initial-exec $(TLS_TEST_C_CFLAGS) -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_ie_shared.so: tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_c.o: tls_test_c.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(COMPILE) -c $(TLS_TEST_C_CFLAGS) -o $@ $<
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_main_pie.o: tls_test_main.cc tls_test.h
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_pie.o: tls_test.cc tls_test.h
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_file2_pie.o: tls_test_file2.cc tls_test.h
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_c_pie.o: tls_test_c.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pie_test: tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@		tls_test_c_pie.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -pie tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o tls_test_c_pie.o -lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_main_pie.o: tls_test_main.cc tls_test.h
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_pie.o: tls_test.cc tls_test.h
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_file2_pie.o: tls_test_file2.cc tls_test.h
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_c_pie.o: tls_test_c.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pie_test: tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@		tls_test_c_pie.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -pie tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o tls_test_c_pie.o -lpthread
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pie_pic_test: tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@		tls_test_c_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -pie tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -lpthread
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_pie_pic_test: tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@		tls_test_c_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -pie tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -lpthread
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_gnu2.o: tls_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -mtls-dialect=gnu2 -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_file2_gnu2.o: tls_test_file2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -mtls-dialect=gnu2 -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_c_gnu2.o: tls_test_c.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(COMPILE) -c -fpic -mtls-dialect=gnu2 $(TLS_TEST_C_CFLAGS) -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_gnu2_shared2.so: tls_test_file2_gnu2.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_gnu2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_gnu2.o: tls_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -mtls-dialect=gnu2 -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_file2_gnu2.o: tls_test_file2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(CXXCOMPILE) -c -fpic -mtls-dialect=gnu2 -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_c_gnu2.o: tls_test_c.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(COMPILE) -c -fpic -mtls-dialect=gnu2 $(TLS_TEST_C_CFLAGS) -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_gnu2_shared2.so: tls_test_file2_gnu2.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_gnu2.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_gnu2_shared.so: tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o tls_test_c.o gcctestdir/ld
-@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test.o tls_test_file2.o tls_test_c.o -Wl,-z,notext
-@GCC_TRUE@@NATIVE_LINKER_TRUE@many_sections_define.h:
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	(for i in `seq 1 70000`; do \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	   echo "int var_$$i __attribute__((section(\"section_$$i\"))) = $$i;"; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	 done) > $@.tmp
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	mv -f $@.tmp $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@many_sections_check.h:
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	(for i in `seq 1 1000 70000`; do \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	   echo "assert(var_$$i == $$i);"; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	 done) > $@.tmp
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	mv -f $@.tmp $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@many_sections_r_test.o: many_sections_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -r -o $@ many_sections_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@many_sections_r_test: many_sections_r_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ many_sections_r_test.o $(LIBS)
-@GCC_TRUE@@NATIVE_LINKER_TRUE@debug_msg.o: debug_msg.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/debug_msg.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@odr_violation1.o: odr_violation1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@tls_test_gnu2_shared.so: tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_DESCRIPTORS_TRUE@@TLS_GNU2_DIALECT_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o tls_test_c.o gcctestdir/ld
+@FN_PTRS_IN_SO_WITHOUT_PIC_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared tls_test.o tls_test_file2.o tls_test_c.o -Wl,-z,notext
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@many_sections_define.h:
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	(for i in `seq 1 70000`; do \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	   echo "int var_$$i __attribute__((section(\"section_$$i\"))) = $$i;"; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	 done) > $@.tmp
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	mv -f $@.tmp $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@many_sections_check.h:
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	(for i in `seq 1 1000 70000`; do \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	   echo "assert(var_$$i == $$i);"; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	 done) > $@.tmp
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	mv -f $@.tmp $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@many_sections_r_test.o: many_sections_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -r -o $@ many_sections_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@many_sections_r_test: many_sections_r_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ many_sections_r_test.o $(LIBS)
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@debug_msg.o: debug_msg.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/debug_msg.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@odr_violation1.o: odr_violation1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -w -o $@ $(srcdir)/odr_violation1.cc
 # Compile with different optimization flags to check that rearranged
 # instructions don't cause a false positive.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@odr_violation2.o: odr_violation2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O2 -g -c -w -o $@ $(srcdir)/odr_violation2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@debug_msg.err: debug_msg.o odr_violation1.o odr_violation2.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	then \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of debug_msg should have failed"; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  rm -f $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  exit 1; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	fi
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@debug_msg_cdebug.o: debug_msg.cc gcctestdir/as
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/debug_msg.cc
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@odr_violation1_cdebug.o: odr_violation1.cc gcctestdir/as
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation1.cc
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@odr_violation2_cdebug.o: odr_violation2.cc gcctestdir/as
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O2 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation2.cc
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@debug_msg_cdebug.err: debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o gcctestdir/ld
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o "2>$@"
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o 2>$@; \
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	then \
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of debug_msg_cdebug should have failed"; \
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	  rm -f $@; \
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	  exit 1; \
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	fi
-@GCC_TRUE@@NATIVE_LINKER_TRUE@debug_msg.so: debug_msg.cc gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@odr_violation1.so: odr_violation1.cc gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@odr_violation2.so: odr_violation2.cc gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O2 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	then \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of debug_msg_so should have failed"; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  rm -f $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  exit 1; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	fi
-@GCC_TRUE@@NATIVE_LINKER_TRUE@debug_msg_ndebug.so: debug_msg.cc gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@odr_violation1_ndebug.so: odr_violation1.cc gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@odr_violation2_ndebug.so: odr_violation2.cc gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O2 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@debug_msg_ndebug.err: debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so "2>$@"
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so 2>$@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	then \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of debug_msg_ndebug should have failed"; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  rm -f $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  exit 1; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	fi
-@GCC_TRUE@@NATIVE_LINKER_TRUE@undef_symbol.o: undef_symbol.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -fPIC $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@undef_symbol.so: undef_symbol.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared undef_symbol.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	then \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of undef_symbol_test should have failed"; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  rm -f $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  exit 1; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	fi
-@GCC_TRUE@@NATIVE_LINKER_TRUE@flagstest_o_specialfile: flagstest_debug.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< 2>&1 | cat > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	chmod a+x $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -s $@
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@flagstest_compress_debug_sections: flagstest_debug.o gcctestdir/ld
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	test -s $@
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@flagstest_o_specialfile_and_compress_debug_sections: flagstest_debug.o \
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@		gcctestdir/ld
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< -Wl,--compress-debug-sections=zlib 2>&1 | cat > $@
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	chmod a+x $@
-@GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	test -s $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@flagstest_o_ttext_1: flagstest_debug.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,-Ttext,0x400000 -Wl,-Tdata,0x800000
-@GCC_TRUE@@NATIVE_LINKER_TRUE@flagstest_o_ttext_2: flagstest_debug.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,-Ttext,0x400010 -Wl,-Tdata,0x800010
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_1.so: ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_2.so: ver_test_2.o $(srcdir)/ver_test_2.script ver_test_4.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_2.script -Wl,-R,. ver_test_2.o ver_test_4.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_4.so: ver_test_4.o $(srcdir)/ver_test_4.script gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_1.o: ver_test_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_2.o: ver_test_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_3.o: ver_test_3.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_4.o: ver_test_4.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_1.syms: ver_test_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_2.syms: ver_test_2
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_4.syms: ver_test_4.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@odr_violation2.o: odr_violation2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O2 -g -c -w -o $@ $(srcdir)/odr_violation2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@debug_msg.err: debug_msg.o odr_violation1.o odr_violation2.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	then \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of debug_msg should have failed"; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  rm -f $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  exit 1; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	fi
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@missing_key_func.o: missing_key_func.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -o $@ $(srcdir)/missing_key_func.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@missing_key_func.err: missing_key_func.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -o missing_key_func missing_key_func.o "2>$@"
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -o missing_key_func missing_key_func.o 2>$@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	then \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of missing_key_func should have failed"; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  rm -f $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  exit 1; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	fi
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@debug_msg_cdebug.o: debug_msg.cc gcctestdir/as
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/debug_msg.cc
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@odr_violation1_cdebug.o: odr_violation1.cc gcctestdir/as
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation1.cc
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@odr_violation2_cdebug.o: odr_violation2.cc gcctestdir/as
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O2 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation2.cc
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@debug_msg_cdebug.err: debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o gcctestdir/ld
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o "2>$@"
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o 2>$@; \
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	then \
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of debug_msg_cdebug should have failed"; \
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  rm -f $@; \
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  exit 1; \
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	fi
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@debug_msg.so: debug_msg.cc gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@odr_violation1.so: odr_violation1.cc gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@odr_violation2.so: odr_violation2.cc gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O2 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	then \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of debug_msg_so should have failed"; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  rm -f $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  exit 1; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	fi
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@debug_msg_ndebug.so: debug_msg.cc gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@odr_violation1_ndebug.so: odr_violation1.cc gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@odr_violation2_ndebug.so: odr_violation2.cc gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O2 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@debug_msg_ndebug.err: debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so "2>$@"
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so 2>$@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	then \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of debug_msg_ndebug should have failed"; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  rm -f $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  exit 1; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	fi
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@undef_symbol.o: undef_symbol.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -c -fPIC $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@undef_symbol.so: undef_symbol.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared undef_symbol.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	then \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of undef_symbol_test should have failed"; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  rm -f $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  exit 1; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	fi
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@flagstest_o_specialfile: flagstest_debug.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< 2>&1 | cat > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	chmod a+x $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -s $@
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@flagstest_compress_debug_sections: flagstest_debug.o gcctestdir/ld
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -s $@
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@flagstest_o_specialfile_and_compress_debug_sections: flagstest_debug.o \
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		gcctestdir/ld
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< -Wl,--compress-debug-sections=zlib 2>&1 | cat > $@
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	chmod a+x $@
+@GCC_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -s $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@flagstest_o_ttext_1: flagstest_debug.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,-Ttext,0x400000 -Wl,-Tdata,0x800000
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@flagstest_o_ttext_2: flagstest_debug.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,-Ttext,0x400010 -Wl,-Tdata,0x800010
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_1.so: ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_2.so: ver_test_2.o $(srcdir)/ver_test_2.script ver_test_4.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_2.script -Wl,-R,. ver_test_2.o ver_test_4.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_4.so: ver_test_4.o $(srcdir)/ver_test_4.script gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_1.o: ver_test_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_2.o: ver_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_3.o: ver_test_3.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_4.o: ver_test_4.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_1.syms: ver_test_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_2.syms: ver_test_2
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_4.syms: ver_test_4.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_5.so: ver_test_5.o $(srcdir)/ver_test_5.script ver_test_4.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_5.script ver_test_5.o ver_test_4.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_5.o: ver_test_5.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_5.syms: ver_test_5.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_5.so: ver_test_5.o $(srcdir)/ver_test_5.script ver_test_4.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_5.script ver_test_5.o ver_test_4.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_5.o: ver_test_5.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_5.syms: ver_test_5.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_7.so: ver_test_4.o $(srcdir)/ver_test_4.script ver_test_7.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o ver_test_7.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_7.o: ver_test_7.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_7.syms: ver_test_7.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_8_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_8_2.so: two_file_test_2_pic.o $(srcdir)/ver_test_8.script gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_8.script two_file_test_2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_9.so: ver_test_9.o ver_test_4.so ver_test_5.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-R,. ver_test_9.o ver_test_5.so ver_test_4.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_9.o: ver_test_9.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_10.syms: ver_test_10.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_10.so: gcctestdir/ld ver_test_2.o ver_test_10.script
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_10.script ver_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_11.a: ver_test_1.o ver_test_2.o ver_test_4.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_12.o: gcctestdir/ld ver_test_1.o ver_test_2.o ver_test_4.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -r -o $@ ver_test_1.o ver_test_2.o ver_test_4.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_7.so: ver_test_4.o $(srcdir)/ver_test_4.script ver_test_7.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o ver_test_7.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_7.o: ver_test_7.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_7.syms: ver_test_7.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_8_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_8_2.so: two_file_test_2_pic.o $(srcdir)/ver_test_8.script gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_8.script two_file_test_2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_9.so: ver_test_9.o ver_test_4.so ver_test_5.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-R,. ver_test_9.o ver_test_5.so ver_test_4.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_9.o: ver_test_9.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_10.syms: ver_test_10.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -s $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_10.so: gcctestdir/ld ver_test_2.o ver_test_10.script
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_10.script ver_test_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_11.a: ver_test_1.o ver_test_2.o ver_test_4.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_test_12.o: gcctestdir/ld ver_test_1.o ver_test_2.o ver_test_4.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -r -o $@ ver_test_1.o ver_test_2.o ver_test_4.o
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_1.so: gcctestdir/ld protected_1_pic.o protected_2_pic.o protected_3_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared protected_1_pic.o protected_2_pic.o protected_3_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_1_pic.o: protected_1.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_2_pic.o: protected_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_3_pic.o: protected_3.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_4_pic.o: protected_4.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@protected_3.err: protected_4_pic.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -shared -o protected_4.so protected_4_pic.o "2>$@"
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -shared -o protected_4.so protected_4_pic.o 2>$@; then \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of protected_4.so should have failed"; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  rm -f $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  exit 1; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	fi
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_test.so: gcctestdir/ld relro_test_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro relro_test_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_test_pic.o: relro_test.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_test.stdout: relro_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW relro_test.so > relro_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_now_test.so: gcctestdir/ld relro_test_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -Wl,-z,now relro_test_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_strip_test.so: relro_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_STRIP) -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@relro_script_test.so: gcctestdir/ld relro_script_test.t relro_test_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -T $(srcdir)/relro_script_test.t relro_test_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_2.o: justsyms_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_2r.o: justsyms_2.o gcctestdir/ld $(srcdir)/justsyms.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -o $@ -r -T $(srcdir)/justsyms.t justsyms_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_lib.o: justsyms_lib.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@justsyms_lib: justsyms_lib.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -o $@ -Ttext=0x1000200 -Tdata=0x2000000 -e exported_func justsyms_lib.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_1.so: gcctestdir/ld protected_1_pic.o protected_2_pic.o protected_3_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared protected_1_pic.o protected_2_pic.o protected_3_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_1_pic.o: protected_1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_2_pic.o: protected_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_3_pic.o: protected_3.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_4_pic.o: protected_4.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@protected_3.err: protected_4_pic.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -shared -o protected_4.so protected_4_pic.o "2>$@"
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -shared -o protected_4.so protected_4_pic.o 2>$@; then \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of protected_4.so should have failed"; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  rm -f $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  exit 1; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	fi
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_test.so: gcctestdir/ld relro_test_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro relro_test_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_test_pic.o: relro_test.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_test.stdout: relro_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW relro_test.so > relro_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_now_test.so: gcctestdir/ld relro_test_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -Wl,-z,now relro_test_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_strip_test.so: relro_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_STRIP) -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@relro_script_test.so: gcctestdir/ld relro_script_test.t relro_test_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -T $(srcdir)/relro_script_test.t relro_test_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_2.o: justsyms_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_2r.o: justsyms_2.o gcctestdir/ld $(srcdir)/justsyms.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -o $@ -r -T $(srcdir)/justsyms.t justsyms_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_lib.o: justsyms_lib.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@justsyms_lib: justsyms_lib.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -o $@ -Ttext=0x1000200 -Tdata=0x2000000 -e exported_func justsyms_lib.o
 # Copy the file to the build directory to avoid worrying about the
 # full pathname in the generated symbols.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@binary.txt: $(srcdir)/binary.in
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LN_S) $< $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_matching_def.so: ver_matching_def_pic.o $(srcdir)/version_script.map gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -O0 -Bgcctestdir/ -shared ver_matching_def_pic.o -Wl,--version-script=$(srcdir)/version_script.map
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_matching_def_pic.o: ver_matching_def.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ver_matching_test.stdout: ver_matching_def.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_OBJDUMP) -T ver_matching_def.so | $(TEST_CXXFILT) > ver_matching_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_3: basic_test.o gcctestdir/ld script_test_3.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_3.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_3.stdout: script_test_3
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_3 > script_test_3.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_4: basic_test.o gcctestdir/ld $(srcdir)/script_test_4.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_4.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_4.stdout: script_test_4
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_4 > script_test_4.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_5: script_test_5.o gcctestdir/ld $(srcdir)/script_test_5.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ script_test_5.o -T $(srcdir)/script_test_5.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_5.stdout: script_test_5
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -SW script_test_5 > script_test_5.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_6: basic_test.o gcctestdir/ld $(srcdir)/script_test_6.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_6.t \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,-Ttext=0x10001000 -Wl,-Tdata=0x10200000 -Wl,-Tbss=0x10400000
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_6.stdout: script_test_6
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_6 > script_test_6.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_7: basic_test.o gcctestdir/ld $(srcdir)/script_test_7.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_7.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_7.stdout: script_test_7
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_7 > script_test_7.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_8: basic_test.o gcctestdir/ld $(srcdir)/script_test_7.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_7.t \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	-Wl,-Ttext=0x20001000 -Wl,-Tdata=0x20200000 -Wl,-Tbss=0x20400000
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_8.stdout: script_test_8
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_8 > script_test_8.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_9.o: script_test_9.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_9: gcctestdir/ld $(srcdir)/script_test_9.t script_test_9.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ script_test_9.o -T $(srcdir)/script_test_9.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@script_test_9.stdout: script_test_9
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -lW script_test_9 > script_test_9.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list: basic_test.o gcctestdir/ld $(srcdir)/dynamic_list.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  -Wl,--dynamic-list $(srcdir)/dynamic_list.t \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  -Wl,--dynamic-list-data \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  -Wl,--dynamic-list-cpp-new \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	  -Wl,--dynamic-list-cpp-typeinfo
-@GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list.stdout: dynamic_list
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -W --dyn-syms dynamic_list > dynamic_list.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@binary.txt: $(srcdir)/binary.in
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LN_S) $< $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_matching_def.so: ver_matching_def_pic.o $(srcdir)/version_script.map gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -O0 -Bgcctestdir/ -shared ver_matching_def_pic.o -Wl,--version-script=$(srcdir)/version_script.map
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_matching_def_pic.o: ver_matching_def.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ver_matching_test.stdout: ver_matching_def.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_OBJDUMP) -T ver_matching_def.so | $(TEST_CXXFILT) > ver_matching_test.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_3: basic_test.o gcctestdir/ld script_test_3.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_3.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_3.stdout: script_test_3
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_3 > script_test_3.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_4: basic_test.o gcctestdir/ld $(srcdir)/script_test_4.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_4.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_4.stdout: script_test_4
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_4 > script_test_4.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_5: script_test_5.o gcctestdir/ld $(srcdir)/script_test_5.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ script_test_5.o -T $(srcdir)/script_test_5.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_5.stdout: script_test_5
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -SW script_test_5 > script_test_5.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_6: basic_test.o gcctestdir/ld $(srcdir)/script_test_6.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_6.t \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	-Wl,-Ttext=0x10001000 -Wl,-Tdata=0x10200000 -Wl,-Tbss=0x10400000
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_6.stdout: script_test_6
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_6 > script_test_6.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_7: basic_test.o gcctestdir/ld $(srcdir)/script_test_7.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_7.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_7.stdout: script_test_7
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_7 > script_test_7.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_8: basic_test.o gcctestdir/ld $(srcdir)/script_test_7.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o -T $(srcdir)/script_test_7.t \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	-Wl,-Ttext=0x20001000 -Wl,-Tdata=0x20200000 -Wl,-Tbss=0x20400000
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_8.stdout: script_test_8
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -SlW script_test_8 > script_test_8.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_9.o: script_test_9.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_9: gcctestdir/ld $(srcdir)/script_test_9.t script_test_9.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ script_test_9.o -T $(srcdir)/script_test_9.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_9.stdout: script_test_9
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -lW script_test_9 > script_test_9.stdout
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_11: gcctestdir/ld script_test_11_r.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ script_test_11_r.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_11_r.o: gcctestdir/ld $(srcdir)/script_test_11.t script_test_11.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -r -o $@ -T $(srcdir)/script_test_11.t script_test_11.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@script_test_11.o: script_test_11.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -g -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list: basic_test.o gcctestdir/ld $(srcdir)/dynamic_list.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  -Wl,--dynamic-list $(srcdir)/dynamic_list.t \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  -Wl,--dynamic-list-data \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  -Wl,--dynamic-list-cpp-new \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  -Wl,--dynamic-list-cpp-typeinfo
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list.stdout: dynamic_list
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -W --dyn-syms dynamic_list > dynamic_list.stdout
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libthin1.a: thin_archive_test_1.o alt/thin_archive_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@alt/libthin2.a: thin_archive_test_3.o alt/thin_archive_test_4.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libthin3.a: thin_archive_test_1.o alt/thin_archive_test_4.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@alt/libthin4.a: alt/thin_archive_test_2.o thin_archive_test_3.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libthinall.a: libthin3.a alt/libthin4.a
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@alt/thin_archive_test_2.o: thin_archive_test_2.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@alt/thin_archive_test_4.o: thin_archive_test_4.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_1: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms gcctestdir/ld plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms 2>plugin_test_1.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_1.err: plugin_test_1
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@touch plugin_test_1.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_2: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_shared_2.so gcctestdir/ld plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,-R,.,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_shared_2.so 2>plugin_test_2.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_2.err: plugin_test_2
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@touch plugin_test_2.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_3: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms gcctestdir/ld plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--export-dynamic -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms 2>plugin_test_3.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_3.err: plugin_test_3
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@touch plugin_test_3.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_4: two_file_test_main.o plugin_test_4.a gcctestdir/ld plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o -Wl,--whole-archive,plugin_test_4.a,--no-whole-archive 2>plugin_test_4.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_4.err: plugin_test_4
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@touch plugin_test_4.err
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list_lib1.so: gcctestdir/ld dynamic_list_lib1.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared dynamic_list_lib1.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list_lib1.o: dynamic_list_lib1.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_4.a: two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_AR) cr $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_5: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms unused.syms gcctestdir/ld plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv",--gc-sections two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms unused.syms
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_6: plugin_common_test_1.syms plugin_common_test_2.syms gcctestdir/ld plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.syms plugin_common_test_2.syms 2>plugin_test_6.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_6.err: plugin_test_6
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@touch plugin_test_6.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_7: plugin_test_7_1.o plugin_test_7_1.syms plugin_test_7_2.o gcctestdir/ld plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(LINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--gc-sections,--print-gc-sections plugin_test_7_1.syms plugin_test_7_2.o 2>plugin_test_7.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_7.syms: plugin_test_7
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_7_1.o: plugin_test_7_1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(COMPILE) -DLTO -O0 -c -ffunction-sections -fdata-sections -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_7_1_orig.o: plugin_test_7_1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(COMPILE) -O0 -c -ffunction-sections -fdata-sections -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_7_1.syms: plugin_test_7_1_orig.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_7_2.o: plugin_test_7_2.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(COMPILE) -O0 -c -ffunction-sections -fdata-sections -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_7.err: plugin_test_7
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_8.o: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.o ../ld-new plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	../ld-new -r -o $@ --no-demangle --plugin "./plugin_test.so" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_8: plugin_test_8.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle plugin_test_8.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test_9.err: two_file_test_main.o two_file_test_1c.syms two_file_test_2.syms gcctestdir/ld plugin_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.syms two_file_test_2.syms "2>$@"
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.syms two_file_test_2.syms 2>$@; then \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	  echo 1>&2 "Link of plugin_test_9 should have failed"; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	  rm -f $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	  exit 1; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	fi
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dynamic_list_lib2.o: dynamic_list_lib2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -fpic -o $@ $<
+
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libthin1.a: thin_archive_test_1.o alt/thin_archive_test_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@alt/libthin2.a: thin_archive_test_3.o alt/thin_archive_test_4.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libthin3.a: thin_archive_test_1.o alt/thin_archive_test_4.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@alt/libthin4.a: alt/thin_archive_test_2.o thin_archive_test_3.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libthinall.a: libthin3.a alt/libthin4.a
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) crT $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@alt/thin_archive_test_2.o: thin_archive_test_2.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@alt/thin_archive_test_4.o: thin_archive_test_4.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_1: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms 2>plugin_test_1.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_1.err: plugin_test_1
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@touch plugin_test_1.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_2: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_shared_2.so gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,-R,.,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_shared_2.so 2>plugin_test_2.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_2.err: plugin_test_2
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@touch plugin_test_2.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_3: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--export-dynamic -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms empty.syms 2>plugin_test_3.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_3.err: plugin_test_3
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@touch plugin_test_3.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_4: two_file_test_main.o plugin_test_4.a gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o -Wl,--whole-archive,plugin_test_4.a,--no-whole-archive 2>plugin_test_4.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_4.err: plugin_test_4
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@touch plugin_test_4.err
+
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_4.a: two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) cr $@ $^
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_5: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms unused.syms gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv",--gc-sections two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.syms unused.syms
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_6: plugin_common_test_1.syms plugin_common_test_2.syms gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.syms plugin_common_test_2.syms 2>plugin_test_6.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_6.err: plugin_test_6
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@touch plugin_test_6.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_7: plugin_test_7_1.o plugin_test_7_1.syms plugin_test_7_2.o gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--gc-sections,--print-gc-sections plugin_test_7_1.syms plugin_test_7_2.o 2>plugin_test_7.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_7.syms: plugin_test_7
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_7_1.o: plugin_test_7_1.c
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -DLTO -O0 -c -ffunction-sections -fdata-sections -o $@ $<
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_7_1_orig.o: plugin_test_7_1.c
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -c -ffunction-sections -fdata-sections -o $@ $<
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_7_1.syms: plugin_test_7_1_orig.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_7_2.o: plugin_test_7_2.c
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -c -ffunction-sections -fdata-sections -o $@ $<
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_7.err: plugin_test_7
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_8.o: two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.o ../ld-new plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	../ld-new -r -o $@ --no-demangle --plugin "./plugin_test.so" two_file_test_main.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_8: plugin_test_8.o gcctestdir/ld
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle plugin_test_8.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test_9.err: two_file_test_main.o two_file_test_1c.syms two_file_test_2.syms gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo $(CXXLINK) -Bgcctestdir/ -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.syms two_file_test_2.syms "2>$@"
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@if $(CXXLINK) -Bgcctestdir/ -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.syms two_file_test_2.syms 2>$@; then \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  echo 1>&2 "Link of plugin_test_9 should have failed"; \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  rm -f $@; \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	  exit 1; \
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	fi
 # Make a .syms file that claims to define the symbol _Z4t16av.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@two_file_test_1c.syms: two_file_test_1.syms two_file_test_1c.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	cp two_file_test_1.syms $@.tmp
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	grep "_Z4t16av" two_file_test_1b.syms >> $@.tmp
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	mv -f $@.tmp $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@two_file_test_1c.o: two_file_test_1.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	cp two_file_test_1.o $@
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1c.syms: two_file_test_1.syms two_file_test_1c.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp two_file_test_1.syms $@.tmp
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	grep "_Z4t16av" two_file_test_1b.syms >> $@.tmp
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	mv -f $@.tmp $@
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1c.o: two_file_test_1.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp two_file_test_1.o $@
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test.so: plugin_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(LINK) -Bgcctestdir/ -shared plugin_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_test.o: plugin_test.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(COMPILE) -O0 -c -fpic -o $@ $<
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test.so: plugin_test.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared plugin_test.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_test.o: plugin_test.c
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -c -fpic -o $@ $<
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@two_file_test_main.syms: two_file_test_main.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@two_file_test_1.syms: two_file_test_1.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@two_file_test_1b.syms: two_file_test_1b.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@two_file_test_2.syms: two_file_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_common_test_1.syms: plugin_common_test_1.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_common_test_2.syms: plugin_common_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_main.syms: two_file_test_main.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1.syms: two_file_test_1.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1b.syms: two_file_test_1b.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_2.syms: two_file_test_2.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_common_test_1.syms: plugin_common_test_1.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_common_test_2.syms: plugin_common_test_2.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@empty.syms:
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@echo "" >$@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@echo "Symbol table" >>$@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@unused.syms: unused.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@echo "     1: 00000000     4 FUNC    GLOBAL DEFAULT    1 UNUSED" >>$@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@unused.o: unused.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(COMPILE) -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@unused.c:
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	@cp /dev/null $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_final_layout.o: plugin_final_layout.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_final_layout: plugin_final_layout.o plugin_section_order.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_order.so" plugin_final_layout.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_final_layout.stdout: plugin_final_layout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(TEST_NM) -n plugin_final_layout > plugin_final_layout.stdout
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@empty.syms:
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo "" >$@
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo "Symbol table" >>$@
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@plugin_test_tls: two_file_test_tls.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2_tls.syms gcctestdir/ld plugin_test.so
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_tls.o two_file_test_1.syms two_file_test_1b.syms two_file_test_2_tls.syms 2>plugin_test_tls.err
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@plugin_test_tls.err: plugin_test_tls
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	@touch plugin_test_tls.err
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_section_order.so: plugin_section_order.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(LINK) -Bgcctestdir/ -shared plugin_section_order.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@plugin_section_order.o: plugin_section_order.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@@PLUGINS_TRUE@	$(COMPILE) -O0 -c -fpic -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@exclude_libs_test.syms: exclude_libs_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libexclude_libs_test_1.a: exclude_libs_test_1.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libexclude_libs_test_2.a: exclude_libs_test_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@alt/libexclude_libs_test_3.a: exclude_libs_test_3.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@local_labels_test.o: ver_test_6.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -g -c -Wa,-L -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@local_labels_test: local_labels_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ local_labels_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_test.syms: discard_locals_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@two_file_test_2_tls.syms: two_file_test_2_tls.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@@TLS_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@unused.syms: unused.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@echo "     1: 00000000     4 FUNC    GLOBAL DEFAULT    1 UNUSED" >>$@
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@unused.o: unused.c
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -o $@ $<
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@unused.c:
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@cp /dev/null $@
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_final_layout.o: plugin_final_layout.cc
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_final_layout: plugin_final_layout.o plugin_section_order.so gcctestdir/ld
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_order.so" plugin_final_layout.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_final_layout.stdout: plugin_final_layout
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -n plugin_final_layout > plugin_final_layout.stdout
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_final_layout_readelf.stdout: plugin_final_layout
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -Wl plugin_final_layout > plugin_final_layout_readelf.stdout
+
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_section_order.so: plugin_section_order.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared plugin_section_order.o
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@plugin_section_order.o: plugin_section_order.c
+@GCC_TRUE@@PLUGINS_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -c -fpic -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@exclude_libs_test.syms: exclude_libs_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libexclude_libs_test_1.a: exclude_libs_test_1.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libexclude_libs_test_2.a: exclude_libs_test_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@alt/libexclude_libs_test_3.a: exclude_libs_test_3.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@local_labels_test.o: ver_test_6.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -g -c -Wa,-L -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@local_labels_test: local_labels_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ local_labels_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_test.syms: discard_locals_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
 # '-Wa,-L' is required to preserve the local label used for testing.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_test.o: discard_locals_test.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -Wa,-L -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_test.o: discard_locals_test.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -Wa,-L -o $@ $<
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_relocatable_test1.syms: discard_locals_relocatable_test1.out
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_relocatable_test.o: discard_locals_relocatable_test.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -Wa,-L -fPIC -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_relocatable_test1.out: discard_locals_relocatable_test.o ../ld-new
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	../ld-new --discard-locals -relocatable -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_relocatable_test1.syms: discard_locals_relocatable_test1.out
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_relocatable_test.o: discard_locals_relocatable_test.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -Wa,-L -fPIC -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_relocatable_test1.out: discard_locals_relocatable_test.o ../ld-new
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	../ld-new --discard-locals -relocatable -o $@ $<
 
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_relocatable_test2.syms: discard_locals_relocatable_test2.out
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
-@GCC_TRUE@@NATIVE_LINKER_TRUE@discard_locals_relocatable_test2.out: discard_locals_relocatable_test.o ../ld-new
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	../ld-new --discard-all -relocatable -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libhidden.so: hidden_test_1.c gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -Bgcctestdir/ -g -shared -fPIC -w -o $@ $(srcdir)/hidden_test_1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@hidden_test: hidden_test_main.o libhidden.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -Wl,-R,. hidden_test_main.o libhidden.so 2>hidden_test.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@hidden_test.err: hidden_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	@touch hidden_test.err
-@GCC_TRUE@@NATIVE_LINKER_TRUE@retain_symbols_file_test.so: basic_pic_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo 'main' > retain_symbols_file_test.in
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo 't1' >> retain_symbols_file_test.in
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo '_ZN4t16bC1Ev' >> retain_symbols_file_test.in
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo '_ZNK4t20a3getEv' >> retain_symbols_file_test.in
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo '_Z3t18v' >> retain_symbols_file_test.in
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	echo '__tcf_0' >> retain_symbols_file_test.in	
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-retain-symbols-file,retain_symbols_file_test.in basic_pic_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@retain_symbols_file_test.stdout: retain_symbols_file_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_NM) -C retain_symbols_file_test.so > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@permission_test: basic_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	umask 022; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	rm -f $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	touch $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	chmod 600 $@; \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@searched_file_test_lib.o: searched_file_test_lib.cc
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@alt/searched_file_test_lib.a: searched_file_test_lib.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_relocatable_test2.syms: discard_locals_relocatable_test2.out
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sW $< >$@ 2>/dev/null
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@discard_locals_relocatable_test2.out: discard_locals_relocatable_test.o ../ld-new
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	../ld-new --discard-all -relocatable -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libhidden.so: hidden_test_1.c gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -Bgcctestdir/ -g -shared -fPIC -w -o $@ $(srcdir)/hidden_test_1.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@hidden_test: hidden_test_main.o libhidden.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -Wl,-R,. hidden_test_main.o libhidden.so 2>hidden_test.err
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@hidden_test.err: hidden_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@touch hidden_test.err
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@retain_symbols_file_test.so: basic_pic_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo 'main' > retain_symbols_file_test.in
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo 't1' >> retain_symbols_file_test.in
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo '_ZN4t16bC1Ev' >> retain_symbols_file_test.in
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo '_ZNK4t20a3getEv' >> retain_symbols_file_test.in
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo '_Z3t18v' >> retain_symbols_file_test.in
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	echo '__tcf_0' >> retain_symbols_file_test.in	
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -shared -Wl,-retain-symbols-file,retain_symbols_file_test.in basic_pic_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@retain_symbols_file_test.stdout: retain_symbols_file_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_NM) -C retain_symbols_file_test.so > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@permission_test: basic_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	umask 022; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	rm -f $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	touch $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	chmod 600 $@; \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ basic_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@searched_file_test_lib.o: searched_file_test_lib.cc
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -c -o $@ $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@alt/searched_file_test_lib.a: searched_file_test_lib.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	test -d alt || mkdir -p alt
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
 # We invoke the linker directly since gcc may include additional objects that
 # uses symbol versioning.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libno_version_test.so: no_version_test.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ no_version_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@no_version_test.o: no_version_test.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@no_version_test.stdout: libno_version_test.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_OBJDUMP) -h $< > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libno_version_test.so: no_version_test.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ no_version_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@no_version_test.o: no_version_test.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@no_version_test.stdout: libno_version_test.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_OBJDUMP) -h $< > $@
 
 # Test STT_GNU_IFUNC symbols.
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmod1.o: ifuncmod1.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmod1.so: ifuncmod1.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncmod1.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmod1.o: ifuncmod1.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmod1.so: ifuncmod1.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncmod1.o
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncdep1.o: ifuncmod1.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncdep1.o: ifuncmod1.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -o $@ $<
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1pic.o: ifuncmain1.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1pie.o: ifuncmain1.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1picstatic: ifuncmain1pic.o ifuncmod1.o gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain1pic.o ifuncmod1.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1pic: ifuncmain1pic.o ifuncmod1.so gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1vispic.o: ifuncmain1vis.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1vispic: ifuncmain1vispic.o ifuncmod1.so gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1staticpic: ifuncmain1pic.o ifuncmod1.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1pie: ifuncmain1pie.o ifuncmod1.so gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain1pie.o ifuncmod1.so -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1vispie.o: ifuncmain1vis.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1vispie: ifuncmain1vispie.o ifuncmod1.so gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain1vispie.o ifuncmod1.so -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain1staticpie: ifuncmain1pie.o ifuncmod1.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain1pie.o ifuncmod1.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1pic.o: ifuncmain1.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1pie.o: ifuncmain1.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1picstatic: ifuncmain1pic.o ifuncmod1.o gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain1pic.o ifuncmod1.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1pic: ifuncmain1pic.o ifuncmod1.so gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1vispic.o: ifuncmain1vis.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1vispic: ifuncmain1vispic.o ifuncmod1.so gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1staticpic: ifuncmain1pic.o ifuncmod1.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1pie: ifuncmain1pie.o ifuncmod1.so gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain1pie.o ifuncmod1.so -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1vispie.o: ifuncmain1vis.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1vispie: ifuncmain1vispie.o ifuncmod1.so gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain1vispie.o ifuncmod1.so -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain1staticpie: ifuncmain1pie.o ifuncmod1.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain1pie.o ifuncmod1.o
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2pic.o: ifuncmain2.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2pic.o: ifuncmain2.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncdep2pic.o: ifuncdep2.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2picstatic: ifuncmain2pic.o ifuncdep2pic.o gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain2pic.o ifuncdep2pic.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain2pic: ifuncmain2pic.o ifuncdep2pic.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain2pic.o ifuncdep2pic.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncdep2pic.o: ifuncdep2.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2picstatic: ifuncmain2pic.o ifuncdep2pic.o gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain2pic.o ifuncdep2pic.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain2pic: ifuncmain2pic.o ifuncdep2pic.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain2pic.o ifuncdep2pic.o
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmod3.o: ifuncmod3.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmod3.so: ifuncmod3.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncmod3.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmod3.o: ifuncmod3.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmod3.so: ifuncmod3.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncmod3.o
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4pic.o: ifuncmain4.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain4picstatic: ifuncmain4pic.o gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain4pic.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4pic.o: ifuncmain4.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain4picstatic: ifuncmain4pic.o gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain4pic.o
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5pic.o: ifuncmain5.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5pic.o: ifuncmain5.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5pie.o: ifuncmain5.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5pie.o: ifuncmain5.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmod5.o: ifuncmod5.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmod5.so: ifuncmod5.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncmod5.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmod5.o: ifuncmod5.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmod5.so: ifuncmod5.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncmod5.o
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncdep5.o: ifuncmod5.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -o $@ $<
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5picstatic: ifuncmain5pic.o ifuncmod5.o gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain5pic.o ifuncmod5.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5pic: ifuncmain5pic.o ifuncmod5.so gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain5pic.o ifuncmod5.so -Wl,-R,.
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5staticpic: ifuncmain5pic.o ifuncmod5.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain5pic.o ifuncmod5.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain5pie: ifuncmain5pie.o ifuncmod5.so gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain5pie.o ifuncmod5.so -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncdep5.o: ifuncmod5.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -o $@ $<
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5picstatic: ifuncmain5pic.o ifuncmod5.o gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain5pic.o ifuncmod5.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5pic: ifuncmain5pic.o ifuncmod5.so gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain5pic.o ifuncmod5.so -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5staticpic: ifuncmain5pic.o ifuncmod5.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain5pic.o ifuncmod5.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain5pie: ifuncmain5pie.o ifuncmod5.so gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain5pie.o ifuncmod5.so -Wl,-R,.
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain6pie.o: ifuncmain6pie.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain6pie.o: ifuncmain6pie.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmod6.o: ifuncmod6.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmod6.so: ifuncmod6.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncmod6.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain6pie: ifuncmain6pie.o ifuncmod6.so gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain6pie.o ifuncmod6.so -Wl,-R,.
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmod6.o: ifuncmod6.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmod6.so: ifuncmod6.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncmod6.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain6pie: ifuncmain6pie.o ifuncmod6.so gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain6pie.o ifuncmod6.so -Wl,-R,.
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7pic.o: ifuncmain7.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7pic.o: ifuncmain7.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
 
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7pie.o: ifuncmain7.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7picstatic: ifuncmain7pic.o gcctestdir/ld
-@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain7pic.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7pic: ifuncmain7pic.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain7pic.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncmain7pie: ifuncmain7pie.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain7pie.o
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar1_pic.o: ifuncvar1.c
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar2_pic.o: ifuncvar2.c	
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar.so: ifuncvar1_pic.o ifuncvar2_pic.o gcctestdir/ld
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncvar1_pic.o ifuncvar2_pic.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@strong_ref_weak_def_2.o: strong_ref_weak_def_2.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@strong_ref_weak_def_2.so: strong_ref_weak_def_2.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ strong_ref_weak_def_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@strong_ref_weak_def_1.o: strong_ref_weak_def_1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@strong_ref_weak_def_1.so: strong_ref_weak_def_1.o strong_ref_weak_def_2.so \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ strong_ref_weak_def_1.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@		strong_ref_weak_def_2.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@strong_ref_weak_def.stdout: strong_ref_weak_def_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -sWD $< > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref_2.o: dyn_weak_ref_2.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref_2.so: dyn_weak_ref_2.o gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ dyn_weak_ref_2.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref_1.o: dyn_weak_ref_1.c
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7pie.o: ifuncmain7.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpie -o $@ $<
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7picstatic: ifuncmain7pic.o gcctestdir/ld
+@GCC_TRUE@@HAVE_STATIC_TRUE@@IFUNC_STATIC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -static ifuncmain7pic.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7pic: ifuncmain7pic.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ ifuncmain7pic.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncmain7pie: ifuncmain7pie.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -pie ifuncmain7pie.o
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncvar1_pic.o: ifuncvar1.c
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncvar2_pic.o: ifuncvar2.c	
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -c -fpic -o $@ $<
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@ifuncvar.so: ifuncvar1_pic.o ifuncvar2_pic.o gcctestdir/ld
+@GCC_TRUE@@IFUNC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -shared ifuncvar1_pic.o ifuncvar2_pic.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@strong_ref_weak_def_2.o: strong_ref_weak_def_2.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@strong_ref_weak_def_2.so: strong_ref_weak_def_2.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ strong_ref_weak_def_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@strong_ref_weak_def_1.o: strong_ref_weak_def_1.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@strong_ref_weak_def_1.so: strong_ref_weak_def_1.o strong_ref_weak_def_2.so \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ strong_ref_weak_def_1.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		strong_ref_weak_def_2.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@strong_ref_weak_def.stdout: strong_ref_weak_def_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sWD $< > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dyn_weak_ref_2.o: dyn_weak_ref_2.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dyn_weak_ref_2.so: dyn_weak_ref_2.o gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ dyn_weak_ref_2.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dyn_weak_ref_1.o: dyn_weak_ref_1.c
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c -fPIC $<
 # We intentionally put dyn_weak_ref_2.so in front of dyn_weak_ref_1.o
 # so that the weak ref there goes to gold's symbol table first.
-@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref_1.so: dyn_weak_ref_1.o dyn_weak_ref_2.so gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ dyn_weak_ref_2.so dyn_weak_ref_1.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@dyn_weak_ref.stdout: dyn_weak_ref_1.so
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -sWD $< > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@start_lib_test: start_lib_test_main.o libstart_lib_test.a start_lib_test_2.o start_lib_test_3.o \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	gcctestdir/ld
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -o $@ start_lib_test_main.o -L. -lstart_lib_test \
-@GCC_TRUE@@NATIVE_LINKER_TRUE@		-Wl,--start-lib start_lib_test_2.o start_lib_test_3.o -Wl,--end-lib
-@GCC_TRUE@@NATIVE_LINKER_TRUE@libstart_lib_test.a: start_lib_test_1.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
-@GCC_TRUE@@NATIVE_LINKER_TRUE@memory_test.o: memory_test.s
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@memory_test: memory_test.o gcctestdir/ld $(srcdir)/memory_test.t
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -nostartfiles -nostdlib -T $(srcdir)/memory_test.t -o $@ memory_test.o
-@GCC_TRUE@@NATIVE_LINKER_TRUE@memory_test.stdout: memory_test
-@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) -lWS  $< > $@
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test.o: gdb_index_test.cc
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -gno-pubnames -c -o $@ $<
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_1: gdb_index_test.o gcctestdir/ld
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_1.stdout: gdb_index_test_1
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) --debug-dump=gdb_index $< > $@
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_cdebug.o: gdb_index_test.cc
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -o $@ $<
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_2: gdb_index_test_cdebug.o gcctestdir/ld
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_2.stdout: gdb_index_test_2
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) --debug-dump=gdb_index $< > $@
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_3.o: gdb_index_test_3.c
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -g -c -o $@ $<
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_3: gdb_index_test_3.o gcctestdir/ld
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -Wl,--gdb-index,--fatal-warnings $<
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_3.stdout: gdb_index_test_3
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) --debug-dump=gdb_index $< > $@
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_pub.o: gdb_index_test.cc
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -gpubnames -c -o $@ $<
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_4: gdb_index_test_pub.o gcctestdir/ld
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@gdb_index_test_4.stdout: gdb_index_test_4
-@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_READELF) --debug-dump=gdb_index $< > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dyn_weak_ref_1.so: dyn_weak_ref_1.o dyn_weak_ref_2.so gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld -shared -o $@ dyn_weak_ref_2.so dyn_weak_ref_1.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@dyn_weak_ref.stdout: dyn_weak_ref_1.so
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -sWD $< > $@
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@start_lib_test: start_lib_test_main.o libstart_lib_test.a start_lib_test_2.o start_lib_test_3.o \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	gcctestdir/ld
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -o $@ start_lib_test_main.o -L. -lstart_lib_test \
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		-Wl,--start-lib start_lib_test_2.o start_lib_test_3.o -Wl,--end-lib
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@libstart_lib_test.a: start_lib_test_1.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc $@ $^
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@memory_test.o: memory_test.s
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -o $@ -c $<
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@memory_test: memory_test.o gcctestdir/ld $(srcdir)/memory_test.t
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -nostartfiles -nostdlib -T $(srcdir)/memory_test.t -o $@ memory_test.o
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@memory_test.stdout: memory_test
+@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) -lWS  $< > $@
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test.o: gdb_index_test.cc
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -gno-pubnames -fdebug-types-section -c -o $@ $<
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_1: gdb_index_test.o gcctestdir/ld
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_1.stdout: gdb_index_test_1
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) --debug-dump=gdb_index $< > $@
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_cdebug.o: gdb_index_test.cc
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -Bgcctestdir/ -O0 -g -fdebug-types-section -Wa,--compress-debug-sections -c -o $@ $<
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_2: gdb_index_test_cdebug.o gcctestdir/ld
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_2.stdout: gdb_index_test_2
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@HAVE_ZLIB_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) --debug-dump=gdb_index $< > $@
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_3.o: gdb_index_test_3.c
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(COMPILE) -O0 -g -c -o $@ $<
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_3: gdb_index_test_3.o gcctestdir/ld
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(LINK) -Bgcctestdir/ -Wl,--gdb-index,--fatal-warnings $<
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_3.stdout: gdb_index_test_3
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) --debug-dump=gdb_index $< > $@
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_pub.o: gdb_index_test.cc
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g -gpubnames -fdebug-types-section -c -o $@ $<
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_4: gdb_index_test_pub.o gcctestdir/ld
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@gdb_index_test_4.stdout: gdb_index_test_4
+@GCC_TRUE@@HAVE_PUBNAMES_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_READELF) --debug-dump=gdb_index $< > $@
 
 # End-to-end incremental linking tests.
 # Incremental linking is currently supported only on the x86_64 target.
 
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1_v1_ndebug.o: two_file_test_1_v1.cc
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1_ndebug.o: two_file_test_1.cc
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_1b_ndebug.o: two_file_test_1b.cc
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_2_ndebug.o: two_file_test_2.cc
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@two_file_test_main_ndebug.o: two_file_test_main.cc
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test_2: two_file_test_1_v1_ndebug.o two_file_test_1_ndebug.o two_file_test_1b_ndebug.o \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@		    two_file_test_2_ndebug.o two_file_test_main_ndebug.o gcctestdir/ld
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_1_v1_ndebug.o two_file_test_tmp_2.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_1_ndebug.o two_file_test_tmp_2.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test_3: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@		    two_file_test_2.o two_file_test_main.o gcctestdir/ld
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_1b_v1.o two_file_test_tmp_3.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_1b.o two_file_test_tmp_3.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test_4: two_file_test_1.o two_file_test_1b.o two_file_test_2_v1.o \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@		    two_file_test_2.o two_file_test_main.o gcctestdir/ld
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_2_v1.o two_file_test_tmp_4.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	mv -f incremental_test_4 incremental_test_4.base
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_2.o two_file_test_tmp_4.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update,--incremental-base=incremental_test_4.base -Bgcctestdir/ two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test_5: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@		    two_file_test_2.o two_file_test_main.o gcctestdir/ld
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_1b_v1.o two_file_test_tmp_5.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc two_file_test_5.a two_file_test_1.o two_file_test_tmp_5.o two_file_test_2.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_main.o two_file_test_5.a
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_1b.o two_file_test_tmp_5.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc two_file_test_5.a two_file_test_1.o two_file_test_tmp_5.o two_file_test_2.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ two_file_test_main.o two_file_test_5.a
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test_6: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@		    two_file_test_2.o two_file_test_main.o gcctestdir/ld
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_1b.o two_file_test_tmp_6.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc two_file_test_6.a two_file_test_1.o two_file_test_tmp_6.o two_file_test_2.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_main.o two_file_test_6.a
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f two_file_test_1b_v1.o two_file_test_tmp_6.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(TEST_AR) rc two_file_test_6.a two_file_test_1.o two_file_test_tmp_6.o two_file_test_2.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ two_file_test_main.o -Wl,--incremental-unchanged two_file_test_6.a -Wl,--incremental-unknown
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_copy_test: copy_test_v1.o copy_test.o copy_test_1.so copy_test_2.so
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f copy_test_v1.o copy_test_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ -Wl,-R,. copy_test_tmp.o copy_test_1.so copy_test_2.so
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f copy_test.o copy_test_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ -Wl,-R,. copy_test_tmp.o copy_test_1.so copy_test_2.so
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_common_test_1: common_test_1_v1.o common_test_1_v2.o gcctestdir/ld
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f common_test_1_v1.o common_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ common_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f common_test_1_v2.o common_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ common_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_comdat_test_1: incr_comdat_test_1.o incr_comdat_test_2_v1.o incr_comdat_test_2_v2.o incr_comdat_test_2_v3.o gcctestdir/ld
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f incr_comdat_test_2_v1.o incr_comdat_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f incr_comdat_test_2_v2.o incr_comdat_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	@sleep 1
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	cp -f incr_comdat_test_2_v3.o incr_comdat_test_1_tmp.o
-@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1_v1_ndebug.o: two_file_test_1_v1.cc
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1_ndebug.o: two_file_test_1.cc
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_1b_ndebug.o: two_file_test_1b.cc
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_2_ndebug.o: two_file_test_2.cc
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@two_file_test_main_ndebug.o: two_file_test_main.cc
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXCOMPILE) -O0 -g0 -c -o $@ $<
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test_2: two_file_test_1_v1_ndebug.o two_file_test_1_ndebug.o two_file_test_1b_ndebug.o \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		    two_file_test_2_ndebug.o two_file_test_main_ndebug.o gcctestdir/ld
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_1_v1_ndebug.o two_file_test_tmp_2.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_1_ndebug.o two_file_test_tmp_2.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test_3: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		    two_file_test_2.o two_file_test_main.o gcctestdir/ld
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_1b_v1.o two_file_test_tmp_3.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_1b.o two_file_test_tmp_3.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test_4: two_file_test_1.o two_file_test_1b.o two_file_test_2_v1.o \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		    two_file_test_2.o two_file_test_main.o gcctestdir/ld
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_2_v1.o two_file_test_tmp_4.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	mv -f incremental_test_4 incremental_test_4.base
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_2.o two_file_test_tmp_4.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update,--incremental-base=incremental_test_4.base -Bgcctestdir/ two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test_5: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		    two_file_test_2.o two_file_test_main.o gcctestdir/ld
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_1b_v1.o two_file_test_tmp_5.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc two_file_test_5.a two_file_test_1.o two_file_test_tmp_5.o two_file_test_2.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_main.o two_file_test_5.a
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_1b.o two_file_test_tmp_5.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc two_file_test_5.a two_file_test_1.o two_file_test_tmp_5.o two_file_test_2.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ two_file_test_main.o two_file_test_5.a
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_test_6: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@		    two_file_test_2.o two_file_test_main.o gcctestdir/ld
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_1b.o two_file_test_tmp_6.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc two_file_test_6.a two_file_test_1.o two_file_test_tmp_6.o two_file_test_2.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ two_file_test_main.o two_file_test_6.a
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f two_file_test_1b_v1.o two_file_test_tmp_6.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(TEST_AR) rc two_file_test_6.a two_file_test_1.o two_file_test_tmp_6.o two_file_test_2.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ two_file_test_main.o -Wl,--incremental-unchanged two_file_test_6.a -Wl,--incremental-unknown
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_copy_test: copy_test_v1.o copy_test.o copy_test_1.so copy_test_2.so
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f copy_test_v1.o copy_test_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ -Wl,-R,. copy_test_tmp.o copy_test_1.so copy_test_2.so
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f copy_test.o copy_test_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ -Wl,-R,. copy_test_tmp.o copy_test_1.so copy_test_2.so
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_common_test_1: common_test_1_v1.o common_test_1_v2.o gcctestdir/ld
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f common_test_1_v1.o common_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ common_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f common_test_1_v2.o common_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ common_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@incremental_comdat_test_1: incr_comdat_test_1.o incr_comdat_test_2_v1.o incr_comdat_test_2_v2.o incr_comdat_test_2_v3.o gcctestdir/ld
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f incr_comdat_test_2_v1.o incr_comdat_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f incr_comdat_test_2_v2.o incr_comdat_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	@sleep 1
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	cp -f incr_comdat_test_2_v3.o incr_comdat_test_1_tmp.o
+@DEFAULT_TARGET_X86_64_TRUE@@GCC_TRUE@@TEST_AS_NATIVE_LINKER_TRUE@	$(CXXLINK) -Wl,--incremental-update -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
 @NATIVE_OR_CROSS_LINKER_TRUE@script_test_10.o: script_test_10.s
 @NATIVE_OR_CROSS_LINKER_TRUE@	$(TEST_AS) -o $@ $<
 @NATIVE_OR_CROSS_LINKER_TRUE@script_test_10: $(srcdir)/script_test_10.t script_test_10.o gcctestdir/ld
diff --git a/gold/testsuite/debug_msg.sh b/gold/testsuite/debug_msg.sh
index c0d03b3..3747ed7 100755
--- a/gold/testsuite/debug_msg.sh
+++ b/gold/testsuite/debug_msg.sh
@@ -2,7 +2,8 @@
 
 # debug_msg.sh -- a test case for printing debug info for missing symbols.
 
-# Copyright 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2013
+# Free Software Foundation, Inc.
 # Written by Ian Lance Taylor <iant@google.com>.
 
 # This file is part of gold.
@@ -55,9 +56,9 @@
 
 # We don't know how the compiler might order these variables, so we
 # can't test for the actual offset from .data, hence the regexp.
-check debug_msg.err "debug_msg.o:debug_msg.cc:function fn_array: error: undefined reference to 'undef_fn1()'"
-check debug_msg.err "debug_msg.o:debug_msg.cc:function fn_array: error: undefined reference to 'undef_fn2()'"
-check debug_msg.err "debug_msg.o:debug_msg.cc:function badref1: error: undefined reference to 'undef_int'"
+check debug_msg.err "debug_msg.o:debug_msg.cc:fn_array: error: undefined reference to 'undef_fn1()'"
+check debug_msg.err "debug_msg.o:debug_msg.cc:fn_array: error: undefined reference to 'undef_fn2()'"
+check debug_msg.err "debug_msg.o:debug_msg.cc:badref1: error: undefined reference to 'undef_int'"
 
 # These tests check only for the source file's file name (not the complete
 # path) because use of -fdebug-prefix-map may change the path to the source
@@ -93,9 +94,9 @@
 # Check for the same error messages when using --compressed-debug-sections.
 if test -r debug_msg_cdebug.err
 then
-  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:function fn_array: error: undefined reference to 'undef_fn1()'"
-  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:function fn_array: error: undefined reference to 'undef_fn2()'"
-  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:function badref1: error: undefined reference to 'undef_int'"
+  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:fn_array: error: undefined reference to 'undef_fn1()'"
+  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:fn_array: error: undefined reference to 'undef_fn2()'"
+  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:badref1: error: undefined reference to 'undef_int'"
   check debug_msg_cdebug.err ".*/debug_msg.cc:50: error: undefined reference to 'undef_fn1()'"
   check debug_msg_cdebug.err ".*/debug_msg.cc:55: error: undefined reference to 'undef_fn2()'"
   check debug_msg_cdebug.err ".*/debug_msg.cc:43: error: undefined reference to 'undef_fn1()'"
diff --git a/gold/testsuite/dynamic_list_2.cc b/gold/testsuite/dynamic_list_2.cc
new file mode 100644
index 0000000..34194b8
--- /dev/null
+++ b/gold/testsuite/dynamic_list_2.cc
@@ -0,0 +1,40 @@
+// dynamic_list_test_2.cc -- Test --dynamic-list with shared libraries.
+
+// Copyright 2014 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// The goal of this program is to verify that the --dynamic-list option
+// allows overrides for symbols listed in the file, and does symbolic
+// binding for symbols not listed.
+
+#include <cstring>
+
+extern const char* test_foo();
+extern const char* test_bar();
+
+int
+main(void)
+{
+  if (strcmp(test_foo(), "override") != 0)
+    return 1;
+  if (strcmp(test_bar(), "original") != 0)
+    return 2;
+  return 0;
+}
diff --git a/gold/testsuite/dynamic_list_2.t b/gold/testsuite/dynamic_list_2.t
new file mode 100644
index 0000000..a4e4381
--- /dev/null
+++ b/gold/testsuite/dynamic_list_2.t
@@ -0,0 +1,27 @@
+/* dynamic_list_2.t -- script file for building dynamic_list_lib2.so.
+
+   Copyright 2014 Free Software Foundation, Inc.
+   Written by Cary Coutant <ccoutant@google.com>.
+
+   This file is part of gold.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+{
+    extern "C" {
+        "foo";
+    };
+};
diff --git a/gold/testsuite/dynamic_list_lib1.cc b/gold/testsuite/dynamic_list_lib1.cc
new file mode 100644
index 0000000..9bc0717
--- /dev/null
+++ b/gold/testsuite/dynamic_list_lib1.cc
@@ -0,0 +1,37 @@
+// dynamic_list_test_lib1.cc -- Test --dynamic-list with shared libraries.
+
+// Copyright 2014 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// The goal of this program is to verify that the --dynamic-list option
+// allows overrides for symbols listed in the file, and does symbolic
+// binding for symbols not listed.
+
+extern "C" const char*
+foo()
+{
+    return "override";
+}
+
+extern "C" const char*
+bar()
+{
+    return "override";
+}
diff --git a/gold/testsuite/dynamic_list_lib2.cc b/gold/testsuite/dynamic_list_lib2.cc
new file mode 100644
index 0000000..2532a42
--- /dev/null
+++ b/gold/testsuite/dynamic_list_lib2.cc
@@ -0,0 +1,49 @@
+// dynamic_list_test_lib2.cc -- Test --dynamic-list with shared libraries.
+
+// Copyright 2014 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// The goal of this program is to verify that the --dynamic-list option
+// allows overrides for symbols listed in the file, and does symbolic
+// binding for symbols not listed.
+
+extern "C" const char*
+foo()
+{
+  return "original";
+}
+
+const char*
+test_foo()
+{
+  return foo();
+}
+
+extern "C" const char*
+bar()
+{
+  return "original";
+}
+
+const char*
+test_bar()
+{
+  return bar();
+}
diff --git a/gold/testsuite/gc_dynamic_list_test.c b/gold/testsuite/gc_dynamic_list_test.c
new file mode 100644
index 0000000..3b84e98
--- /dev/null
+++ b/gold/testsuite/gc_dynamic_list_test.c
@@ -0,0 +1,34 @@
+// gc_dynamic_list_test.cc -- Check that --gc-sections honors --dynamic-list.
+
+// Copyright 2014 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// The goal of this program is to verify that the symbol "keep" is not
+// garbage-collected when it is named in a --dynamic-list script.
+
+extern void keep(void);
+
+void
+keep(void)
+{}
+
+int
+main(void)
+{ return 0; }
diff --git a/gold/testsuite/gc_dynamic_list_test.sh b/gold/testsuite/gc_dynamic_list_test.sh
new file mode 100755
index 0000000..b1723dd
--- /dev/null
+++ b/gold/testsuite/gc_dynamic_list_test.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+# gc_comdat_test.sh -- test --gc-sections
+
+# Copyright 2014 Free Software Foundation, Inc.
+# Written by Cary Coutant <ccoutant@google.com>.
+
+# This file is part of gold.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+# The goal of this program is to verify if comdat's and garbage 
+# collection work together.  Files gc_comdat_test_1.cc and 
+# gc_comdat_test_2.cc are used in this test.  This program checks
+# if the kept comdat section is garbage collected.
+
+check()
+{
+    if ! grep -q "$2" "$1"
+    then
+        echo "Garbage collection should not have collected '$2'"
+	exit 1
+    fi
+}
+
+check gc_dynamic_list_test.stdout "keep"
diff --git a/gold/testsuite/gc_dynamic_list_test.t b/gold/testsuite/gc_dynamic_list_test.t
new file mode 100644
index 0000000..8905541
--- /dev/null
+++ b/gold/testsuite/gc_dynamic_list_test.t
@@ -0,0 +1,25 @@
+/* gc_dynamic_list_test.t -- script file for gc_dynamic_list_test.cc
+
+   Copyright 2014 Free Software Foundation, Inc.
+   Written by Cary Coutant <ccoutant@google.com>.
+
+   This file is part of gold.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+{
+  keep;
+};
diff --git a/gold/testsuite/gdb_index_test.cc b/gold/testsuite/gdb_index_test.cc
index 342d47c..d5ac2f1 100644
--- a/gold/testsuite/gdb_index_test.cc
+++ b/gold/testsuite/gdb_index_test.cc
@@ -123,6 +123,16 @@
 
 anonymous_union_container anonymous_union_var;
 
+#ifdef __GNUC__
+#define ALWAYS_INLINE __attribute__((always_inline))
+#else
+#define ALWAYS_INLINE
+#endif
+
+static inline ALWAYS_INLINE int
+inline_func_1(int i)
+{ return i * 17; }
+
 int
 main()
 {
@@ -134,5 +144,6 @@
   check(&two::c2v1);
   check(&two::c2v2);
   check(&two::c2v3);
+  anonymous_union_var.u.b = inline_func_1(3) - 51;
   return anonymous_union_var.u.b;
 }
diff --git a/gold/testsuite/gdb_index_test_comm.sh b/gold/testsuite/gdb_index_test_comm.sh
index 2ed7dc6..a9d3d4f 100755
--- a/gold/testsuite/gdb_index_test_comm.sh
+++ b/gold/testsuite/gdb_index_test_comm.sh
@@ -80,5 +80,6 @@
 check $STDOUT "^\[ *[0-9]*\] two::c2v1:"
 check $STDOUT "^\[ *[0-9]*\] two::c2v2:"
 check $STDOUT "^\[ *[0-9]*\] anonymous_union_var:"
+check $STDOUT "^\[ *[0-9]*\] inline_func_1:"
 
 exit 0
diff --git a/gold/testsuite/missing_key_func.cc b/gold/testsuite/missing_key_func.cc
new file mode 100644
index 0000000..5a5b7d9
--- /dev/null
+++ b/gold/testsuite/missing_key_func.cc
@@ -0,0 +1,46 @@
+// basic_test.cc -- a test case for gold
+
+// Copyright 2013 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// Define a class, but leave its key function undefined.
+
+class C
+{
+ public:
+  C() : c(1) { }
+  virtual void set();
+  virtual void clear();
+  int c;
+};
+
+void
+C::clear()
+{
+  c = 0;
+}
+
+int
+main()
+{
+  C c;
+  c.clear();
+  return c.c;
+}
diff --git a/gold/testsuite/missing_key_func.sh b/gold/testsuite/missing_key_func.sh
new file mode 100755
index 0000000..54c7b57
--- /dev/null
+++ b/gold/testsuite/missing_key_func.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# missing_key_func.sh -- a test case for printing error messages when
+# a class is missing its key function.
+
+# Copyright 2013 Free Software Foundation, Inc.
+# Written by Cary Coutant <ccoutant@google.com>
+
+# This file is part of gold.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+# This file goes with debug_msg.cc, a C++ source file constructed to
+# have undefined references.  We compile that file with debug
+# information and then try to link it, and make sure the proper errors
+# are displayed.  The errors will be found in debug_msg.err.
+
+check()
+{
+    if ! grep -q "$2" "$1"
+    then
+	echo "Did not find expected error in $1:"
+	echo "   $2"
+	echo ""
+	echo "Actual error output below:"
+	cat "$1"
+	exit 1
+    fi
+}
+
+check_missing()
+{
+    if grep -q "$2" "$1"
+    then
+	echo "Found unexpected error in $1:"
+	echo "   $2"
+	echo ""
+	echo "Actual error output below:"
+	cat "$1"
+	exit 1
+    fi
+}
+
+check missing_key_func.err "error: undefined reference to 'vtable for C'"
+check missing_key_func.err "class is missing its key function"
diff --git a/gold/testsuite/plugin_final_layout.cc b/gold/testsuite/plugin_final_layout.cc
index 3e264f6..88dea30 100644
--- a/gold/testsuite/plugin_final_layout.cc
+++ b/gold/testsuite/plugin_final_layout.cc
@@ -21,16 +21,22 @@
 // MA 02110-1301, USA.
 
 // The goal of this program is to verify if section ordering
-// via plugins happens correctly.
+// via plugins happens correctly.  Also, test is plugin based ordering
+// overrides default text section ordering where ".text.hot" sections
+// are grouped.  The plugin does not want foo and baz next to each other.
+// Plugin section order is foo() followed by bar() and then baz().
 
+__attribute__ ((section(".text._Z3barv")))
 void bar ()
 {
 }
 
+__attribute__ ((section(".text.hot._Z3bazv")))
 void baz ()
 {
 }
 
+__attribute__ ((section(".text.hot._Z3foov")))
 void foo ()
 {
 }
diff --git a/gold/testsuite/plugin_final_layout.sh b/gold/testsuite/plugin_final_layout.sh
index 600f8e2..75a40d3 100755
--- a/gold/testsuite/plugin_final_layout.sh
+++ b/gold/testsuite/plugin_final_layout.sh
@@ -56,5 +56,35 @@
     }" $1
 }
 
+# With readelf -l, an ELF Section to Segment mapping is printed as :
+##############################################
+#  Section to Segment mapping:
+#  Segment Sections...
+#  ...
+#     0x     .text.plugin_created_unique
+#  ...
+##############################################
+# Check of .text.plugin_created_unique is the only section in the segment.
+check_unique_segment()
+{
+    awk "
+BEGIN { saw_section = 0; saw_unique = 0; }
+/$2/ { saw_section = 1; }
+/[ ]*0[0-9][ ]*$2[ ]*\$/ { saw_unique = 1; }
+END {
+      if (!saw_section)
+	{
+	  printf \"Section $2 not seen in output\\n\";
+	  exit 1;
+	}
+      else if (!saw_unique)
+	{
+	  printf \"Unique segment not seen for: $2\\n\";
+	  exit 1;
+	}
+    }" $1
+}
+
 check plugin_final_layout.stdout "_Z3foov" "_Z3barv"
 check plugin_final_layout.stdout "_Z3barv" "_Z3bazv"
+check_unique_segment plugin_final_layout_readelf.stdout ".text.plugin_created_unique"
diff --git a/gold/testsuite/plugin_section_order.c b/gold/testsuite/plugin_section_order.c
index b1c294d..945e4a2 100644
--- a/gold/testsuite/plugin_section_order.c
+++ b/gold/testsuite/plugin_section_order.c
@@ -36,6 +36,9 @@
 static ld_plugin_get_input_section_contents get_input_section_contents = NULL;
 static ld_plugin_update_section_order update_section_order = NULL;
 static ld_plugin_allow_section_ordering allow_section_ordering = NULL;
+static ld_plugin_allow_unique_segment_for_sections 
+    allow_unique_segment_for_sections = NULL;
+static ld_plugin_unique_segment_for_sections unique_segment_for_sections = NULL;
 
 enum ld_plugin_status onload(struct ld_plugin_tv *tv);
 enum ld_plugin_status claim_file_hook(const struct ld_plugin_input_file *file,
@@ -52,10 +55,12 @@
       switch (entry->tv_tag)
         {
         case LDPT_REGISTER_CLAIM_FILE_HOOK:
-          assert((*entry->tv_u.tv_register_claim_file) (claim_file_hook) == LDPS_OK);
+          assert((*entry->tv_u.tv_register_claim_file) (claim_file_hook)
+		 == LDPS_OK);
           break;
 	case LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK:
-          assert((*entry->tv_u.tv_register_all_symbols_read) (all_symbols_read_hook)
+          assert((*entry->tv_u.tv_register_all_symbols_read)
+		     (all_symbols_read_hook)
 		  == LDPS_OK);
           break;
         case LDPT_GET_INPUT_SECTION_COUNT:
@@ -68,7 +73,8 @@
           get_input_section_name = *entry->tv_u.tv_get_input_section_name;
           break;
         case LDPT_GET_INPUT_SECTION_CONTENTS:
-          get_input_section_contents = *entry->tv_u.tv_get_input_section_contents;
+          get_input_section_contents
+	    = *entry->tv_u.tv_get_input_section_contents;
           break;
 	case LDPT_UPDATE_SECTION_ORDER:
 	  update_section_order = *entry->tv_u.tv_update_section_order;
@@ -76,6 +82,13 @@
 	case LDPT_ALLOW_SECTION_ORDERING:
 	  allow_section_ordering = *entry->tv_u.tv_allow_section_ordering;
 	  break;
+	case LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS:
+	  allow_unique_segment_for_sections
+	      = *entry->tv_u.tv_allow_unique_segment_for_sections;
+	case LDPT_UNIQUE_SEGMENT_FOR_SECTIONS:
+	  unique_segment_for_sections
+	      = *entry->tv_u.tv_unique_segment_for_sections;
+	  break;
         default:
           break;
         }
@@ -86,7 +99,9 @@
       || get_input_section_name == NULL
       || get_input_section_contents == NULL
       || update_section_order == NULL
-      || allow_section_ordering == NULL)
+      || allow_section_ordering == NULL
+      || allow_unique_segment_for_sections == NULL
+      || unique_segment_for_sections == NULL)
     {
       fprintf(stderr, "Some interfaces are missing\n");
       return LDPS_ERR;
@@ -117,6 +132,9 @@
     {
       /* Inform the linker to prepare for section reordering.  */
       (*allow_section_ordering)();
+      /* Inform the linker to prepare to map some sections to unique
+	 segments.  */
+      (*allow_unique_segment_for_sections)();
       is_ordering_specified = 1;
     }
 
@@ -160,7 +178,11 @@
 all_symbols_read_hook(void)
 {
   if (num_entries == 3)
-    update_section_order(section_list, num_entries);
+    { 
+      update_section_order(section_list, num_entries);
+      unique_segment_for_sections (".text.plugin_created_unique", 0, 0x1000,
+				   section_list, num_entries);
+    }
 
   return LDPS_OK;
 }
diff --git a/gold/testsuite/plugin_test_tls.sh b/gold/testsuite/plugin_test_tls.sh
new file mode 100755
index 0000000..22b5458
--- /dev/null
+++ b/gold/testsuite/plugin_test_tls.sh
@@ -0,0 +1,60 @@
+#!/bin/sh
+
+# plugin_test_tls.sh -- a test case for the plugin API.
+
+# Copyright 2013 Free Software Foundation, Inc.
+# Written by Cary Coutant <ccoutant@google.com>.
+
+# This file is part of gold.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+# This file goes with plugin_test.c, a simple plug-in library that
+# exercises the basic interfaces and prints out version numbers and
+# options passed to the plugin.
+
+check()
+{
+    if ! grep -q "$2" "$1"
+    then
+	echo "Did not find expected output in $1:"
+	echo "   $2"
+	echo ""
+	echo "Actual output below:"
+	cat "$1"
+	exit 1
+    fi
+}
+
+check plugin_test_tls.err "API version:"
+check plugin_test_tls.err "gold version:"
+check plugin_test_tls.err "option: _Z4f13iv"
+check plugin_test_tls.err "two_file_test_tls.o: claim file hook called"
+check plugin_test_tls.err "two_file_test_1.syms: claim file hook called"
+check plugin_test_tls.err "two_file_test_1b.syms: claim file hook called"
+check plugin_test_tls.err "two_file_test_2_tls.syms: claim file hook called"
+check plugin_test_tls.err "two_file_test_1.syms: _Z4f13iv: PREVAILING_DEF_IRONLY"
+check plugin_test_tls.err "two_file_test_1.syms: _Z2t2v: PREVAILING_DEF_REG"
+check plugin_test_tls.err "two_file_test_1.syms: v2: RESOLVED_IR"
+check plugin_test_tls.err "two_file_test_1.syms: t17data: RESOLVED_IR"
+check plugin_test_tls.err "two_file_test_2_tls.syms: _Z4f13iv: PREEMPTED_IR"
+check plugin_test_tls.err "two_file_test_2_tls.syms: tls1: PREVAILING_DEF_REG"
+check plugin_test_tls.err "two_file_test_1.o: adding new input file"
+check plugin_test_tls.err "two_file_test_1b.o: adding new input file"
+check plugin_test_tls.err "two_file_test_2_tls.o: adding new input file"
+check plugin_test_tls.err "cleanup hook called"
+
+exit 0
diff --git a/gold/testsuite/script_test_11.c b/gold/testsuite/script_test_11.c
new file mode 100644
index 0000000..d932813
--- /dev/null
+++ b/gold/testsuite/script_test_11.c
@@ -0,0 +1,16 @@
+static unsigned int buffer1[256] __attribute((used));
+static unsigned int buffer2[256] __attribute((used)) = { 1 };
+
+unsigned int foo __attribute__((section(".foo")));
+extern char __foo_start;
+extern char __foo_end;
+
+int
+main (void)
+{
+  if (&__foo_end - &__foo_start != sizeof(foo))
+    return 1;
+  if (&__foo_start != (char *)&foo)
+    return 2;
+  return 0;
+}
diff --git a/gold/testsuite/script_test_11.t b/gold/testsuite/script_test_11.t
new file mode 100644
index 0000000..0ec6bcd
--- /dev/null
+++ b/gold/testsuite/script_test_11.t
@@ -0,0 +1,8 @@
+SECTIONS
+{
+    .foo : {
+      __foo_start = .;
+      KEEP(*(.foo))
+      __foo_end = .;
+      }
+}
diff --git a/gold/testsuite/text_section_grouping.cc b/gold/testsuite/text_section_grouping.cc
new file mode 100644
index 0000000..5a3a809
--- /dev/null
+++ b/gold/testsuite/text_section_grouping.cc
@@ -0,0 +1,72 @@
+// text_section_grouping.cc -- a test case for gold
+
+// Copyright 2012 Free Software Foundation, Inc.
+// Written by Sriraman Tallam <tmsriram@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// The goal of this program is to verify if .text sections are grouped
+// according to prefix.  .text.unlikely, .text.startup and .text.hot should
+// be grouped and placed together.
+
+extern "C"
+__attribute__ ((section(".text.hot.foo")))
+int hot_foo()
+{
+  return 1;
+}
+
+extern "C"
+__attribute__ ((section(".text.startup.foo")))
+int startup_foo()
+{
+  return 1;
+}
+
+extern "C"
+__attribute__ ((section(".text.unlikely.foo")))
+int unlikely_foo()
+{
+  return 1;
+}
+
+extern "C"
+__attribute__ ((section(".text.hot.bar")))
+int hot_bar()
+{
+  return 1;
+}
+
+extern "C"
+__attribute__ ((section(".text.startup.bar")))
+int startup_bar()
+{
+  return 1;
+}
+
+extern "C"
+__attribute__ ((section(".text.unlikely.bar")))
+int unlikely_bar()
+{
+  return 1;
+}
+
+int main()
+{
+  return 1;
+}
diff --git a/gold/testsuite/text_section_grouping.sh b/gold/testsuite/text_section_grouping.sh
new file mode 100755
index 0000000..84ebe4c
--- /dev/null
+++ b/gold/testsuite/text_section_grouping.sh
@@ -0,0 +1,73 @@
+#!/bin/sh
+
+# text_section_grouping.sh -- test
+
+# Copyright 2012 Free Software Foundation, Inc.
+# Written by Sriraman Tallam <tmsriram@google.com>.
+
+# This file is part of gold.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+# The goal of this program is to verify if .text sections are grouped
+# according to prefix.  .text.unlikely, .text.startup and .text.hot should
+# be grouped and placed together.
+
+# Also check if the functions do not get grouped with option --no-text-reorder.
+
+set -e
+
+check()
+{
+    awk "
+BEGIN { saw1 = 0; saw2 = 0; err = 0; }
+/.*$2\$/ { saw1 = 1; }
+/.*$3\$/ {
+     saw2 = 1;
+     if (!saw1)
+       {
+	  printf \"layout of $2 and $3 is not right\\n\";
+	  err = 1;
+	  exit 1;
+       }
+    }
+END {
+      if (!saw1 && !err)
+        {
+	  printf \"did not see $2\\n\";
+	  exit 1;
+	}
+      if (!saw2 && !err)
+	{
+	  printf \"did not see $3\\n\";
+	  exit 1;
+	}
+    }" $1
+}
+
+# addr (unlikely_*) < addr (startup_*) < addr (hot_*)
+check text_section_grouping.stdout "unlikely_foo" "startup_foo"
+check text_section_grouping.stdout "startup_foo" "hot_foo"
+check text_section_grouping.stdout "unlikely_bar" "startup_bar"
+check text_section_grouping.stdout "startup_bar" "hot_bar"
+check text_section_grouping.stdout "unlikely_foo" "startup_bar"
+check text_section_grouping.stdout "startup_foo" "hot_bar"
+
+check text_section_no_grouping.stdout "hot_foo" "startup_foo"
+check text_section_no_grouping.stdout "startup_foo" "unlikely_foo"
+check text_section_no_grouping.stdout "unlikely_foo" "hot_bar"
+check text_section_no_grouping.stdout "hot_bar" "startup_bar"
+check text_section_no_grouping.stdout "startup_bar" "unlikely_bar"
diff --git a/gold/testsuite/two_file_test_2_tls.cc b/gold/testsuite/two_file_test_2_tls.cc
new file mode 100644
index 0000000..6c74c69
--- /dev/null
+++ b/gold/testsuite/two_file_test_2_tls.cc
@@ -0,0 +1,147 @@
+// two_file_test_2_tls.cc -- a two file test case for gold, with a TLS symbol
+
+// Copyright 2006, 2007, 2008, 2013 Free Software Foundation, Inc.
+// Written by Ian Lance Taylor <iant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// This tests references between files.  This is file 2, and
+// two_file_test_1.cc is file 1.  See file 1 for details.
+
+#include "two_file_test.h"
+
+// 1  Code in file 1 calls code in file 2.
+
+__thread int tls1 = 123;
+
+int
+t1_2()
+{
+  return tls1;
+}
+
+bool
+t1a()
+{
+  return t1_2() == 123;
+}
+
+// 2  Code in file 1 refers to global data in file 2.
+
+int v2 = 456;
+
+// 3 Code in file 1 referes to common symbol in file 2.  This is
+// initialized at runtime to 789.
+
+int v3;
+
+// 4  Code in file 1 refers to offset within global data in file 2.
+
+char v4[] = "Hello, world";
+
+// 5 Code in file 1 refers to offset within common symbol in file 2.
+// This is initialized at runtime to a copy of v4.
+
+char v5[13];
+
+// 6  Data in file 1 refers to global data in file 2.  This reuses v2.
+
+// 7  Data in file 1 refers to common symbol in file 2.  This reuses v3.
+
+// 8 Data in file 1 refers to offset within global data in file 2.
+// This reuses v4.
+
+// 9 Data in file 1 refers to offset within common symbol in file 2.
+// This reuses v5.
+
+// 10 Data in file 1 refers to function in file 2.
+
+int
+f10()
+{
+  return 135;
+}
+
+// 11 Pass function pointer from file 1 to file 2.
+
+int
+f11b(int (*pfn)())
+{
+  return (*pfn)();
+}
+
+// 12 Compare address of function for equality in both files.
+
+bool
+(*f12())()
+{
+  return &t12;
+}
+
+// 13 Compare address of inline function for equality in both files.
+
+void
+(*f13())()
+{
+  return &f13i;
+}
+
+// 14 Compare string constants in file 1 and file 2.
+
+const char*
+f14()
+{
+  return TEST_STRING_CONSTANT;
+}
+
+// 15 Compare wide string constants in file 1 and file 2.
+
+const wchar_t*
+f15()
+{
+  return TEST_WIDE_STRING_CONSTANT;
+}
+
+// 17 File 1 checks array of string constants defined in file 2.
+
+const char* t17data[T17_COUNT] =
+{
+  "a", "b", "c", "d", "e"
+};
+
+// 18 File 1 checks string constants referenced directly in file 2.
+
+const char*
+f18(int i)
+{
+  switch (i)
+    {
+    case 0:
+      return "a";
+    case 1:
+      return "b";
+    case 2:
+      return "c";
+    case 3:
+      return "d";
+    case 4:
+      return "e";
+    default:
+      return 0;
+    }
+}
diff --git a/gold/testsuite/two_file_test_tls.cc b/gold/testsuite/two_file_test_tls.cc
new file mode 100644
index 0000000..d9a1c39
--- /dev/null
+++ b/gold/testsuite/two_file_test_tls.cc
@@ -0,0 +1,60 @@
+// two_file_test_tls.cc -- a two file test case for gold, main function, with TLS
+
+// Copyright 2006, 2007, 2008, 2013 Free Software Foundation, Inc.
+// Written by Ian Lance Taylor <iant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// This tests references between files.  This is the main file.  See
+// two_file_test_1.cc for details.
+
+#include <cassert>
+
+#include "two_file_test.h"
+
+extern __thread int tls1;
+
+int
+main()
+{
+  // Initialize common data.
+  v3 = 789;
+  for (int i = 0; i < 13; ++i)
+    v5[i] = v4[i];
+
+  assert(tls1 == 123);
+  assert(t1());
+  assert(t1a());
+  assert(t2());
+  assert(t3());
+  assert(t4());
+  assert(t5());
+  assert(t6());
+  assert(t7());
+  assert(t8());
+  assert(t9());
+  assert(t10());
+  assert(t11());
+  assert(t12());
+  assert(t13());
+  assert(t16());
+  assert(t16a());
+  assert(t17());
+  assert(t18());
+  return 0;
+}
diff --git a/gold/testsuite/weak_undef_file3.cc b/gold/testsuite/weak_undef_file3.cc
new file mode 100644
index 0000000..7c96d3a
--- /dev/null
+++ b/gold/testsuite/weak_undef_file3.cc
@@ -0,0 +1,29 @@
+// weak_undef_file3.cc -- test handling of weak undefined symbols for gold
+
+// Copyright 2014 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// This file tests that we correctly deal with weak undefined symbols
+// when searching archive libraries.  If we have a weak undefined symbol,
+// it should not cause us to link an archive library member that defines
+// that symbol.  However, if the symbol is also listed in a -u option on
+// the command line, it should cause the archive member to be linked.
+
+int weak_undef_1 = 1;
diff --git a/gold/testsuite/weak_undef_file4.cc b/gold/testsuite/weak_undef_file4.cc
new file mode 100644
index 0000000..3f3cc14
--- /dev/null
+++ b/gold/testsuite/weak_undef_file4.cc
@@ -0,0 +1,29 @@
+// weak_undef_file4.cc -- test handling of weak undefined symbols for gold
+
+// Copyright 2014 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// This file tests that we correctly deal with weak undefined symbols
+// when searching archive libraries.  If we have a weak undefined symbol,
+// it should not cause us to link an archive library member that defines
+// that symbol.  However, if the symbol is also listed in a -u option on
+// the command line, it should cause the archive member to be linked.
+
+int weak_undef_2 = 2;
diff --git a/gold/testsuite/weak_undef_test_2.cc b/gold/testsuite/weak_undef_test_2.cc
new file mode 100644
index 0000000..fc9bbab
--- /dev/null
+++ b/gold/testsuite/weak_undef_test_2.cc
@@ -0,0 +1,79 @@
+// weak_undef_test_2.cc -- test handling of weak undefined symbols for gold
+
+// Copyright 2014 Free Software Foundation, Inc.
+// Written by Cary Coutant <ccoutant@google.com>.
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+// This file tests that we correctly deal with weak undefined symbols
+// when searching archive libraries.  If we have a weak undefined symbol,
+// it should not cause us to link an archive library member that defines
+// that symbol.  However, if the symbol is also listed in a -u option on
+// the command line, it should cause the archive member to be linked.
+
+
+#include <cstdio>
+
+// This symbol is defined in weak_undef_file3.cc, but we should
+// not load it from the library.
+extern int weak_undef_1 __attribute__ ((weak));
+
+// This symbol is defined in weak_undef_file4.cc, but is also
+// listed in a -u option on the link command, so we should
+// load it from the library.
+extern int weak_undef_2 __attribute__ ((weak));
+
+int *p1 = &weak_undef_1;
+
+int *p2 = &weak_undef_2;
+
+int
+main()
+{
+  int status = 0;
+
+  if (&weak_undef_1 != NULL)
+    {
+      fprintf(stderr, "FAILED weak undef test 1: %s\n",
+              "&weak_undef_1 is not NULL");
+      status = 1;
+    }
+
+  if (&weak_undef_2 == NULL)
+    {
+      fprintf(stderr, "FAILED weak undef test 2: %s\n",
+              "&weak_undef_2 is NULL");
+      status = 1;
+    }
+
+  if (p1 != NULL)
+    {
+      fprintf(stderr, "FAILED weak undef test 3: %s\n",
+              "p1 is not NULL");
+      status = 1;
+    }
+
+  if (p2 == NULL)
+    {
+      fprintf(stderr, "FAILED weak undef test 4: %s\n",
+              "p2 is NULL");
+      status = 1;
+    }
+
+  return status;
+}
diff --git a/gprof/.gitignore b/gprof/.gitignore
new file mode 100644
index 0000000..28f9e80
--- /dev/null
+++ b/gprof/.gitignore
@@ -0,0 +1,8 @@
+/gprof
+
+/bsd_callg_bl.c
+/config.texi
+/flat_bl.c
+/fsf_callg_bl.c
+/gconfig.h
+/gprof.1
diff --git a/include/demangle.h b/include/demangle.h
index 960e88e..58bf547 100644
--- a/include/demangle.h
+++ b/include/demangle.h
@@ -172,7 +172,8 @@
 enum gnu_v3_ctor_kinds {
   gnu_v3_complete_object_ctor = 1,
   gnu_v3_base_object_ctor,
-  gnu_v3_complete_object_allocating_ctor
+  gnu_v3_complete_object_allocating_ctor,
+  gnu_v3_object_ctor_group
 };
 
 /* Return non-zero iff NAME is the mangled form of a constructor name
@@ -186,7 +187,8 @@
 enum gnu_v3_dtor_kinds {
   gnu_v3_deleting_dtor = 1,
   gnu_v3_complete_object_dtor,
-  gnu_v3_base_object_dtor
+  gnu_v3_base_object_dtor,
+  gnu_v3_object_dtor_group
 };
 
 /* Return non-zero iff NAME is the mangled form of a destructor name
@@ -270,6 +272,9 @@
   /* A guard variable.  This has one subtree, the name for which this
      is a guard variable.  */
   DEMANGLE_COMPONENT_GUARD,
+  /* The init and wrapper functions for C++11 thread_local variables.  */
+  DEMANGLE_COMPONENT_TLS_INIT,
+  DEMANGLE_COMPONENT_TLS_WRAPPER,
   /* A reference temporary.  This has one subtree, the name for which
      this is a temporary.  */
   DEMANGLE_COMPONENT_REFTEMP,
@@ -297,6 +302,12 @@
   /* The const qualifier modifying a member function.  The one subtree
      is the type which is being qualified.  */
   DEMANGLE_COMPONENT_CONST_THIS,
+  /* C++11 A reference modifying a member function.  The one subtree is the
+     type which is being referenced.  */
+  DEMANGLE_COMPONENT_REFERENCE_THIS,
+  /* C++11: An rvalue reference modifying a member function.  The one
+     subtree is the type which is being referenced.  */
+  DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS,
   /* A vendor qualifier.  The left subtree is the type which is being
      qualified, and the right subtree is the name of the
      qualifier.  */
@@ -342,6 +353,9 @@
      template argument, and the right subtree is either NULL or
      another TEMPLATE_ARGLIST node.  */
   DEMANGLE_COMPONENT_TEMPLATE_ARGLIST,
+  /* An initializer list.  The left subtree is either an explicit type or
+     NULL, and the right subtree is a DEMANGLE_COMPONENT_ARGLIST.  */
+  DEMANGLE_COMPONENT_INITIALIZER_LIST,
   /* An operator.  This holds information about a standard
      operator.  */
   DEMANGLE_COMPONENT_OPERATOR,
@@ -351,6 +365,8 @@
   /* A typecast, represented as a unary operator.  The one subtree is
      the type to which the argument should be cast.  */
   DEMANGLE_COMPONENT_CAST,
+  /* A nullary expression.  The left subtree is the operator.  */
+  DEMANGLE_COMPONENT_NULLARY,
   /* A unary expression.  The left subtree is the operator, and the
      right subtree is the single argument.  */
   DEMANGLE_COMPONENT_UNARY,
@@ -401,8 +417,17 @@
   DEMANGLE_COMPONENT_DEFAULT_ARG,
   /* An unnamed type.  */
   DEMANGLE_COMPONENT_UNNAMED_TYPE,
+  /* A transactional clone.  This has one subtree, the encoding for
+     which it is providing alternative linkage.  */
+  DEMANGLE_COMPONENT_TRANSACTION_CLONE,
+  /* A non-transactional clone entry point.  In the i386/x86_64 abi,
+     the unmangled symbol of a tm_callable becomes a thunk and the
+     non-transactional function version is mangled thus.  */
+  DEMANGLE_COMPONENT_NONTRANSACTION_CLONE,
   /* A pack expansion.  */
   DEMANGLE_COMPONENT_PACK_EXPANSION,
+  /* A name with an ABI tag.  */
+  DEMANGLE_COMPONENT_TAGGED_NAME,
   /* A cloned function.  */
   DEMANGLE_COMPONENT_CLONE
 };
diff --git a/include/dwarf2.h b/include/dwarf2.h
index a617a2c..f83cf16 100644
--- a/include/dwarf2.h
+++ b/include/dwarf2.h
@@ -932,4 +932,18 @@
 
 #define DW_EH_PE_indirect	0x80
 
+/* Codes for the debug sections in a dwarf package (.dwp) file.  */
+enum dwarf_sect
+  {
+    DW_SECT_INFO = 1,
+    DW_SECT_TYPES = 2,
+    DW_SECT_ABBREV = 3,
+    DW_SECT_LINE = 4,
+    DW_SECT_LOC = 5,
+    DW_SECT_STR_OFFSETS = 6,
+    DW_SECT_MACINFO = 7,
+    DW_SECT_MACRO = 8,
+    DW_SECT_MAX = 8
+  };
+
 #endif /* _DWARF2_H */
diff --git a/include/plugin-api.h b/include/plugin-api.h
index 122424c..5797d4d 100644
--- a/include/plugin-api.h
+++ b/include/plugin-api.h
@@ -66,7 +66,8 @@
 {
   LDPO_REL,
   LDPO_EXEC,
-  LDPO_DYN
+  LDPO_DYN,
+  LDPO_PIE
 };
 
 /* An input file managed by the plugin library.  */
@@ -317,6 +318,33 @@
 enum ld_plugin_status
 (*ld_plugin_allow_section_ordering) (void);
 
+/* The linker's interface for specifying that a subset of sections is
+   to be mapped to a unique segment.  If the plugin wants to call
+   unique_segment_for_sections, it must call this function from a
+   claim_file_handler or when it is first loaded.  */
+
+typedef
+enum ld_plugin_status
+(*ld_plugin_allow_unique_segment_for_sections) (void);
+
+/* The linker's interface for specifying that a specific set of sections
+   must be mapped to a unique segment.  ELF segments do not have names
+   and the NAME is used as the name of the newly created output section
+   that is then placed in the unique PT_LOAD segment.  FLAGS is used to
+   specify if any additional segment flags need to be set.  For instance,
+   a specific segment flag can be set to identify this segment.  Unsetting
+   segment flags that would be set by default is not possible.  The
+   parameter SEGMENT_ALIGNMENT when non-zero will override the default.  */
+
+typedef
+enum ld_plugin_status
+(*ld_plugin_unique_segment_for_sections) (
+    const char* segment_name,
+    uint64_t segment_flags,
+    uint64_t segment_alignment,
+    const struct ld_plugin_section * section_list,
+    unsigned int num_sections);
+
 enum ld_plugin_level
 {
   LDPL_INFO,
@@ -330,31 +358,33 @@
 enum ld_plugin_tag
 {
   LDPT_NULL = 0,
-  LDPT_API_VERSION,
-  LDPT_GOLD_VERSION,
-  LDPT_LINKER_OUTPUT,
-  LDPT_OPTION,
-  LDPT_REGISTER_CLAIM_FILE_HOOK,
-  LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK,
-  LDPT_REGISTER_CLEANUP_HOOK,
-  LDPT_ADD_SYMBOLS,
-  LDPT_GET_SYMBOLS,
-  LDPT_ADD_INPUT_FILE,
-  LDPT_MESSAGE,
-  LDPT_GET_INPUT_FILE,
-  LDPT_RELEASE_INPUT_FILE,
-  LDPT_ADD_INPUT_LIBRARY,
-  LDPT_OUTPUT_NAME,
-  LDPT_SET_EXTRA_LIBRARY_PATH,
-  LDPT_GNU_LD_VERSION,
-  LDPT_GET_VIEW,
-  LDPT_GET_INPUT_SECTION_COUNT,
-  LDPT_GET_INPUT_SECTION_TYPE,
-  LDPT_GET_INPUT_SECTION_NAME,
-  LDPT_GET_INPUT_SECTION_CONTENTS,
-  LDPT_UPDATE_SECTION_ORDER,
-  LDPT_ALLOW_SECTION_ORDERING,
-  LDPT_GET_SYMBOLS_V2
+  LDPT_API_VERSION = 1,
+  LDPT_GOLD_VERSION = 2,
+  LDPT_LINKER_OUTPUT = 3,
+  LDPT_OPTION = 4,
+  LDPT_REGISTER_CLAIM_FILE_HOOK = 5,
+  LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK = 6,
+  LDPT_REGISTER_CLEANUP_HOOK = 7,
+  LDPT_ADD_SYMBOLS = 8,
+  LDPT_GET_SYMBOLS = 9,
+  LDPT_ADD_INPUT_FILE = 10,
+  LDPT_MESSAGE = 11,
+  LDPT_GET_INPUT_FILE = 12,
+  LDPT_RELEASE_INPUT_FILE = 13,
+  LDPT_ADD_INPUT_LIBRARY = 14,
+  LDPT_OUTPUT_NAME = 15,
+  LDPT_SET_EXTRA_LIBRARY_PATH = 16,
+  LDPT_GNU_LD_VERSION = 17,
+  LDPT_GET_VIEW = 18,
+  LDPT_GET_INPUT_SECTION_COUNT = 19,
+  LDPT_GET_INPUT_SECTION_TYPE = 20,
+  LDPT_GET_INPUT_SECTION_NAME = 21,
+  LDPT_GET_INPUT_SECTION_CONTENTS = 22,
+  LDPT_UPDATE_SECTION_ORDER = 23,
+  LDPT_ALLOW_SECTION_ORDERING = 24,
+  LDPT_GET_SYMBOLS_V2 = 25,
+  LDPT_ALLOW_UNIQUE_SEGMENT_FOR_SECTIONS = 26,
+  LDPT_UNIQUE_SEGMENT_FOR_SECTIONS = 27
 };
 
 /* The plugin transfer vector.  */
@@ -384,6 +414,8 @@
     ld_plugin_get_input_section_contents tv_get_input_section_contents;
     ld_plugin_update_section_order tv_update_section_order;
     ld_plugin_allow_section_ordering tv_allow_section_ordering;
+    ld_plugin_allow_unique_segment_for_sections tv_allow_unique_segment_for_sections; 
+    ld_plugin_unique_segment_for_sections tv_unique_segment_for_sections;
   } tv_u;
 };
 
diff --git a/ld/.gitignore b/ld/.gitignore
new file mode 100644
index 0000000..a345bfb
--- /dev/null
+++ b/ld/.gitignore
@@ -0,0 +1,16 @@
+/configdoc.texi
+/deffilep.c
+/deffilep.h
+/ld-new
+/ld.1
+/ldemul-list.h
+/ldgram.c
+/ldgram.h
+/ldlex.c
+/stringify.sed
+/tdirs
+
+/e*.c
+
+/ldscripts
+/tmpdir
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 7aacf0f..f82b773 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -190,6 +190,9 @@
 {
   char *emulation;
   long start_time = get_run_time ();
+#ifdef HAVE_SBRK
+  char *start_sbrk = (char *) sbrk (0);
+#endif
 
 #if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
   setlocale (LC_MESSAGES, "");
@@ -499,7 +502,7 @@
 	       program_name, run_time / 1000000, run_time % 1000000);
 #ifdef HAVE_SBRK
       fprintf (stderr, _("%s: data size %ld\n"), program_name,
-	       (long) (lim - (char *) &environ));
+	       (long) (lim - start_sbrk));
 #endif
       fflush (stderr);
     }
diff --git a/ld/testsuite/ld-elf/pr13177.d b/ld/testsuite/ld-elf/pr13177.d
deleted file mode 100644
index e56e865..0000000
--- a/ld/testsuite/ld-elf/pr13177.d
+++ /dev/null
@@ -1,12 +0,0 @@
-#source: pr13177.s
-#ld: --gc-sections -shared
-#readelf: -s -D --wide
-#target: *-*-linux* *-*-gnu*
-#notarget: arc-*-* d30v-*-* dlx-*-* i960-*-* or32-*-* pj*-*-*
-#notarget: hppa64-*-* i370-*-* i860-*-* ia64-*-* mep-*-* mn10200-*-*
-# generic linker targets don't support --gc-sections, nor do a bunch of others
-
-#failif
-#...
-.*: 0+0 +0 +NOTYPE +GLOBAL +DEFAULT +UND bar
-#...
diff --git a/ld/testsuite/ld-elf/pr13177.s b/ld/testsuite/ld-elf/pr13177.s
deleted file mode 100644
index d7caad3..0000000
--- a/ld/testsuite/ld-elf/pr13177.s
+++ /dev/null
@@ -1,9 +0,0 @@
-	.section .text.foo,"ax",%progbits
-	.globl	foo
-	.type	foo, %function
-foo:
-	.byte 0
-	.section .data.opt_out,"aw",%progbits
-	.type	opt_out, %object
-opt_out:
-	.dc.a bar
diff --git a/libiberty/.gitignore b/libiberty/.gitignore
new file mode 100644
index 0000000..ca2fba5
--- /dev/null
+++ b/libiberty/.gitignore
@@ -0,0 +1,2 @@
+/required-list
+/xhost-mkfrag
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 32318e8..e25cdd7 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -275,6 +275,19 @@
   int allocation_failure;
 };
 
+/* Checkpoint structure to allow backtracking.  This holds copies
+   of the fields of struct d_info that need to be restored
+   if a trial parse needs to be backtracked over.  */
+
+struct d_info_checkpoint
+{
+  const char *n;
+  int next_comp;
+  int next_sub;
+  int did_subs;
+  int expansion;
+};
+
 enum { D_PRINT_BUFFER_LENGTH = 256 };
 struct d_print_info
 {
@@ -302,6 +315,8 @@
   int pack_index;
   /* Number of d_print_flush calls so far.  */
   unsigned long int flush_count;
+  /* The nearest enclosing template, if any.  */
+  const struct demangle_component *current_template;
 };
 
 #ifdef CP_DEMANGLE_DEBUG
@@ -382,6 +397,9 @@
 d_cv_qualifiers (struct d_info *, struct demangle_component **, int);
 
 static struct demangle_component *
+d_ref_qualifier (struct d_info *, struct demangle_component *);
+
+static struct demangle_component *
 d_function_type (struct d_info *);
 
 static struct demangle_component *
@@ -425,6 +443,10 @@
 
 static struct demangle_component *d_substitution (struct d_info *, int);
 
+static void d_checkpoint (struct d_info *, struct d_info_checkpoint *);
+
+static void d_backtrack (struct d_info *, struct d_info_checkpoint *);
+
 static void d_growable_string_init (struct d_growable_string *, size_t);
 
 static inline void
@@ -508,6 +530,11 @@
     case DEMANGLE_COMPONENT_NAME:
       printf ("name '%.*s'\n", dc->u.s_name.len, dc->u.s_name.s);
       return;
+    case DEMANGLE_COMPONENT_TAGGED_NAME:
+      printf ("tagged name\n");
+      d_dump (dc->u.s_binary.left, indent + 2);
+      d_dump (dc->u.s_binary.right, indent + 2);
+      return;
     case DEMANGLE_COMPONENT_TEMPLATE_PARAM:
       printf ("template parameter %ld\n", dc->u.s_number.number);
       return;
@@ -585,6 +612,12 @@
     case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
       printf ("hidden alias\n");
       break;
+    case DEMANGLE_COMPONENT_TRANSACTION_CLONE:
+      printf ("transaction clone\n");
+      break;
+    case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:
+      printf ("non-transaction clone\n");
+      break;
     case DEMANGLE_COMPONENT_RESTRICT:
       printf ("restrict\n");
       break;
@@ -603,6 +636,12 @@
     case DEMANGLE_COMPONENT_CONST_THIS:
       printf ("const this\n");
       break;
+    case DEMANGLE_COMPONENT_REFERENCE_THIS:
+      printf ("reference this\n");
+      break;
+    case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
+      printf ("rvalue reference this\n");
+      break;
     case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
       printf ("vendor type qualifier\n");
       break;
@@ -642,9 +681,15 @@
     case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
       printf ("template argument list\n");
       break;
+    case DEMANGLE_COMPONENT_INITIALIZER_LIST:
+      printf ("initializer list\n");
+      break;
     case DEMANGLE_COMPONENT_CAST:
       printf ("cast\n");
       break;
+    case DEMANGLE_COMPONENT_NULLARY:
+      printf ("nullary operator\n");
+      break;
     case DEMANGLE_COMPONENT_UNARY:
       printf ("unary operator\n");
       break;
@@ -684,6 +729,20 @@
     case DEMANGLE_COMPONENT_PACK_EXPANSION:
       printf ("pack expansion\n");
       break;
+    case DEMANGLE_COMPONENT_TLS_INIT:
+      printf ("tls init function\n");
+      break;
+    case DEMANGLE_COMPONENT_TLS_WRAPPER:
+      printf ("tls wrapper function\n");
+      break;
+    case DEMANGLE_COMPONENT_DEFAULT_ARG:
+      printf ("default argument %d\n", dc->u.s_unary_num.num);
+      d_dump (dc->u.s_unary_num.sub, indent+2);
+      return;
+    case DEMANGLE_COMPONENT_LAMBDA:
+      printf ("lambda %d\n", dc->u.s_unary_num.num);
+      d_dump (dc->u.s_unary_num.sub, indent+2);
+      return;
     }
 
   d_dump (d_left (dc), indent + 2);
@@ -732,7 +791,7 @@
   if (p == NULL
       || name == NULL
       || (int) kind < gnu_v3_complete_object_ctor
-      || (int) kind > gnu_v3_complete_object_allocating_ctor)
+      || (int) kind > gnu_v3_object_ctor_group)
     return 0;
   p->type = DEMANGLE_COMPONENT_CTOR;
   p->u.s_ctor.kind = kind;
@@ -751,7 +810,7 @@
   if (p == NULL
       || name == NULL
       || (int) kind < gnu_v3_deleting_dtor
-      || (int) kind > gnu_v3_base_object_dtor)
+      || (int) kind > gnu_v3_object_dtor_group)
     return 0;
   p->type = DEMANGLE_COMPONENT_DTOR;
   p->u.s_dtor.kind = kind;
@@ -791,6 +850,7 @@
     case DEMANGLE_COMPONENT_QUAL_NAME:
     case DEMANGLE_COMPONENT_LOCAL_NAME:
     case DEMANGLE_COMPONENT_TYPED_NAME:
+    case DEMANGLE_COMPONENT_TAGGED_NAME:
     case DEMANGLE_COMPONENT_TEMPLATE:
     case DEMANGLE_COMPONENT_CONSTRUCTION_VTABLE:
     case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
@@ -800,7 +860,6 @@
     case DEMANGLE_COMPONENT_BINARY_ARGS:
     case DEMANGLE_COMPONENT_TRINARY:
     case DEMANGLE_COMPONENT_TRINARY_ARG1:
-    case DEMANGLE_COMPONENT_TRINARY_ARG2:
     case DEMANGLE_COMPONENT_LITERAL:
     case DEMANGLE_COMPONENT_LITERAL_NEG:
     case DEMANGLE_COMPONENT_COMPOUND_NAME:
@@ -821,8 +880,12 @@
     case DEMANGLE_COMPONENT_COVARIANT_THUNK:
     case DEMANGLE_COMPONENT_JAVA_CLASS:
     case DEMANGLE_COMPONENT_GUARD:
+    case DEMANGLE_COMPONENT_TLS_INIT:
+    case DEMANGLE_COMPONENT_TLS_WRAPPER:
     case DEMANGLE_COMPONENT_REFTEMP:
     case DEMANGLE_COMPONENT_HIDDEN_ALIAS:
+    case DEMANGLE_COMPONENT_TRANSACTION_CLONE:
+    case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:
     case DEMANGLE_COMPONENT_POINTER:
     case DEMANGLE_COMPONENT_REFERENCE:
     case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
@@ -835,6 +898,8 @@
     case DEMANGLE_COMPONENT_PACK_EXPANSION:
     case DEMANGLE_COMPONENT_GLOBAL_CONSTRUCTORS:
     case DEMANGLE_COMPONENT_GLOBAL_DESTRUCTORS:
+    case DEMANGLE_COMPONENT_NULLARY:
+    case DEMANGLE_COMPONENT_TRINARY_ARG2:
       if (left == NULL)
 	return NULL;
       break;
@@ -842,6 +907,7 @@
       /* This needs a right parameter, but the left parameter can be
 	 empty.  */
     case DEMANGLE_COMPONENT_ARRAY_TYPE:
+    case DEMANGLE_COMPONENT_INITIALIZER_LIST:
       if (right == NULL)
 	return NULL;
       break;
@@ -855,6 +921,8 @@
     case DEMANGLE_COMPONENT_RESTRICT_THIS:
     case DEMANGLE_COMPONENT_VOLATILE_THIS:
     case DEMANGLE_COMPONENT_CONST_THIS:
+    case DEMANGLE_COMPONENT_REFERENCE_THIS:
+    case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
     case DEMANGLE_COMPONENT_ARGLIST:
     case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
       break;
@@ -1093,6 +1161,8 @@
     case DEMANGLE_COMPONENT_RESTRICT_THIS:
     case DEMANGLE_COMPONENT_VOLATILE_THIS:
     case DEMANGLE_COMPONENT_CONST_THIS:
+    case DEMANGLE_COMPONENT_REFERENCE_THIS:
+    case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
       return has_return_type (d_left (dc));
     }
 }
@@ -1148,7 +1218,9 @@
 	     v2 demangler without DMGL_PARAMS.  */
 	  while (dc->type == DEMANGLE_COMPONENT_RESTRICT_THIS
 		 || dc->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-		 || dc->type == DEMANGLE_COMPONENT_CONST_THIS)
+		 || dc->type == DEMANGLE_COMPONENT_CONST_THIS
+		 || dc->type == DEMANGLE_COMPONENT_REFERENCE_THIS
+		 || dc->type == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS)
 	    dc = d_left (dc);
 
 	  /* If the top level is a DEMANGLE_COMPONENT_LOCAL_NAME, then
@@ -1162,7 +1234,9 @@
 	      dcr = d_right (dc);
 	      while (dcr->type == DEMANGLE_COMPONENT_RESTRICT_THIS
 		     || dcr->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-		     || dcr->type == DEMANGLE_COMPONENT_CONST_THIS)
+		     || dcr->type == DEMANGLE_COMPONENT_CONST_THIS
+		     || dcr->type == DEMANGLE_COMPONENT_REFERENCE_THIS
+		     || dcr->type == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS)
 		dcr = d_left (dcr);
 	      dc->u.s_binary.right = dcr;
 	    }
@@ -1178,6 +1252,23 @@
     }
 }
 
+/* <tagged-name> ::= <name> B <source-name> */
+
+static struct demangle_component *
+d_abi_tags (struct d_info *di, struct demangle_component *dc)
+{
+  char peek;
+  while (peek = d_peek_char (di),
+	 peek == 'B')
+    {
+      struct demangle_component *tag;
+      d_advance (di, 1);
+      tag = d_source_name (di);
+      dc = d_make_comp (di, DEMANGLE_COMPONENT_TAGGED_NAME, dc, tag);
+    }
+  return dc;
+}
+
 /* <name> ::= <nested-name>
           ::= <unscoped-name>
           ::= <unscoped-template-name> <template-args>
@@ -1204,7 +1295,6 @@
     case 'Z':
       return d_local_name (di);
 
-    case 'L':
     case 'U':
       return d_unqualified_name (di);
 
@@ -1251,6 +1341,7 @@
 	return dc;
       }
 
+    case 'L':
     default:
       dc = d_unqualified_name (di);
       if (d_peek_char (di) == 'I')
@@ -1267,8 +1358,8 @@
     }
 }
 
-/* <nested-name> ::= N [<CV-qualifiers>] <prefix> <unqualified-name> E
-                 ::= N [<CV-qualifiers>] <template-prefix> <template-args> E
+/* <nested-name> ::= N [<CV-qualifiers>] [<ref-qualifier>] <prefix> <unqualified-name> E
+                 ::= N [<CV-qualifiers>] [<ref-qualifier>] <template-prefix> <template-args> E
 */
 
 static struct demangle_component *
@@ -1276,6 +1367,7 @@
 {
   struct demangle_component *ret;
   struct demangle_component **pret;
+  struct demangle_component *rqual;
 
   if (! d_check_char (di, 'N'))
     return NULL;
@@ -1284,10 +1376,20 @@
   if (pret == NULL)
     return NULL;
 
+  /* Parse the ref-qualifier now and then attach it
+     once we have something to attach it to.  */
+  rqual = d_ref_qualifier (di, NULL);
+
   *pret = d_prefix (di);
   if (*pret == NULL)
     return NULL;
 
+  if (rqual)
+    {
+      d_left (rqual) = ret;
+      ret = rqual;
+    }
+
   if (! d_check_char (di, 'E'))
     return NULL;
 
@@ -1392,26 +1494,27 @@
 static struct demangle_component *
 d_unqualified_name (struct d_info *di)
 {
+  struct demangle_component *ret;
   char peek;
 
   peek = d_peek_char (di);
   if (IS_DIGIT (peek))
-    return d_source_name (di);
+    ret = d_source_name (di);
   else if (IS_LOWER (peek))
     {
-      struct demangle_component *ret;
-
       ret = d_operator_name (di);
       if (ret != NULL && ret->type == DEMANGLE_COMPONENT_OPERATOR)
-	di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2;
-      return ret;
+	{
+	  di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2;
+	  if (!strcmp (ret->u.s_operator.op->code, "li"))
+	    ret = d_make_comp (di, DEMANGLE_COMPONENT_UNARY, ret,
+			       d_source_name (di));
+	}
     }
   else if (peek == 'C' || peek == 'D')
-    return d_ctor_dtor_name (di);
+    ret = d_ctor_dtor_name (di);
   else if (peek == 'L')
     {
-      struct demangle_component * ret;
-
       d_advance (di, 1);
 
       ret = d_source_name (di);
@@ -1419,22 +1522,27 @@
 	return NULL;
       if (! d_discriminator (di))
 	return NULL;
-      return ret;
     }
   else if (peek == 'U')
     {
       switch (d_peek_next_char (di))
 	{
 	case 'l':
-	  return d_lambda (di);
+	  ret = d_lambda (di);
+	  break;
 	case 't':
-	  return d_unnamed_type (di);
+	  ret = d_unnamed_type (di);
+	  break;
 	default:
 	  return NULL;
 	}
     }
   else
     return NULL;
+
+  if (d_peek_char (di) == 'B')
+    ret = d_abi_tags (di, ret);
+  return ret;
 }
 
 /* <source-name> ::= <(positive length) number> <identifier>  */
@@ -1546,7 +1654,8 @@
 /* operator_name ::= many different two character encodings.
                  ::= cv <type>
                  ::= v <digit> <source-name>
-*/
+
+   This list is sorted for binary search.  */
 
 #define NL(s) s, (sizeof s) - 1
 
@@ -1558,23 +1667,30 @@
   { "aa", NL ("&&"),        2 },
   { "ad", NL ("&"),         1 },
   { "an", NL ("&"),         2 },
+  { "at", NL ("alignof "),   1 },
+  { "az", NL ("alignof "),   1 },
+  { "cc", NL ("const_cast"), 2 },
   { "cl", NL ("()"),        2 },
   { "cm", NL (","),         2 },
   { "co", NL ("~"),         1 },
   { "dV", NL ("/="),        2 },
-  { "da", NL ("delete[]"),  1 },
+  { "da", NL ("delete[] "), 1 },
+  { "dc", NL ("dynamic_cast"), 2 },
   { "de", NL ("*"),         1 },
-  { "dl", NL ("delete"),    1 },
+  { "dl", NL ("delete "),   1 },
+  { "ds", NL (".*"),        2 },
   { "dt", NL ("."),         2 },
   { "dv", NL ("/"),         2 },
   { "eO", NL ("^="),        2 },
   { "eo", NL ("^"),         2 },
   { "eq", NL ("=="),        2 },
   { "ge", NL (">="),        2 },
+  { "gs", NL ("::"),	    1 },
   { "gt", NL (">"),         2 },
   { "ix", NL ("[]"),        2 },
   { "lS", NL ("<<="),       2 },
   { "le", NL ("<="),        2 },
+  { "li", NL ("operator\"\" "), 1 },
   { "ls", NL ("<<"),        2 },
   { "lt", NL ("<"),         2 },
   { "mI", NL ("-="),        2 },
@@ -1582,11 +1698,11 @@
   { "mi", NL ("-"),         2 },
   { "ml", NL ("*"),         2 },
   { "mm", NL ("--"),        1 },
-  { "na", NL ("new[]"),     1 },
+  { "na", NL ("new[]"),     3 },
   { "ne", NL ("!="),        2 },
   { "ng", NL ("-"),         1 },
   { "nt", NL ("!"),         1 },
-  { "nw", NL ("new"),       1 },
+  { "nw", NL ("new"),       3 },
   { "oR", NL ("|="),        2 },
   { "oo", NL ("||"),        2 },
   { "or", NL ("|"),         2 },
@@ -1599,12 +1715,14 @@
   { "qu", NL ("?"),         3 },
   { "rM", NL ("%="),        2 },
   { "rS", NL (">>="),       2 },
+  { "rc", NL ("reinterpret_cast"), 2 },
   { "rm", NL ("%"),         2 },
   { "rs", NL (">>"),        2 },
+  { "sc", NL ("static_cast"), 2 },
   { "st", NL ("sizeof "),   1 },
   { "sz", NL ("sizeof "),   1 },
-  { "at", NL ("alignof "),   1 },
-  { "az", NL ("alignof "),   1 },
+  { "tr", NL ("throw"),     0 },
+  { "tw", NL ("throw "),    1 },
   { NULL, NULL, 0,          0 }
 };
 
@@ -1619,8 +1737,15 @@
   if (c1 == 'v' && IS_DIGIT (c2))
     return d_make_extended_operator (di, c2 - '0', d_source_name (di));
   else if (c1 == 'c' && c2 == 'v')
-    return d_make_comp (di, DEMANGLE_COMPONENT_CAST,
-			cplus_demangle_type (di), NULL);
+    {
+      struct demangle_component *type;
+      int was_conversion = di->is_conversion;
+
+      di->is_conversion = ! di->is_expression;
+      type = cplus_demangle_type (di);
+      di->is_conversion = was_conversion;
+      return d_make_comp (di, DEMANGLE_COMPONENT_CAST, type, NULL);
+    }
   else
     {
       /* LOW is the inclusive lower bound.  */
@@ -1762,6 +1887,8 @@
                   ::= GR <name>
 		  ::= GA <encoding>
 		  ::= Gr <resource name>
+		  ::= GTt <encoding>
+		  ::= GTn <encoding>
 */
 
 static struct demangle_component *
@@ -1834,6 +1961,14 @@
 	  return d_make_comp (di, DEMANGLE_COMPONENT_JAVA_CLASS,
 			      cplus_demangle_type (di), NULL);
 
+	case 'H':
+	  return d_make_comp (di, DEMANGLE_COMPONENT_TLS_INIT,
+			      d_name (di), NULL);
+
+	case 'W':
+	  return d_make_comp (di, DEMANGLE_COMPONENT_TLS_WRAPPER,
+			      d_name (di), NULL);
+
 	default:
 	  return NULL;
 	}
@@ -1846,13 +1981,33 @@
 	  return d_make_comp (di, DEMANGLE_COMPONENT_GUARD, d_name (di), NULL);
 
 	case 'R':
-	  return d_make_comp (di, DEMANGLE_COMPONENT_REFTEMP, d_name (di),
-			      NULL);
+	  {
+	    struct demangle_component *name = d_name (di);
+	    return d_make_comp (di, DEMANGLE_COMPONENT_REFTEMP, name,
+				d_number_component (di));
+	  }
 
 	case 'A':
 	  return d_make_comp (di, DEMANGLE_COMPONENT_HIDDEN_ALIAS,
 			      d_encoding (di, 0), NULL);
 
+	case 'T':
+	  switch (d_next_char (di))
+	    {
+	    case 'n':
+	      return d_make_comp (di, DEMANGLE_COMPONENT_NONTRANSACTION_CLONE,
+				  d_encoding (di, 0), NULL);
+	    default:
+	      /* ??? The proposal is that other letters (such as 'h') stand
+		 for different variants of transaction cloning, such as
+		 compiling directly for hardware transaction support.  But
+		 they still should all be transactional clones of some sort
+		 so go ahead and call them that.  */
+	    case 't':
+	      return d_make_comp (di, DEMANGLE_COMPONENT_TRANSACTION_CLONE,
+				  d_encoding (di, 0), NULL);
+	    }
+
 	case 'r':
 	  return d_java_resource (di);
 
@@ -1936,6 +2091,9 @@
 	  case '3':
 	    kind = gnu_v3_complete_object_allocating_ctor;
 	    break;
+	  case '5':
+	    kind = gnu_v3_object_ctor_group;
+	    break;
 	  default:
 	    return NULL;
 	  }
@@ -1958,6 +2116,9 @@
 	  case '2':
 	    kind = gnu_v3_base_object_dtor;
 	    break;
+	  case '5':
+	    kind = gnu_v3_object_dtor_group;
+	    break;
 	  default:
 	    return NULL;
 	  }
@@ -2064,7 +2225,19 @@
       if (pret == NULL)
 	return NULL;
       *pret = cplus_demangle_type (di);
-      if (! *pret || ! d_add_substitution (di, ret))
+      if (! *pret)
+	return NULL;
+      if ((*pret)->type == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS
+	  || (*pret)->type == DEMANGLE_COMPONENT_REFERENCE_THIS)
+	{
+	  /* Move the ref-qualifier outside the cv-qualifiers so that
+	     they are printed in the right order.  */
+	  struct demangle_component *fn = d_left (*pret);
+	  d_left (*pret) = ret;
+	  ret = *pret;
+	  *pret = fn;
+	}
+      if (! d_add_substitution (di, ret))
 	return NULL;
       return ret;
     }
@@ -2113,13 +2286,61 @@
       ret = d_template_param (di);
       if (d_peek_char (di) == 'I')
 	{
-	  /* This is <template-template-param> <template-args>.  The
-	     <template-template-param> part is a substitution
+	  /* This may be <template-template-param> <template-args>.
+	     If this is the type for a conversion operator, we can
+	     have a <template-template-param> here only by following
+	     a derivation like this:
+
+	     <nested-name>
+	     -> <template-prefix> <template-args>
+	     -> <prefix> <template-unqualified-name> <template-args>
+	     -> <unqualified-name> <template-unqualified-name> <template-args>
+	     -> <source-name> <template-unqualified-name> <template-args>
+	     -> <source-name> <operator-name> <template-args>
+	     -> <source-name> cv <type> <template-args>
+	     -> <source-name> cv <template-template-param> <template-args> <template-args>
+
+	     where the <template-args> is followed by another.
+	     Otherwise, we must have a derivation like this:
+
+	     <nested-name>
+	     -> <template-prefix> <template-args>
+	     -> <prefix> <template-unqualified-name> <template-args>
+	     -> <unqualified-name> <template-unqualified-name> <template-args>
+	     -> <source-name> <template-unqualified-name> <template-args>
+	     -> <source-name> <operator-name> <template-args>
+	     -> <source-name> cv <type> <template-args>
+	     -> <source-name> cv <template-param> <template-args>
+
+	     where we need to leave the <template-args> to be processed
+	     by d_prefix (following the <template-prefix>).
+
+	     The <template-template-param> part is a substitution
 	     candidate.  */
-	  if (! d_add_substitution (di, ret))
-	    return NULL;
-	  ret = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, ret,
-			     d_template_args (di));
+	  if (! di->is_conversion)
+	    {
+	      if (! d_add_substitution (di, ret))
+		return NULL;
+	      ret = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, ret,
+				 d_template_args (di));
+	    }
+	  else
+	    {
+	      struct demangle_component *args;
+	      struct d_info_checkpoint checkpoint;
+
+	      d_checkpoint (di, &checkpoint);
+	      args = d_template_args (di);
+	      if (d_peek_char (di) == 'I')
+		{
+		  if (! d_add_substitution (di, ret))
+		    return NULL;
+		  ret = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, ret,
+				     args);
+		}
+	      else
+		d_backtrack (di, &checkpoint);
+	    }
 	}
       break;
 
@@ -2206,12 +2427,19 @@
 			     d_expression (di), NULL);
 	  if (ret && d_next_char (di) != 'E')
 	    ret = NULL;
+	  can_subst = 1;
 	  break;
 	  
 	case 'p':
 	  /* Pack expansion.  */
 	  ret = d_make_comp (di, DEMANGLE_COMPONENT_PACK_EXPANSION,
 			     cplus_demangle_type (di), NULL);
+	  can_subst = 1;
+	  break;
+
+	case 'a':
+	  /* auto */
+	  ret = d_make_name (di, "auto", 4);
 	  break;
 	  
 	case 'f':
@@ -2262,6 +2490,7 @@
 
 	case 'v':
 	  ret = d_vector_type (di);
+	  can_subst = 1;
 	  break;
 
         case 'n':
@@ -2294,8 +2523,10 @@
 d_cv_qualifiers (struct d_info *di,
                  struct demangle_component **pret, int member_fn)
 {
+  struct demangle_component **pstart;
   char peek;
 
+  pstart = pret;
   peek = d_peek_char (di);
   while (peek == 'r' || peek == 'V' || peek == 'K')
     {
@@ -2332,10 +2563,63 @@
       peek = d_peek_char (di);
     }
 
+  if (!member_fn && peek == 'F')
+    {
+      while (pstart != pret)
+	{
+	  switch ((*pstart)->type)
+	    {
+	    case DEMANGLE_COMPONENT_RESTRICT:
+	      (*pstart)->type = DEMANGLE_COMPONENT_RESTRICT_THIS;
+	      break;
+	    case DEMANGLE_COMPONENT_VOLATILE:
+	      (*pstart)->type = DEMANGLE_COMPONENT_VOLATILE_THIS;
+	      break;
+	    case DEMANGLE_COMPONENT_CONST:
+	      (*pstart)->type = DEMANGLE_COMPONENT_CONST_THIS;
+	      break;
+	    default:
+	      break;
+	    }
+	  pstart = &d_left (*pstart);
+	}
+    }
+
   return pret;
 }
 
-/* <function-type> ::= F [Y] <bare-function-type> E  */
+/* <ref-qualifier> ::= R
+                   ::= O */
+
+static struct demangle_component *
+d_ref_qualifier (struct d_info *di, struct demangle_component *sub)
+{
+  struct demangle_component *ret = sub;
+  char peek;
+
+  peek = d_peek_char (di);
+  if (peek == 'R' || peek == 'O')
+    {
+      enum demangle_component_type t;
+      if (peek == 'R')
+	{
+	  t = DEMANGLE_COMPONENT_REFERENCE_THIS;
+	  di->expansion += sizeof "&";
+	}
+      else
+	{
+	  t = DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS;
+	  di->expansion += sizeof "&&";
+	}
+      d_advance (di, 1);
+
+      ret = d_make_comp (di, t, ret, NULL);
+    }
+
+  return ret;
+}
+
+/* <function-type> ::= F [Y] <bare-function-type> [<ref-qualifier>] E  */
 
 static struct demangle_component *
 d_function_type (struct d_info *di)
@@ -2351,6 +2635,8 @@
       d_advance (di, 1);
     }
   ret = d_bare_function_type (di, 1);
+  ret = d_ref_qualifier (di, ret);
+
   if (! d_check_char (di, 'E'))
     return NULL;
   return ret;
@@ -2373,6 +2659,10 @@
       char peek = d_peek_char (di);
       if (peek == '\0' || peek == 'E' || peek == '.')
 	break;
+      if ((peek == 'R' || peek == 'O')
+	  && d_peek_next_char (di) == 'E')
+	/* Function ref-qualifier, not a ref prefix for a parameter type.  */
+	break;
       type = cplus_demangle_type (di);
       if (type == NULL)
 	return NULL;
@@ -2553,6 +2843,18 @@
   if (*pmem == NULL)
     return NULL;
 
+  if (pmem != &mem
+      && ((*pmem)->type == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS
+	  || (*pmem)->type == DEMANGLE_COMPONENT_REFERENCE_THIS))
+    {
+      /* Move the ref-qualifier outside the cv-qualifiers so that
+	 they are printed in the right order.  */
+      struct demangle_component *fn = d_left (*pmem);
+      d_left (*pmem) = mem;
+      mem = *pmem;
+      *pmem = fn;
+    }
+
   if (pmem != &mem && (*pmem)->type != DEMANGLE_COMPONENT_FUNCTION_TYPE)
     {
       if (! d_add_substitution (di, mem))
@@ -2615,8 +2917,10 @@
      constructor or destructor.  */
   hold_last_name = di->last_name;
 
-  if (! d_check_char (di, 'I'))
+  if (d_peek_char (di) != 'I'
+      && d_peek_char (di) != 'J')
     return NULL;
+  d_advance (di, 1);
 
   if (d_peek_char (di) == 'E')
     {
@@ -2675,6 +2979,7 @@
       return d_expr_primary (di);
 
     case 'I':
+    case 'J':
       /* An argument pack.  */
       return d_template_args (di);
 
@@ -2683,15 +2988,16 @@
     }
 }
 
-/* Subroutine of <expression> ::= cl <expression>+ E */
+/* Parse a sequence of expressions until we hit the terminator
+   character.  */
 
 static struct demangle_component *
-d_exprlist (struct d_info *di)
+d_exprlist (struct d_info *di, char terminator)
 {
   struct demangle_component *list = NULL;
   struct demangle_component **p = &list;
 
-  if (d_peek_char (di) == 'E')
+  if (d_peek_char (di) == terminator)
     {
       d_advance (di, 1);
       return d_make_comp (di, DEMANGLE_COMPONENT_ARGLIST, NULL, NULL);
@@ -2708,7 +3014,7 @@
 	return NULL;
       p = &d_right (*p);
 
-      if (d_peek_char (di) == 'E')
+      if (d_peek_char (di) == terminator)
 	{
 	  d_advance (di, 1);
 	  break;
@@ -2718,6 +3024,18 @@
   return list;
 }
 
+/* Returns nonzero iff OP is an operator for a C++ cast: const_cast,
+   dynamic_cast, static_cast or reinterpret_cast.  */
+
+static int
+op_is_new_cast (struct demangle_component *op)
+{
+  const char *code = op->u.s_operator.op->code;
+  return (code[1] == 'c'
+	  && (code[0] == 's' || code[0] == 'd'
+	      || code[0] == 'c' || code[0] == 'r'));
+}
+
 /* <expression> ::= <(unary) operator-name> <expression>
                 ::= <(binary) operator-name> <expression> <expression>
                 ::= <(trinary) operator-name> <expression> <expression> <expression>
@@ -2729,8 +3047,8 @@
                 ::= <expr-primary>
 */
 
-static struct demangle_component *
-d_expression (struct d_info *di)
+static inline struct demangle_component *
+d_expression_1 (struct d_info *di)
 {
   char peek;
 
@@ -2758,7 +3076,7 @@
     {
       d_advance (di, 2);
       return d_make_comp (di, DEMANGLE_COMPONENT_PACK_EXPANSION,
-			  d_expression (di), NULL);
+			  d_expression_1 (di), NULL);
     }
   else if (peek == 'f' && d_peek_next_char (di) == 'p')
     {
@@ -2799,9 +3117,21 @@
       else
 	return name;
     }
+  else if ((peek == 'i' || peek == 't')
+	   && d_peek_next_char (di) == 'l')
+    {
+      /* Brace-enclosed initializer list, untyped or typed.  */
+      struct demangle_component *type = NULL;
+      if (peek == 't')
+	type = cplus_demangle_type (di);
+      d_advance (di, 2);
+      return d_make_comp (di, DEMANGLE_COMPONENT_INITIALIZER_LIST,
+			  type, d_exprlist (di, 'E'));
+    }
   else
     {
       struct demangle_component *op;
+      const char *code = NULL;
       int args;
 
       op = d_operator_name (di);
@@ -2809,12 +3139,13 @@
 	return NULL;
 
       if (op->type == DEMANGLE_COMPONENT_OPERATOR)
-	di->expansion += op->u.s_operator.op->len - 2;
-
-      if (op->type == DEMANGLE_COMPONENT_OPERATOR
-	  && strcmp (op->u.s_operator.op->code, "st") == 0)
-	return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
-			    cplus_demangle_type (di));
+	{
+	  code = op->u.s_operator.op->code;
+	  di->expansion += op->u.s_operator.op->len - 2;
+	  if (strcmp (code, "st") == 0)
+	    return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
+				cplus_demangle_type (di));
+	}
 
       switch (op->type)
 	{
@@ -2833,26 +3164,46 @@
 
       switch (args)
 	{
+	case 0:
+	  return d_make_comp (di, DEMANGLE_COMPONENT_NULLARY, op, NULL);
+
 	case 1:
 	  {
 	    struct demangle_component *operand;
+	    int suffix = 0;
+
+	    if (code && (code[0] == 'p' || code[0] == 'm')
+		&& code[1] == code[0])
+	      /* pp_ and mm_ are the prefix variants.  */
+	      suffix = !d_check_char (di, '_');
+
 	    if (op->type == DEMANGLE_COMPONENT_CAST
 		&& d_check_char (di, '_'))
-	      operand = d_exprlist (di);
+	      operand = d_exprlist (di, 'E');
 	    else
-	      operand = d_expression (di);
-	    return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
-				operand);
+	      operand = d_expression_1 (di);
+
+	    if (suffix)
+	      /* Indicate the suffix variant for d_print_comp.  */
+	      return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
+				  d_make_comp (di,
+					       DEMANGLE_COMPONENT_BINARY_ARGS,
+					       operand, operand));
+	    else
+	      return d_make_comp (di, DEMANGLE_COMPONENT_UNARY, op,
+				  operand);
 	  }
 	case 2:
 	  {
 	    struct demangle_component *left;
 	    struct demangle_component *right;
-	    const char *code = op->u.s_operator.op->code;
 
-	    left = d_expression (di);
+	    if (op_is_new_cast (op))
+	      left = cplus_demangle_type (di);
+	    else
+	      left = d_expression_1 (di);
 	    if (!strcmp (code, "cl"))
-	      right = d_exprlist (di);
+	      right = d_exprlist (di, 'E');
 	    else if (!strcmp (code, "dt") || !strcmp (code, "pt"))
 	      {
 		right = d_unqualified_name (di);
@@ -2861,7 +3212,7 @@
 				       right, d_template_args (di));
 	      }
 	    else
-	      right = d_expression (di);
+	      right = d_expression_1 (di);
 
 	    return d_make_comp (di, DEMANGLE_COMPONENT_BINARY, op,
 				d_make_comp (di,
@@ -2872,17 +3223,50 @@
 	  {
 	    struct demangle_component *first;
 	    struct demangle_component *second;
+	    struct demangle_component *third;
 
-	    first = d_expression (di);
-	    second = d_expression (di);
+	    if (!strcmp (code, "qu"))
+	      {
+		/* ?: expression.  */
+		first = d_expression_1 (di);
+		second = d_expression_1 (di);
+		third = d_expression_1 (di);
+	      }
+	    else if (code[0] == 'n')
+	      {
+		/* new-expression.  */
+		if (code[1] != 'w' && code[1] != 'a')
+		  return NULL;
+		first = d_exprlist (di, '_');
+		second = cplus_demangle_type (di);
+		if (d_peek_char (di) == 'E')
+		  {
+		    d_advance (di, 1);
+		    third = NULL;
+		  }
+		else if (d_peek_char (di) == 'p'
+			 && d_peek_next_char (di) == 'i')
+		  {
+		    /* Parenthesized initializer.  */
+		    d_advance (di, 2);
+		    third = d_exprlist (di, 'E');
+		  }
+		else if (d_peek_char (di) == 'i'
+			 && d_peek_next_char (di) == 'l')
+		  /* initializer-list.  */
+		  third = d_expression_1 (di);
+		else
+		  return NULL;
+	      }
+	    else
+	      return NULL;
 	    return d_make_comp (di, DEMANGLE_COMPONENT_TRINARY, op,
 				d_make_comp (di,
 					     DEMANGLE_COMPONENT_TRINARY_ARG1,
 					     first,
 					     d_make_comp (di,
 							  DEMANGLE_COMPONENT_TRINARY_ARG2,
-							  second,
-							  d_expression (di))));
+							  second, third)));
 	  }
 	default:
 	  return NULL;
@@ -2890,6 +3274,18 @@
     }
 }
 
+static struct demangle_component *
+d_expression (struct d_info *di)
+{
+  struct demangle_component *ret;
+  int was_expression = di->is_expression;
+
+  di->is_expression = 1;
+  ret = d_expression_1 (di);
+  di->is_expression = was_expression;
+  return ret;
+}
+
 /* <expr-primary> ::= L <type> <(value) number> E
                   ::= L <type> <(value) float> E
                   ::= L <mangled-name> E
@@ -2955,6 +3351,7 @@
 
 /* <local-name> ::= Z <(function) encoding> E <(entity) name> [<discriminator>]
                 ::= Z <(function) encoding> E s [<discriminator>]
+                ::= Z <(function) encoding> E d [<parameter> number>] _ <entity name>
 */
 
 static struct demangle_component *
@@ -3274,6 +3671,26 @@
     }
 }
 
+static void
+d_checkpoint (struct d_info *di, struct d_info_checkpoint *checkpoint)
+{
+  checkpoint->n = di->n;
+  checkpoint->next_comp = di->next_comp;
+  checkpoint->next_sub = di->next_sub;
+  checkpoint->did_subs = di->did_subs;
+  checkpoint->expansion = di->expansion;
+}
+
+static void
+d_backtrack (struct d_info *di, struct d_info_checkpoint *checkpoint)
+{
+  di->n = checkpoint->n;
+  di->next_comp = checkpoint->next_comp;
+  di->next_sub = checkpoint->next_sub;
+  di->did_subs = checkpoint->did_subs;
+  di->expansion = checkpoint->expansion;
+}
+
 /* Initialize a growable string.  */
 
 static void
@@ -3367,6 +3784,8 @@
   dpi->opaque = opaque;
 
   dpi->demangle_failure = 0;
+
+  dpi->current_template = NULL;
 }
 
 /* Indicate that an error occurred during printing, and test for error.  */
@@ -3556,11 +3975,13 @@
       
     case DEMANGLE_COMPONENT_LAMBDA:
     case DEMANGLE_COMPONENT_NAME:
+    case DEMANGLE_COMPONENT_TAGGED_NAME:
     case DEMANGLE_COMPONENT_OPERATOR:
     case DEMANGLE_COMPONENT_BUILTIN_TYPE:
     case DEMANGLE_COMPONENT_SUB_STD:
     case DEMANGLE_COMPONENT_CHARACTER:
     case DEMANGLE_COMPONENT_FUNCTION_PARAM:
+    case DEMANGLE_COMPONENT_UNNAMED_TYPE:
       return NULL;
 
     case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
@@ -3602,6 +4023,8 @@
 {
   int simple = 0;
   if (dc->type == DEMANGLE_COMPONENT_NAME
+      || dc->type == DEMANGLE_COMPONENT_QUAL_NAME
+      || dc->type == DEMANGLE_COMPONENT_INITIALIZER_LIST
       || dc->type == DEMANGLE_COMPONENT_FUNCTION_PARAM)
     simple = 1;
   if (!simple)
@@ -3638,6 +4061,13 @@
 	d_print_java_identifier (dpi, dc->u.s_name.s, dc->u.s_name.len);
       return;
 
+    case DEMANGLE_COMPONENT_TAGGED_NAME:
+      d_print_comp (dpi, options, d_left (dc));
+      d_append_string (dpi, "[abi:");
+      d_print_comp (dpi, options, d_right (dc));
+      d_append_char (dpi, ']');
+      return;
+
     case DEMANGLE_COMPONENT_QUAL_NAME:
     case DEMANGLE_COMPONENT_LOCAL_NAME:
       d_print_comp (dpi, options, d_left (dc));
@@ -3645,7 +4075,17 @@
 	d_append_string (dpi, "::");
       else
 	d_append_char (dpi, '.');
-      d_print_comp (dpi, options, d_right (dc));
+      {
+	struct demangle_component *local_name = d_right (dc);
+	if (local_name->type == DEMANGLE_COMPONENT_DEFAULT_ARG)
+	  {
+	    d_append_string (dpi, "{default arg#");
+	    d_append_num (dpi, local_name->u.s_unary_num.num + 1);
+	    d_append_string (dpi, "}::");
+	    local_name = local_name->u.s_unary_num.sub;
+	  }
+	d_print_comp (dpi, options, local_name);
+      }
       return;
 
     case DEMANGLE_COMPONENT_TYPED_NAME:
@@ -3680,7 +4120,9 @@
 
 	    if (typed_name->type != DEMANGLE_COMPONENT_RESTRICT_THIS
 		&& typed_name->type != DEMANGLE_COMPONENT_VOLATILE_THIS
-		&& typed_name->type != DEMANGLE_COMPONENT_CONST_THIS)
+		&& typed_name->type != DEMANGLE_COMPONENT_CONST_THIS
+		&& typed_name->type != DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS
+		&& typed_name->type != DEMANGLE_COMPONENT_REFERENCE_THIS)
 	      break;
 
 	    typed_name = d_left (typed_name);
@@ -3714,7 +4156,10 @@
 	      local_name = local_name->u.s_unary_num.sub;
 	    while (local_name->type == DEMANGLE_COMPONENT_RESTRICT_THIS
 		   || local_name->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-		   || local_name->type == DEMANGLE_COMPONENT_CONST_THIS)
+		   || local_name->type == DEMANGLE_COMPONENT_CONST_THIS
+		   || local_name->type == DEMANGLE_COMPONENT_REFERENCE_THIS
+		   || (local_name->type
+		       == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS))
 	      {
 		if (i >= sizeof adpm / sizeof adpm[0])
 		  {
@@ -3761,6 +4206,12 @@
       {
 	struct d_print_mod *hold_dpm;
 	struct demangle_component *dcl;
+	const struct demangle_component *hold_current;
+
+	/* This template may need to be referenced by a cast operator
+	   contained in its subtree.  */
+	hold_current = dpi->current_template;
+	dpi->current_template = dc;
 
 	/* Don't push modifiers into a template definition.  Doing so
 	   could give the wrong definition for a template argument.
@@ -3797,6 +4248,7 @@
           }
 
 	dpi->modifiers = hold_dpm;
+	dpi->current_template = hold_current;
 
 	return;
       }
@@ -3896,8 +4348,20 @@
       d_print_comp (dpi, options, d_left (dc));
       return;
 
+    case DEMANGLE_COMPONENT_TLS_INIT:
+      d_append_string (dpi, "TLS init function for ");
+      d_print_comp (dpi, options, d_left (dc));
+      return;
+
+    case DEMANGLE_COMPONENT_TLS_WRAPPER:
+      d_append_string (dpi, "TLS wrapper function for ");
+      d_print_comp (dpi, options, d_left (dc));
+      return;
+
     case DEMANGLE_COMPONENT_REFTEMP:
-      d_append_string (dpi, "reference temporary for ");
+      d_append_string (dpi, "reference temporary #");
+      d_print_comp (dpi, options, d_right (dc));
+      d_append_string (dpi, " for ");
       d_print_comp (dpi, options, d_left (dc));
       return;
 
@@ -3906,6 +4370,16 @@
       d_print_comp (dpi, options, d_left (dc));
       return;
 
+    case DEMANGLE_COMPONENT_TRANSACTION_CLONE:
+      d_append_string (dpi, "transaction clone for ");
+      d_print_comp (dpi, options, d_left (dc));
+      return;
+
+    case DEMANGLE_COMPONENT_NONTRANSACTION_CLONE:
+      d_append_string (dpi, "non-transaction clone for ");
+      d_print_comp (dpi, options, d_left (dc));
+      return;
+
     case DEMANGLE_COMPONENT_SUB_STD:
       d_append_buffer (dpi, dc->u.s_string.string, dc->u.s_string.len);
       return;
@@ -3969,6 +4443,8 @@
     case DEMANGLE_COMPONENT_RESTRICT_THIS:
     case DEMANGLE_COMPONENT_VOLATILE_THIS:
     case DEMANGLE_COMPONENT_CONST_THIS:
+    case DEMANGLE_COMPONENT_REFERENCE_THIS:
+    case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
     case DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL:
     case DEMANGLE_COMPONENT_POINTER:
     case DEMANGLE_COMPONENT_COMPLEX:
@@ -4185,16 +4661,32 @@
 	}
       return;
 
+    case DEMANGLE_COMPONENT_INITIALIZER_LIST:
+      {
+	struct demangle_component *type = d_left (dc);
+	struct demangle_component *list = d_right (dc);
+
+	if (type)
+	  d_print_comp (dpi, options, type);
+	d_append_char (dpi, '{');
+	d_print_comp (dpi, options, list);
+	d_append_char (dpi, '}');
+      }
+      return;
+
     case DEMANGLE_COMPONENT_OPERATOR:
       {
-	char c;
+	const struct demangle_operator_info *op = dc->u.s_operator.op;
+	int len = op->len;
 
 	d_append_string (dpi, "operator");
-	c = dc->u.s_operator.op->name[0];
-	if (IS_LOWER (c))
+	/* Add a space before new/delete.  */
+	if (IS_LOWER (op->name[0]))
 	  d_append_char (dpi, ' ');
-	d_append_buffer (dpi, dc->u.s_operator.op->name,
-			 dc->u.s_operator.op->len);
+	/* Omit a trailing space.  */
+	if (op->name[len-1] == ' ')
+	  --len;
+	d_append_buffer (dpi, op->name, len);
 	return;
       }
 
@@ -4208,55 +4700,59 @@
       d_print_cast (dpi, options, dc);
       return;
 
+    case DEMANGLE_COMPONENT_NULLARY:
+      d_print_expr_op (dpi, options, d_left (dc));
+      return;
+
     case DEMANGLE_COMPONENT_UNARY:
-      if (d_left (dc)->type == DEMANGLE_COMPONENT_OPERATOR
-	  && d_left (dc)->u.s_operator.op->len == 1
-	  && d_left (dc)->u.s_operator.op->name[0] == '&'
-	  && d_right (dc)->type == DEMANGLE_COMPONENT_TYPED_NAME
-	  && d_left (d_right (dc))->type == DEMANGLE_COMPONENT_QUAL_NAME
-	  && d_right (d_right (dc))->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)
-	{
-	  /* Address of a function (therefore in an expression context) must
-	     have its argument list suppressed.
+      {
+	struct demangle_component *op = d_left (dc);
+	struct demangle_component *operand = d_right (dc);
+	const char *code = NULL;
 
-	     unary operator ... dc
-	       operator & ... d_left (dc)
-	       typed name ... d_right (dc)
-		 qualified name ... d_left (d_right (dc))
-		   <names>
-		 function type ... d_right (d_right (dc))
-		   argument list
-		     <arguments>  */
+	if (op->type == DEMANGLE_COMPONENT_OPERATOR)
+	  {
+	    code = op->u.s_operator.op->code;
+	    if (!strcmp (code, "ad"))
+	      {
+		/* Don't print the argument list for the address of a
+		   function.  */
+		if (operand->type == DEMANGLE_COMPONENT_TYPED_NAME
+		    && d_left (operand)->type == DEMANGLE_COMPONENT_QUAL_NAME
+		    && d_right (operand)->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)
+		  operand = d_left (operand);
+	      }
+	    if (operand->type == DEMANGLE_COMPONENT_BINARY_ARGS)
+	      {
+		/* This indicates a suffix operator.  */
+		operand = d_left (operand);
+		d_print_subexpr (dpi, options, operand);
+		d_print_expr_op (dpi, options, op);
+		return;
+	      }
+	  }
 
-	  d_print_expr_op (dpi, options, d_left (dc));
-	  d_print_comp (dpi, options, d_left (d_right (dc)));
-	  return;
-	}
-      else if (d_left (dc)->type == DEMANGLE_COMPONENT_OPERATOR
-	       && d_left (dc)->u.s_operator.op->len == 1
-	       && d_left (dc)->u.s_operator.op->name[0] == '&'
-	       && d_right (dc)->type == DEMANGLE_COMPONENT_QUAL_NAME)
-	{
-	  /* Keep also already processed variant without the argument list.
-
-	     unary operator ... dc
-	       operator & ... d_left (dc)
-	       qualified name ... d_right (dc)
-		 <names>  */
-
-	  d_print_expr_op (dpi, options, d_left (dc));
-	  d_print_comp (dpi, options, d_right (dc));
-	  return;
-	}
-      else if (d_left (dc)->type != DEMANGLE_COMPONENT_CAST)
-	d_print_expr_op (dpi, options, d_left (dc));
-      else
-	{
-	  d_append_char (dpi, '(');
-	  d_print_cast (dpi, options, d_left (dc));
-	  d_append_char (dpi, ')');
-	}
-      d_print_subexpr (dpi, options, d_right (dc));
+	if (op->type != DEMANGLE_COMPONENT_CAST)
+	  d_print_expr_op (dpi, options, op);
+	else
+	  {
+	    d_append_char (dpi, '(');
+	    d_print_cast (dpi, options, op);
+	    d_append_char (dpi, ')');
+	  }
+	if (code && !strcmp (code, "gs"))
+	  /* Avoid parens after '::'.  */
+	  d_print_comp (dpi, options, operand);
+	else if (code && !strcmp (code, "st"))
+	  /* Always print parens for sizeof (type).  */
+	  {
+	    d_append_char (dpi, '(');
+	    d_print_comp (dpi, options, operand);
+	    d_append_char (dpi, ')');
+	  }
+	else
+	  d_print_subexpr (dpi, options, operand);
+      }
       return;
 
     case DEMANGLE_COMPONENT_BINARY:
@@ -4266,6 +4762,17 @@
 	  return;
 	}
 
+      if (op_is_new_cast (d_left (dc)))
+	{
+	  d_print_expr_op (dpi, options, d_left (dc));
+	  d_append_char (dpi, '<');
+	  d_print_comp (dpi, options, d_left (d_right (dc)));
+	  d_append_string (dpi, ">(");
+	  d_print_comp (dpi, options, d_right (d_right (dc)));
+	  d_append_char (dpi, ')');
+	  return;
+	}
+
       /* We wrap an expression which uses the greater-than operator in
 	 an extra layer of parens so that it does not get confused
 	 with the '>' which ends the template parameters.  */
@@ -4321,11 +4828,33 @@
 	  d_print_error (dpi);
 	  return;
 	}
-      d_print_subexpr (dpi, options, d_left (d_right (dc)));
-      d_print_expr_op (dpi, options, d_left (dc));
-      d_print_subexpr (dpi, options, d_left (d_right (d_right (dc))));
-      d_append_string (dpi, " : ");
-      d_print_subexpr (dpi, options, d_right (d_right (d_right (dc))));
+      {
+	struct demangle_component *op = d_left (dc);
+	struct demangle_component *first = d_left (d_right (dc));
+	struct demangle_component *second = d_left (d_right (d_right (dc)));
+	struct demangle_component *third = d_right (d_right (d_right (dc)));
+
+	if (!strcmp (op->u.s_operator.op->code, "qu"))
+	  {
+	    d_print_subexpr (dpi, options, first);
+	    d_print_expr_op (dpi, options, op);
+	    d_print_subexpr (dpi, options, second);
+	    d_append_string (dpi, " : ");
+	    d_print_subexpr (dpi, options, third);
+	  }
+	else
+	  {
+	    d_append_string (dpi, "new ");
+	    if (d_left (first) != NULL)
+	      {
+		d_print_subexpr (dpi, options, first);
+		d_append_char (dpi, ' ');
+	      }
+	    d_print_comp (dpi, options, second);
+	    if (third)
+	      d_print_subexpr (dpi, options, third);
+	  }
+      }
       return;
 
     case DEMANGLE_COMPONENT_TRINARY_ARG1:
@@ -4588,7 +5117,10 @@
       || (! suffix
 	  && (mods->mod->type == DEMANGLE_COMPONENT_RESTRICT_THIS
 	      || mods->mod->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-	      || mods->mod->type == DEMANGLE_COMPONENT_CONST_THIS)))
+	      || mods->mod->type == DEMANGLE_COMPONENT_CONST_THIS
+	      || mods->mod->type == DEMANGLE_COMPONENT_REFERENCE_THIS
+	      || (mods->mod->type
+		  == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS))))
     {
       d_print_mod_list (dpi, options, mods->next, suffix);
       return;
@@ -4643,7 +5175,9 @@
 
       while (dc->type == DEMANGLE_COMPONENT_RESTRICT_THIS
 	     || dc->type == DEMANGLE_COMPONENT_VOLATILE_THIS
-	     || dc->type == DEMANGLE_COMPONENT_CONST_THIS)
+	     || dc->type == DEMANGLE_COMPONENT_CONST_THIS
+	     || dc->type == DEMANGLE_COMPONENT_REFERENCE_THIS
+	     || dc->type == DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS)
 	dc = d_left (dc);
 
       d_print_comp (dpi, options, dc);
@@ -4688,9 +5222,14 @@
       if ((options & DMGL_JAVA) == 0)
 	d_append_char (dpi, '*');
       return;
+    case DEMANGLE_COMPONENT_REFERENCE_THIS:
+      /* For the ref-qualifier, put a space before the &.  */
+      d_append_char (dpi, ' ');
     case DEMANGLE_COMPONENT_REFERENCE:
       d_append_char (dpi, '&');
       return;
+    case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
+      d_append_char (dpi, ' ');
     case DEMANGLE_COMPONENT_RVALUE_REFERENCE:
       d_append_string (dpi, "&&");
       return;
@@ -4762,6 +5301,8 @@
 	case DEMANGLE_COMPONENT_RESTRICT_THIS:
 	case DEMANGLE_COMPONENT_VOLATILE_THIS:
 	case DEMANGLE_COMPONENT_CONST_THIS:
+	case DEMANGLE_COMPONENT_REFERENCE_THIS:
+	case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
 	  break;
 	default:
 	  break;
@@ -4876,28 +5417,32 @@
 d_print_cast (struct d_print_info *dpi, int options,
               const struct demangle_component *dc)
 {
-  if (d_left (dc)->type != DEMANGLE_COMPONENT_TEMPLATE)
-    d_print_comp (dpi, options, d_left (dc));
-  else
+  struct d_print_template dpt;
+
+  /* For a cast operator, we need the template parameters from
+     the enclosing template in scope for processing the type.  */
+  if (dpi->current_template != NULL)
     {
-      struct d_print_mod *hold_dpm;
-      struct d_print_template dpt;
-
-      /* It appears that for a templated cast operator, we need to put
-	 the template parameters in scope for the operator name, but
-	 not for the parameters.  The effect is that we need to handle
-	 the template printing here.  */
-
-      hold_dpm = dpi->modifiers;
-      dpi->modifiers = NULL;
-
       dpt.next = dpi->templates;
       dpi->templates = &dpt;
-      dpt.template_decl = d_left (dc);
+      dpt.template_decl = dpi->current_template;
+    }
 
+  if (d_left (dc)->type != DEMANGLE_COMPONENT_TEMPLATE)
+    {
+      d_print_comp (dpi, options, d_left (dc));
+      if (dpi->current_template != NULL)
+	dpi->templates = dpt.next;
+    }
+  else
+    {
       d_print_comp (dpi, options, d_left (d_left (dc)));
 
-      dpi->templates = dpt.next;
+      /* For a templated cast operator, we need to remove the template
+	 parameters from scope after printing the operator name,
+	 so we need to handle the template printing here.  */
+      if (dpi->current_template != NULL)
+	dpi->templates = dpt.next;
 
       if (d_last_char (dpi) == '<')
 	d_append_char (dpi, ' ');
@@ -4908,8 +5453,6 @@
       if (d_last_char (dpi) == '>')
 	d_append_char (dpi, ' ');
       d_append_char (dpi, '>');
-
-      dpi->modifiers = hold_dpm;
     }
 }
 
@@ -4942,6 +5485,8 @@
   di->last_name = NULL;
 
   di->expansion = 0;
+  di->is_expression = 0;
+  di->is_conversion = 0;
 }
 
 /* Internal implementation for the demangler.  If MANGLED is a g++ v3 ABI
@@ -5282,14 +5827,17 @@
       {
 	switch (dc->type)
 	  {
+	    /* These cannot appear on a constructor or destructor.  */
+	  case DEMANGLE_COMPONENT_RESTRICT_THIS:
+	  case DEMANGLE_COMPONENT_VOLATILE_THIS:
+	  case DEMANGLE_COMPONENT_CONST_THIS:
+	  case DEMANGLE_COMPONENT_REFERENCE_THIS:
+	  case DEMANGLE_COMPONENT_RVALUE_REFERENCE_THIS:
 	  default:
 	    dc = NULL;
 	    break;
 	  case DEMANGLE_COMPONENT_TYPED_NAME:
 	  case DEMANGLE_COMPONENT_TEMPLATE:
-	  case DEMANGLE_COMPONENT_RESTRICT_THIS:
-	  case DEMANGLE_COMPONENT_VOLATILE_THIS:
-	  case DEMANGLE_COMPONENT_CONST_THIS:
 	    dc = d_left (dc);
 	    break;
 	  case DEMANGLE_COMPONENT_QUAL_NAME:
diff --git a/libiberty/cp-demangle.h b/libiberty/cp-demangle.h
index ae635be..6fce025 100644
--- a/libiberty/cp-demangle.h
+++ b/libiberty/cp-demangle.h
@@ -122,6 +122,11 @@
      mangled name to the demangled name, such as standard
      substitutions and builtin types.  */
   int expansion;
+  /* Non-zero if we are parsing an expression.  */
+  int is_expression;
+  /* Non-zero if we are parsing the type operand of a conversion
+     operator, but not when in an expression.  */
+  int is_conversion;
 };
 
 /* To avoid running past the ending '\0', don't:
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected
index 64ccb92..c56f2a5 100644
--- a/libiberty/testsuite/demangle-expected
+++ b/libiberty/testsuite/demangle-expected
@@ -3935,7 +3935,7 @@
 decltype (((long)(5))+(q(6))) t<long>()
 # test for expansion of function parameter pack
 --format=gnu-v3
-_Z1gIIidEEDTclL_Z1fEspplfp_Li1EEEDpT_
+_Z1gIJidEEDTclL_Z1fEspplfp_Li1EEEDpT_
 decltype (f(({parm#1}+(1))...)) g<int, double>(int, double)
 # lambda tests
 --format=gnu-v3
@@ -3951,6 +3951,9 @@
 _ZNK1SIiE1xMUlvE1_clEv
 S<int>::x::{lambda()#3}::operator()() const
 --format=gnu-v3
+_ZN8functionC1IZN1CIiE4testES_Ed_UliE_EET_
+function::function<C<int>::test(function)::{default arg#1}::{lambda(int)#1}>(C<int>::test(function)::{default arg#1}::{lambda(int)#1})
+--format=gnu-v3
 _Z1fN1SUt_E
 f(S::{unnamed type#1})
 --format=gnu-v3
@@ -4018,6 +4021,75 @@
 --format=gnu-v3
 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_
 _ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_
+# A pack expansion is substitutable.
+--format=gnu-v3
+_Z1fIJiEiEv1AIJDpT_EET0_S4_
+void f<int, int>(A<int>, int, int)
+# So is decltype.
+--format=gnu-v3
+_Z1fIiiEDTcvT__EET0_S2_
+decltype ((int)()) f<int, int>(int, int)
+# And vector.
+--format=gnu-v3
+_Z1fDv4_iS_
+f(int __vector(4), int __vector(4))
+--format=gnu-v3
+_Z2f1Ii1AEDTdsfp_fp0_ET0_MS2_T_
+decltype ({parm#1}.*{parm#2}) f1<int, A>(A, int A::*)
+--format=gnu-v3
+_Z2f2IiEDTquL_Z1bEfp_trET_
+decltype (b?{parm#1} : (throw)) f2<int>(int)
+--format=gnu-v3
+_Z6check1IiEvP6helperIXsznw_T_EEE
+void check1<int>(helper<sizeof (new int)>*)
+--format=gnu-v3
+_Z6check2IiEvP6helperIXszgsnw_T_piEEE
+void check2<int>(helper<sizeof (::new int())>*)
+--format=gnu-v3
+_Z6check3IiEvP6helperIXsznwadL_Z1iE_T_piLi1EEEE
+void check3<int>(helper<sizeof (new (&i) int(1))>*)
+--format=gnu-v3
+_Z6check4IiEvP6helperIXszna_A1_T_EEE
+void check4<int>(helper<sizeof (new int [1])>*)
+--format=gnu-v3
+_Z6check5IiEvP6helperIXszna_A1_T_piEEE
+void check5<int>(helper<sizeof (new int [1]())>*)
+--format=gnu-v3
+_Z1fIiEDTcmgsdlfp_psfp_EPT_
+decltype ((::delete {parm#1}),(+{parm#1})) f<int>(int*)
+--format=gnu-v3
+_Z1fIiEDTcmdafp_psfp_EPT_
+decltype ((delete[] {parm#1}),(+{parm#1})) f<int>(int*)
+--format=gnu-v3
+_ZN1AdlEPv
+A::operator delete(void*)
+--format=gnu-v3
+_Z2f1IiEDTppfp_ET_
+decltype ({parm#1}++) f1<int>(int)
+--format=gnu-v3
+_Z2f1IiEDTpp_fp_ET_
+decltype (++{parm#1}) f1<int>(int)
+--format=gnu-v3
+_Z2f1IiEDTcl1gfp_ilEEET_
+decltype (g({parm#1}, {})) f1<int>(int)
+--format=gnu-v3
+_Z2f1IiEDTnw_T_ilEES0_
+decltype (new int{}) f1<int>(int)
+--format=gnu-v3
+_Zli2_wPKc
+operator"" _w(char const*)
+--format=gnu-v3
+_Z1fIiEDTnw_Dapifp_EET_
+decltype (new auto({parm#1})) f<int>(int)
+--format=gnu-v3
+_Z1fIiERDaRKT_S1_
+auto& f<int>(int const&, int)
+--format=gnu-v3
+_Z1gILi1EEvR1AIXT_EER1BIXscbT_EE
+void g<1>(A<1>&, B<static_cast<bool>(1)>&)
+--format=gnu-v3
+_ZNKSt7complexIiE4realB5cxx11Ev
+std::complex<int>::real[abi:cxx11]() const
 #
 # Ada (GNAT) tests.
 #
@@ -4198,3 +4270,47 @@
 _Z3fooi._omp_cpyfn.6
 foo(int) [clone ._omp_cpyfn.6]
 foo
+#
+--format=gnu-v3 --no-params
+_Z1fIKFvvES0_Evv
+void f<void () const, void ()>()
+f<void () const, void ()>
+#
+--format=gnu-v3
+_ZN4modc6parser8sequenceINS_9astParser13LocatedParserINS0_9ParserRefINS2_UlRNS2_16TokenParserInputEE_EEEEEINS0_14OptionalParserINS2_18ListParserTemplateILNS_6tokens5Token4TypeE4EXadL_ZNSD_Ut_13parenthesizedEEEE6ParserINS4_INS0_6ParserIS5_NS_3ast10ExpressionEEEEEEEEENSA_INS4_INS2_22OneOfKeywordsToTParserINSJ_5StyleEEEEEEENS0_14SequenceParserIS5_INS0_18ExactElementParserIS5_EENSA_ISM_EEEEENS0_14RepeatedParserINS4_INS0_15TransformParserINSU_IS5_INS4_INSP_INSJ_10Annotation12RelationshipEEEEESX_EEENS2_UlNS2_3LocES12_ONS_5MaybeISK_EEE19_EEEEELb0EEEEEENSU_INS0_17ExtractParserTypeIT_E9InputTypeEINS0_8MaybeRefIS1F_E4TypeEDpNS1I_IT0_E4TypeEEEEOS1F_DpOS1L_
+modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><modc::parser::ExtractParserType<modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> > >::InputType, modc::parser::MaybeRef<modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}>::Type, modc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > ><modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false><modc::parser::OptionalParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > > >::Type, modc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > ><modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false><modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> ><modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> > > >::Type, modc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > ><modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false><modc::parser::SequenceParser<modc::astParser::TokenParserInput<modc::parser::ExactElementParser<modc::astParser::TokenParserInput>, modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> ><modc::ast::Expression> > > >::Type, modc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > ><modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false><modc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > ><modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false> >::Type> modc::parser::sequence<modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> >, modc::parser::OptionalParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > > >, modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> ><modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> > >, modc::parser::SequenceParser<modc::astParser::TokenParserInput<modc::parser::ExactElementParser<modc::astParser::TokenParserInput>, modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> ><modc::ast::Expression> > >, modc::parser::RepeatedParser<modc::parser::ParserRef<modc::parser::TransformParser<modc::parser::ParserRef<modc::astParser::OneOfKeywordsToTParser<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Style> ><modc::astParser::TokenParserInput<modc::parser::ParserRef<modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser<modc::parser::ParserRef<modc::parser::Parser<modc::astParser::TokenParserInput, modc::ast::Expression> > ><modc::astParser::ListParserTemplate<(modc::tokens::Token::Type)4, &modc::tokens::{unnamed type#1}::parenthesized>::Parser::Annotation::Relationship> >, modc::parser::ExactElementParser> >, modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}> >, false> >(modc::astParser::{lambda(modc::astParser::Loc, modc::parser::RepeatedParser, modc::Maybe<modc::parser::Parser>&&)#21}&&, (modc::parser::ExtractParserType<modc::astParser::LocatedParser<modc::parser::ParserRef<modc::astParser::{lambda(modc::astParser::TokenParserInput&)#1}> > >&&)...)
+--format=gnu-v3
+_ZNKR1A1hEv
+A::h() const &
+--format=gnu-v3
+_Z1lM1AKFvvRE
+l(void (A::*)() const &)
+--format=gnu-v3
+_Z1mIFvvOEEvM1AT_
+void m<void () &&>(void (A::*)() &&)
+--format=gnu-v3
+_Z1nIM1AKFvvREEvT_
+void n<void (A::*)() const &>(void (A::*)() const &)
+--format=gnu-v3
+_ZL1fIiEvv
+void f<int>()
+#
+--format=gnu-v3 --no-params
+_ZNK7strings8internal8SplitterINS_9delimiter5AnyOfENS_9SkipEmptyEEcvT_ISt6vectorI12basic_stringIcSt11char_traitsIcESaIcEESaISD_EEvEEv
+strings::internal::Splitter<strings::delimiter::AnyOf, strings::SkipEmpty>::operator std::vector<basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<basic_string<char, std::char_traits<char>, std::allocator<char> > > ><std::vector<basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<basic_string<char, std::char_traits<char>, std::allocator<char> > > >, void>() const
+strings::internal::Splitter<strings::delimiter::AnyOf, strings::SkipEmpty>::operator std::vector<basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<basic_string<char, std::char_traits<char>, std::allocator<char> > > ><std::vector<basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<basic_string<char, std::char_traits<char>, std::allocator<char> > > >, void>
+#
+--format=gnu-v3 --no-params
+_ZN1AcvT_I1CEEv
+A::operator C<C>()
+A::operator C<C>
+#
+--format=gnu-v3 --no-params
+_ZN1AcvPT_I1CEEv
+A::operator C*<C>()
+A::operator C*<C>
+#
+--format=gnu-v3 --no-params
+_ZN1AcvT_IiEI1CEEv
+A::operator C<int><C>()
+A::operator C<int><C>
diff --git a/opcodes/.gitignore b/opcodes/.gitignore
new file mode 100644
index 0000000..94ece5d
--- /dev/null
+++ b/opcodes/.gitignore
@@ -0,0 +1,2 @@
+/s390-mkopc
+/s390-opc.tab