Make gold testsuite work with CC and CXX specifying -B

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Make gold testsuite work with CC and CXX specifying -B

Alan Modra-3
This is a revised version of the patch I posted at
https://sourceware.org/ml/binutils/2016-10/msg00039.html
a patch that didn't receive any comment or review, perhaps due to
using GNU make features.  This patch doesn't use any modern make
features.

The patch allows the gold testsuite to pass when using something like
the following configure line, allowing me to test build binutils with
some random gcc.  This works for the rest of the binutils testsuite.
At least, it does if you don't configure your gcc with any of the
options that force a particular path to as or ld.

gccdir="/home/alan/build/gcc/prev-"
gccsrc="/home/alan/src/gcc.git"
gcctarg="x86_64-linux"
CC="${gccdir}gcc/xgcc -B${gccdir}gcc/" \
CXX="${gccdir}gcc/xg++ -B${gccdir}gcc/ -I${gccdir}$gcctarg/libstdc++-v3/include -I${gccdir}$gcctarg/libstdc++-v3/include/$gcctarg -I${gccsrc}/libstdc++-v3/libsupc++ -L${gccdir}$gcctarg/libstdc++-v3/src/.libs/" \
~/src/binutils-gdb/configure ...

gold's -Bgcctestdir/ option must come before the -B supplied by $CC
or $CXX, in order to pick up the linker we want to test.  Also when
using a not-yet-installed gcc, it is necessary to provide a collect-ld
in gcctestdir/ as otherwise a collect-ld script in -B${gccdir}gcc/
will be used and the wrong linker tested.

Besides this, the patch fixes some bugs: The $COMPILE -D_FORTIFY_SOURCE
edit was wrong (but worked for usual values), and the $CXXLINK_S edit
unnecessarily but harmlessly used extra backslash quoting.  See
posix shell documentation regarding quoting, or
www.gnu.org/software/bash/manual/bashref.html#Command-Substitution

Also, -Bgcctestdir/ in one place makes it less likely a new test will
be added that accidentally lacks the option.

OK to install?

        * Makefile.am (gcctestdir1/ld): Use $@ and absolute paths.
        (gcctestdir1/collect-ld): New.
        (ld1_DEPENDENCIES): Add gcctestdir1/collect-ld.
        (ld1_LDFLAGS): Remove -Bgcctestdir1/.
        (ld1_LINK): Define.
        (gcctestdir2/ld, gcctestdir2/collect-ld, ld2_DEPENDENCIES,
        ld2_LDFLAGS, ld2_LINK): Similarly.
        (ld1_r_DEPENDENCIES, ld1_r_LDFLAGS, ld1_r_LINK): Similarly.
        (gcctestdir2-r/ld, gcctestdir2-r/collect-ld, ld2_r_DEPENDENCIES,
        ld2_r_LDFLAGS, ld2_r_LINK): Similarly.
        (gcctestdir3/ld, gcctestdir3/collect-ld, ld3_DEPENDENCIES,
        ld3_LDFLAGS, ld3_LINK): Similarly.
        (gcctestdir4/ld, gcctestdir4/collect-ld, ld4_DEPENDENCIES,
        ld4_LDFLAGS, ld4_LINK): Similarly.
        * Makefile.in: Regenerate.
        * testsuite/Makefile.am (editcc): Define sed command to put
        our -B option first.  Remove other occurrences of
        -Bgcctestdir/ throughout file.
        (editcc1): Define for -D_FORTIFY_SOURCE stripping.
        (editcc2): Define for -static-libgcc/libstdc++ stripping.
        (LINK1, CXXLINK1): Don't use CCLD or CXXLD.
        (CCLD, CXXLD): Define using editcc.
        (COMPILE, LINK, CXXCOMPILE, CXXLINK): Define using editcc1.
        (CXXLINK_S): Define using editcc2.
        (gcctestdir/collect-ld): New rule, add as a dependency of..
        (gcctestdir/ld): ..this.  Use $@ and abs_top_buildir.
        (gcctestdir/as): Use $@.
        * testsuite/Makefile.in: Regenerate.
        * testsuite/incremental_test.sh (actual): Match collect-ld too.

diff --git a/gold/Makefile.am b/gold/Makefile.am
index fd0a359185..7dd3223e6f 100644
--- a/gold/Makefile.am
+++ b/gold/Makefile.am
@@ -260,25 +260,27 @@ po/POTFILES.in: @MAINT@ Makefile
 if GCC
 if NATIVE_LINKER
 
-gcctestdir1/ld: ld-new
+gcctestdir1/ld gcctestdir1/collect-ld: ld-new
  test -d gcctestdir1 || mkdir -p gcctestdir1
- rm -f gcctestdir1/ld
- (cd gcctestdir1 && $(LN_S) ../ld-new ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
 
 ld1_SOURCES = $(sources_var)
-ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld
+ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
 ld1_LDADD = $(ldadd_var)
-ld1_LDFLAGS = -Bgcctestdir1/
+ld1_LINK = `echo $(CXXLD) | sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir1\/\2/'`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) $(LDFLAGS) -o $@
 
-gcctestdir2/ld: ld1
+gcctestdir2/ld gcctestdir2/collect-ld: ld1
  test -d gcctestdir2 || mkdir -p gcctestdir2
- rm -f gcctestdir2/ld
- (cd gcctestdir2 && $(LN_S) ../ld1 ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld1 $@
 
 ld2_SOURCES = $(sources_var)
-ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld
+ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld gcctestdir2/collect-ld
 ld2_LDADD = $(ldadd_var)
-ld2_LDFLAGS = -Bgcctestdir2/
+ld2_LINK = `echo $(CXXLD) | sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2\/\2/'`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld2_LDFLAGS) $(LDFLAGS) -o $@
 
 bootstrap-test: ld2
  rm -f $@
@@ -290,22 +292,24 @@ libgold-1-r.o: gcctestdir1/ld libgold.a
  gcctestdir1/ld -o $@ -r --whole-archive libgold.a
 
 ld1_r_SOURCES = $(sources_var)
-ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld
+ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
 ld1_r_LDADD = libgold-1-r.o $(ldadd_var)
-ld1_r_LDFLAGS = -Bgcctestdir1/
+ld1_r_LINK = `echo $(CXXLD) | sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir1\/\2/'`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
 
-gcctestdir2-r/ld: ld1-r
+gcctestdir2-r/ld gcctestdir2-r/collect-ld: ld1-r
  test -d gcctestdir2-r || mkdir -p gcctestdir2-r
- rm -f gcctestdir2-r/ld
- (cd gcctestdir2-r && $(LN_S) ../ld1-r ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld1-r $@
 
 libgold-2-r.o: gcctestdir2-r/ld libgold.a
  gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a
 
 ld2_r_SOURCES = $(sources_var)
-ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld
+ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld gcctestdir2-r/collect-ld
 ld2_r_LDADD = libgold-2-r.o $(ldadd_var)
-ld2_r_LDFLAGS = -Bgcctestdir2-r/
+ld2_r_LINK = `echo $(CXXLD) | sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2-r\/\2/'`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
 
 bootstrap-test-r: ld2-r
  rm -f $@
@@ -327,30 +331,32 @@ check_PROGRAMS += ld4
 TESTS += bootstrap-test-treehash-chunksize
 MOSTLYCLEANFILES += bootstrap-test-treehash-chunksize
 
-gcctestdir3/ld: ld-new
+gcctestdir3/ld gcctestdir3/collect-ld: ld-new
  test -d gcctestdir3 || mkdir -p gcctestdir3
- rm -f gcctestdir3/ld
- (cd gcctestdir3 && $(LN_S) ../ld-new ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
 
 ld3_SOURCES = $(sources_var)
-ld3_DEPENDENCIES = $(deps_var) gcctestdir3/ld
+ld3_DEPENDENCIES = $(deps_var) gcctestdir3/ld gcctestdir3/collect-ld
 ld3_LDADD = $(ldadd_var)
-ld3_LDFLAGS = -Bgcctestdir3/
+ld3_LINK = `echo $(CXXLD) | sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir3\/\2/'`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld3_LDFLAGS) $(LDFLAGS) -o $@
 
-gcctestdir4/ld: ld-new
+gcctestdir4/ld gcctestdir4/collect-ld: ld-new
  test -d gcctestdir4 || mkdir -p gcctestdir4
- rm -f gcctestdir4/ld
- (cd gcctestdir4 && $(LN_S) ../ld-new ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
 
 ld4_SOURCES = $(sources_var)
-ld4_DEPENDENCIES = $(deps_var) gcctestdir4/ld
+ld4_DEPENDENCIES = $(deps_var) gcctestdir4/ld gcctestdir4/collect-ld
 ld4_LDADD = $(ldadd_var)
-ld4_LDFLAGS = -Bgcctestdir4/
+ld4_LINK = `echo $(CXXLD) | sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir4\/\2/'`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld4_LDFLAGS) $(LDFLAGS) -o $@
 
-ld1_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
-ld2_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
-ld3_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
-ld4_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12346 -Wl,--build-id-min-file-size-for-treehash=0
+ld1_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+ld2_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+ld3_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+ld4_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12346 -Wl,--build-id-min-file-size-for-treehash=0
 
 if THREADS
 
diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
index f4c1f4686f..c7dc6eee21 100644
--- a/gold/testsuite/Makefile.am
+++ b/gold/testsuite/Makefile.am
@@ -32,29 +32,37 @@ endif
 
 # COMPILE1, LINK1, CXXCOMPILE1, CXXLINK1 are renamed from COMPILE, LINK,
 # CXXCOMPILE and CXXLINK generated by automake 1.11.1.  FIXME: they should
-# be updated if they are different from automake used by gold.
+# be updated if they differ in newer automake used by gold, but note the
+# addition of OPT_NO_PLUGINS and use of CC and CXX in LINK1 and CXXLINK1.
 COMPILE1 = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
  $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LINK1 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(OPT_NO_PLUGINS) \
+LINK1 = $(CC) $(AM_CFLAGS) $(CFLAGS) $(OPT_NO_PLUGINS) \
  $(AM_LDFLAGS) $(LDFLAGS) -o $@
 CXXCOMPILE1 = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
  $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLINK1 = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(OPT_NO_PLUGINS) \
+CXXLINK1 = $(CXX) $(AM_CXXFLAGS) $(CXXFLAGS) $(OPT_NO_PLUGINS) \
  $(AM_LDFLAGS) $(LDFLAGS) -o $@
 
+# Put our -B option before any other -B that might be in $CC or $CXX
+editcc = sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir\/\2/'
+
 # Strip out -Wp,-D_FORTIFY_SOURCE=, which is irrelevant for the gold
-# testsuite and incompatible with -O0 used in gold tests, from
-# COMPILE, LINK, CXXCOMPILE and CXXLINK.
-COMPILE = `echo $(COMPILE1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9[0-9]]*//'`
-LINK = `echo $(LINK1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'`
-CXXCOMPILE = `echo $(CXXCOMPILE1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'`
-CXXLINK = `echo $(CXXLINK1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'`
+# testsuite and incompatible with -O0 used in gold tests.
+editcc1 = $(editcc) -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'
+
+CCLD = `echo $(CC) | $(editcc)`
+CXXLD = `echo $(CXX) | $(editcc)`
+COMPILE = `echo $(COMPILE1) | $(editcc1)`
+LINK = `echo $(LINK1) | $(editcc1)`
+CXXCOMPILE = `echo $(CXXCOMPILE1) | $(editcc1)`
+CXXLINK = `echo $(CXXLINK1) | $(editcc1)`
 
 # Strip out -static-libgcc and -static-libstdc++ options, for tests
 # that must have these libraries linked dynamically.  The -shared-libgcc
 # option does not work correctly, and there is no -shared-libstdc++ option.
 # (See GCC PR 55781 and PR 55782.)
-CXXLINK_S = `echo $(CXXLINK1) | sed -e 's/-static-lib\\(gcc\\|stdc++\\)//g'`
+editcc2 = $(editcc1) -e 's/-static-lib\(gcc\|stdc++\) *//g'
+CXXLINK_S = `echo $(CXXLINK1) | $(editcc2)`
 
 TEST_READELF = $(top_builddir)/../binutils/readelf
 TEST_OBJDUMP = $(top_builddir)/../binutils/objdump
@@ -114,16 +122,22 @@ if GCC
 
 # Infrastucture needed for the unittests: a directory where the linker
 # is named 'ld'.  This is because the -B flag appends 'ld' to its arg.
-gcctestdir/ld: ../ld-new
+gcctestdir/ld: ../ld-new gcctestdir/collect-ld
  test -d gcctestdir || mkdir -p gcctestdir
- rm -f gcctestdir/ld
- (cd gcctestdir && $(LN_S) ../../ld-new ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
+
+# Needed when using uninstalled compiler
+gcctestdir/collect-ld: ../ld-new
+ test -d gcctestdir || mkdir -p gcctestdir
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
 
 # Some tests require the latest features of an in-tree assembler.
 gcctestdir/as: $(TEST_AS)
  test -d gcctestdir || mkdir -p gcctestdir
- rm -f gcctestdir/as
- (cd gcctestdir && $(LN_S) $(abs_top_builddir)/../gas/as-new as)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/../gas/as-new $@
 
 endif GCC
 
@@ -188,7 +202,7 @@ incremental_test_1.o: incremental_test_1.c
 incremental_test_2.o: incremental_test_2.c
  $(COMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 incremental_test: incremental_test_1.o incremental_test_2.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,--incremental-full -Wl,-z,norelro,-no-pie incremental_test_1.o incremental_test_2.o -Wl,-debug 2> incremental_test.cmdline
+ $(LINK) -Wl,--incremental-full -Wl,-z,norelro,-no-pie incremental_test_1.o incremental_test_2.o -Wl,-debug 2> incremental_test.cmdline
 incremental_test.stdout: incremental_test ../incremental-dump
  ../incremental-dump incremental_test > $@
 
@@ -200,7 +214,7 @@ gc_comdat_test_1.o: gc_comdat_test_1.cc
 gc_comdat_test_2.o: gc_comdat_test_2.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 gc_comdat_test: gc_comdat_test_1.o gc_comdat_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_comdat_test_1.o gc_comdat_test_2.o
+ $(CXXLINK) -Wl,--gc-sections gc_comdat_test_1.o gc_comdat_test_2.o
 gc_comdat_test.stdout: gc_comdat_test
  $(TEST_NM) -C gc_comdat_test > gc_comdat_test.stdout
 
@@ -210,7 +224,7 @@ MOSTLYCLEANFILES += gc_tls_test
 gc_tls_test.o: gc_tls_test.cc
  $(CXXCOMPILE) -O0 -c -g -o $@ $<
 gc_tls_test:gc_tls_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_tls_test.o
+ $(CXXLINK) -Wl,--gc-sections gc_tls_test.o
 gc_tls_test.stdout: gc_tls_test
  $(TEST_NM) -C gc_tls_test > gc_tls_test.stdout
 
@@ -220,7 +234,7 @@ MOSTLYCLEANFILES += gc_orphan_section_test
 gc_orphan_section_test.o: gc_orphan_section_test.cc
  $(CXXCOMPILE) -O0 -c -g -o $@ $<
 gc_orphan_section_test:gc_orphan_section_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_orphan_section_test.o
+ $(CXXLINK) -Wl,--gc-sections gc_orphan_section_test.o
 gc_orphan_section_test.stdout: gc_orphan_section_test
  $(TEST_NM) gc_orphan_section_test > gc_orphan_section_test.stdout
 
@@ -230,7 +244,7 @@ MOSTLYCLEANFILES += pr14265
 pr14265.o: pr14265.c
  $(COMPILE) -O0 -c -o $@ $<
 pr14265: pr14265.o gcctestdir/ld $(srcdir)/pr14265.t
- $(LINK) -Bgcctestdir/ -Wl,--gc-sections -Wl,-T,$(srcdir)/pr14265.t -o $@ $<
+ $(LINK) -Wl,--gc-sections -Wl,-T,$(srcdir)/pr14265.t -o $@ $<
 pr14265.stdout: pr14265
  $(TEST_NM) --format=bsd --numeric-sort $< > $@
 
@@ -240,7 +254,7 @@ MOSTLYCLEANFILES += pr20717
 pr20717.o: pr20717.c
  $(COMPILE) -O0 -ffunction-sections -c -o $@ $<
 pr20717: pr20717.o gcctestdir/ld $(srcdir)/pr20717.t
- $(LINK) -Bgcctestdir/ -Wl,--gc-sections -Wl,-T,$(srcdir)/pr20717.t -o $@ $<
+ $(LINK) -Wl,--gc-sections -Wl,-T,$(srcdir)/pr20717.t -o $@ $<
 pr20717.stdout: pr20717
  $(TEST_NM) $< > $@
 
@@ -250,7 +264,7 @@ 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
+ $(LINK) -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 > $@
 
@@ -260,7 +274,7 @@ MOSTLYCLEANFILES += icf_test icf_test.map
 icf_test.o: icf_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 icf_test: icf_test.o gcctestdir/ld
- $(CXXLINK) -o icf_test -Bgcctestdir/ -Wl,--icf=all,-Map,icf_test.map icf_test.o
+ $(CXXLINK) -o icf_test -Wl,--icf=all,-Map,icf_test.map icf_test.o
 icf_test.map: icf_test
  @touch icf_test.map
 
@@ -270,7 +284,7 @@ MOSTLYCLEANFILES += icf_keep_unique_test
 icf_keep_unique_test.o: icf_keep_unique_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 icf_keep_unique_test: icf_keep_unique_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all -Wl,--keep-unique,_Z11unique_funcv icf_keep_unique_test.o
+ $(CXXLINK) -Wl,--icf=all -Wl,--keep-unique,_Z11unique_funcv icf_keep_unique_test.o
 icf_keep_unique_test.stdout: icf_keep_unique_test
  $(TEST_NM) -C $< > $@
 
@@ -280,7 +294,7 @@ MOSTLYCLEANFILES += icf_safe_test icf_safe_test.map
 icf_safe_test.o: icf_safe_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 icf_safe_test: icf_safe_test.o gcctestdir/ld
- $(CXXLINK) -o icf_safe_test -Bgcctestdir/ -Wl,--icf=safe,-Map,icf_safe_test.map icf_safe_test.o
+ $(CXXLINK) -o icf_safe_test -Wl,--icf=safe,-Map,icf_safe_test.map icf_safe_test.o
 icf_safe_test.map: icf_safe_test
  @touch icf_safe_test.map
 icf_safe_test_1.stdout: icf_safe_test
@@ -294,7 +308,7 @@ MOSTLYCLEANFILES += icf_safe_pie_test icf_safe_pie_test.map
 icf_safe_pie_test.o: icf_safe_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIE -g -o $@ $<
 icf_safe_pie_test: icf_safe_pie_test.o gcctestdir/ld
- $(CXXLINK) -o icf_safe_pie_test -Bgcctestdir/ -Wl,--icf=safe,-Map,icf_safe_pie_test.map icf_safe_pie_test.o -pie
+ $(CXXLINK) -o icf_safe_pie_test -Wl,--icf=safe,-Map,icf_safe_pie_test.map icf_safe_pie_test.o -pie
 icf_safe_pie_test.map: icf_safe_pie_test
  @touch icf_safe_pie_test.map
 icf_safe_pie_test_1.stdout: icf_safe_pie_test
@@ -308,7 +322,7 @@ MOSTLYCLEANFILES += icf_safe_so_test icf_safe_so_test.map
 icf_safe_so_test.o: icf_safe_so_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
 icf_safe_so_test: icf_safe_so_test.o gcctestdir/ld
- $(CXXLINK) -o icf_safe_so_test -Bgcctestdir/ -Wl,--icf=safe,-Map,icf_safe_so_test.map icf_safe_so_test.o -fPIC -shared
+ $(CXXLINK) -o icf_safe_so_test -Wl,--icf=safe,-Map,icf_safe_so_test.map icf_safe_so_test.o -fPIC -shared
 icf_safe_so_test.map:
  @touch icf_safe_so_test.map
 icf_safe_so_test_1.stdout: icf_safe_so_test
@@ -320,13 +334,13 @@ check_SCRIPTS += final_layout.sh
 check_DATA += final_layout.stdout
 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 $@ $<
+ $(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_script.lds:
  (echo "SECTIONS { .text : { *(.text*) } .got : { *(.got .toc) } .sbss : { *(.sbss*) } .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
+ $(CXXLINK) -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 --synthetic final_layout > final_layout.stdout
 
@@ -336,9 +350,9 @@ 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
+ $(CXXLINK) text_section_grouping.o
 text_section_no_grouping: text_section_grouping.o gcctestdir/ld
- $(CXXLINK)  -Bgcctestdir/ -Wl,--no-text-reorder text_section_grouping.o
+ $(CXXLINK) -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
@@ -350,7 +364,7 @@ MOSTLYCLEANFILES += section_sorting_name
 section_sorting_name.o: section_sorting_name.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 section_sorting_name: section_sorting_name.o gcctestdir/ld
- $(CXXLINK)  -Bgcctestdir/ -Wl,--sort-section=name section_sorting_name.o
+ $(CXXLINK) -Wl,--sort-section=name section_sorting_name.o
 section_sorting_name.stdout: section_sorting_name
  $(TEST_NM) -n --synthetic section_sorting_name > section_sorting_name.stdout
 
@@ -360,7 +374,7 @@ MOSTLYCLEANFILES += text_unlikely_segment
 text_unlikely_segment.o: text_unlikely_segment.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 text_unlikely_segment: text_unlikely_segment.o gcctestdir/ld
- $(CXXLINK)  -Bgcctestdir/ -Wl,-z,text-unlikely-segment text_unlikely_segment.o
+ $(CXXLINK) -Wl,-z,text-unlikely-segment text_unlikely_segment.o
 text_unlikely_segment_readelf.stdout: text_unlikely_segment
  $(TEST_READELF) -Wl $< >$@
 
@@ -370,7 +384,7 @@ MOSTLYCLEANFILES += keep_text_section_prefix
 keep_text_section_prefix.o: keep_text_section_prefix.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 keep_text_section_prefix: keep_text_section_prefix.o gcctestdir/ld
- $(CXXLINK)  -Bgcctestdir/ -Wl,-z,keep-text-section-prefix keep_text_section_prefix.o
+ $(CXXLINK) -Wl,-z,keep-text-section-prefix keep_text_section_prefix.o
 keep_text_section_prefix_readelf.stdout: keep_text_section_prefix
  $(TEST_READELF) -Wl $< >$@
 keep_text_section_prefix_nm.stdout: keep_text_section_prefix
@@ -381,7 +395,7 @@ MOSTLYCLEANFILES += icf_virtual_function_folding_test icf_virtual_function_foldi
 icf_virtual_function_folding_test.o: icf_virtual_function_folding_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIE -g -o $@ $<
 icf_virtual_function_folding_test: icf_virtual_function_folding_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_virtual_function_folding_test.o -pie
+ $(CXXLINK) -Wl,--icf=all icf_virtual_function_folding_test.o -pie
 
 check_SCRIPTS += icf_preemptible_functions_test.sh
 check_DATA += icf_preemptible_functions_test.stdout
@@ -389,7 +403,7 @@ MOSTLYCLEANFILES += icf_preemptible_functions_test
 icf_preemptible_functions_test.o: icf_preemptible_functions_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
 icf_preemptible_functions_test: icf_preemptible_functions_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_preemptible_functions_test.o -fPIC -shared
+ $(CXXLINK) -Wl,--icf=all icf_preemptible_functions_test.o -fPIC -shared
 icf_preemptible_functions_test.stdout: icf_preemptible_functions_test
  $(TEST_NM) icf_preemptible_functions_test > icf_preemptible_functions_test.stdout
 
@@ -399,7 +413,7 @@ MOSTLYCLEANFILES += icf_string_merge_test
 icf_string_merge_test.o: icf_string_merge_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
 icf_string_merge_test: icf_string_merge_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_string_merge_test.o
+ $(CXXLINK) -Wl,--icf=all icf_string_merge_test.o
 icf_string_merge_test.stdout: icf_string_merge_test
  $(TEST_NM) icf_string_merge_test > icf_string_merge_test.stdout
 
@@ -411,14 +425,13 @@ icf_sht_rel_addend_test_1.o: icf_sht_rel_addend_test_1.cc
 icf_sht_rel_addend_test_2.o: icf_sht_rel_addend_test_2.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
 icf_sht_rel_addend_test: icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o
+ $(CXXLINK) -Wl,--icf=all icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o
 icf_sht_rel_addend_test.stdout: icf_sht_rel_addend_test
  $(TEST_NM) icf_sht_rel_addend_test > icf_sht_rel_addend_test.stdout
 
 check_PROGRAMS += large_symbol_alignment
 large_symbol_alignment_SOURCES = large_symbol_alignment.cc
 large_symbol_alignment_DEPENDENCIES = gcctestdir/ld
-large_symbol_alignment_LDFLAGS = -Bgcctestdir/
 large_symbol_alignment_LDADD =
 
 check_SCRIPTS += merge_string_literals.sh
@@ -429,7 +442,7 @@ merge_string_literals_1.o: merge_string_literals_1.cc
 merge_string_literals_2.o: merge_string_literals_2.cc
  $(CXXCOMPILE) -O2 -c -fPIC -g -o $@ $<
 merge_string_literals: merge_string_literals_1.o merge_string_literals_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ merge_string_literals_1.o merge_string_literals_2.o -O2 -shared -nostdlib
+ $(CXXLINK) merge_string_literals_1.o merge_string_literals_2.o -O2 -shared -nostdlib
 merge_string_literals.stdout: merge_string_literals
  $(TEST_OBJDUMP) -s -j.rodata merge_string_literals > merge_string_literals.stdout
 
@@ -438,15 +451,15 @@ check_PROGRAMS += basic_pic_test
 basic_test.o: basic_test.cc
  $(CXXCOMPILE) -O0 -c -o $@ $<
 basic_test: basic_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ basic_test.o
+ $(CXXLINK) basic_test.o
 
 check_PROGRAMS += eh_test
 eh_test_a.o: eh_test_a.cc
  $(CXXCOMPILE) -O0 -c -o $@ $<
 eh_test_b.o: eh_test_b.cc
  $(CXXCOMPILE) -O0 -c -o $@ $<
-eh_test: eh_test_a.o eh_test_b.o  gcctestdir/ld
- $(CXXLINK_S) -Bgcctestdir/ eh_test_a.o eh_test_b.o
+eh_test: eh_test_a.o eh_test_b.o gcctestdir/ld
+ $(CXXLINK_S) eh_test_a.o eh_test_b.o
 
 check_SCRIPTS += eh_test_2.sh
 check_DATA += eh_test_2.sects
@@ -454,37 +467,36 @@ MOSTLYCLEANFILES += eh_test_2 eh_test_2.sects
 eh_test_r.o: eh_test_a.o eh_test_b.o gcctestdir/ld
  gcctestdir/ld -r -o $@ eh_test_a.o eh_test_b.o
 eh_test_2: eh_test_r.o gcctestdir/ld
- $(CXXLINK_S) -Bgcctestdir/ -Wl,--eh-frame-hdr eh_test_r.o
+ $(CXXLINK_S) -Wl,--eh-frame-hdr eh_test_r.o
 eh_test_2.sects: eh_test_2
  $(TEST_READELF) -SW $< >$@ 2>/dev/null
 
 if HAVE_STATIC
 check_PROGRAMS += basic_static_test
 basic_static_test: basic_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -static basic_test.o
+ $(CXXLINK) -static basic_test.o
 endif
 
 basic_pic_test.o: basic_test.cc
  $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
 basic_pic_test: basic_pic_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ basic_pic_test.o
+ $(CXXLINK) basic_pic_test.o
 
 if HAVE_STATIC
 check_PROGRAMS += basic_static_pic_test
 basic_static_pic_test: basic_pic_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
+ $(CXXLINK) -static basic_pic_test.o
 endif
 
 check_PROGRAMS += basic_pie_test
 basic_pie_test.o: basic_test.cc
  $(CXXCOMPILE) -O0 -c -fpie -o $@ $<
 basic_pie_test: basic_pie_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -pie basic_pie_test.o
+ $(CXXLINK) -pie basic_pie_test.o
 
 check_PROGRAMS += constructor_test
 constructor_test_SOURCES = constructor_test.cc
 constructor_test_DEPENDENCIES = gcctestdir/ld
-constructor_test_LDFLAGS = -Bgcctestdir/
 constructor_test_LDADD =
 
 if HAVE_STATIC
@@ -504,7 +516,6 @@ two_file_test_SOURCES = \
  two_file_test_main.cc \
  two_file_test.h
 two_file_test_DEPENDENCIES = gcctestdir/ld
-two_file_test_LDFLAGS = -Bgcctestdir/
 two_file_test_LDADD =
 
 if HAVE_STATIC
@@ -518,7 +529,6 @@ endif
 two_file_pic_test_SOURCES = two_file_test_main.cc
 two_file_pic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
-two_file_pic_test_LDFLAGS = -Bgcctestdir/
 two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
 
 
@@ -536,50 +546,50 @@ two_file_test_1b_pic.o: two_file_test_1b.cc
 two_file_test_2_pic.o: two_file_test_2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 two_file_shared_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o
+ $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_1b_pic.o
 two_file_shared_2.so: two_file_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2_pic.o
+ $(CXXLINK) -shared two_file_test_2_pic.o
 two_file_shared.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
+ $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
 
 two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
 two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
-two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_1_test_LDFLAGS = -Wl,-R,.
 two_file_shared_1_test_LDADD = two_file_shared_1.so
 
 two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
 two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
-two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_2_test_LDFLAGS = -Wl,-R,.
 two_file_shared_2_test_LDADD = two_file_shared_2.so
 
 two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
 two_file_shared_1_pic_2_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_2.so two_file_test_1_pic.o two_file_test_1b_pic.o
-two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_1_pic_2_test_LDFLAGS = -Wl,-R,.
 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
 
 two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
 two_file_shared_2_pic_1_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1.so two_file_test_2_pic.o
-two_file_shared_2_pic_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_2_pic_1_test_LDFLAGS = -Wl,-R,.
 two_file_shared_2_pic_1_test_LDADD = two_file_test_2_pic.o two_file_shared_1.so
 
 two_file_same_shared_test_SOURCES = two_file_test_main.cc
 two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
-two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_same_shared_test_LDFLAGS = -Wl,-R,.
 two_file_same_shared_test_LDADD = two_file_shared.so
 
 two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
 two_file_separate_shared_12_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
-two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_separate_shared_12_test_LDFLAGS = -Wl,-R,.
 two_file_separate_shared_12_test_LDADD = \
  two_file_shared_1.so two_file_shared_2.so
 
 two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
 two_file_separate_shared_21_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
-two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_separate_shared_21_test_LDFLAGS = -Wl,-R,.
 two_file_separate_shared_21_test_LDADD = \
  two_file_shared_2.so two_file_shared_1.so
 
@@ -587,7 +597,7 @@ check_PROGRAMS += two_file_relocatable_test
 two_file_relocatable_test_SOURCES = two_file_test_main.cc
 two_file_relocatable_test_DEPENDENCIES = \
  gcctestdir/ld two_file_relocatable.o
-two_file_relocatable_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_relocatable_test_LDFLAGS = -Wl,-R,.
 two_file_relocatable_test_LDADD = two_file_relocatable.o
 two_file_relocatable.o: gcctestdir/ld two_file_test_1.o two_file_test_1b.o two_file_test_2.o
  gcctestdir/ld -r -o $@ two_file_test_1.o two_file_test_1b.o two_file_test_2.o
@@ -603,23 +613,23 @@ two_file_test_main_pie.o: two_file_test_main.cc
  $(CXXCOMPILE) -c -fpie -o $@ $<
 two_file_pie_test: two_file_test_1_pie.o two_file_test_1b_pie.o \
  two_file_test_2_pie.o two_file_test_main_pie.o gcctestdir/ld
- $(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
+ $(CXXLINK) -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
 
 check_PROGRAMS += pie_copyrelocs_test
 pie_copyrelocs_test_SOURCES = pie_copyrelocs_test.cc
 pie_copyrelocs_test_DEPENDENCIES = gcctestdir/ld pie_copyrelocs_shared_test.so
 pie_copyrelocs_test_CXXFLAGS = -fno-exceptions -fno-asynchronous-unwind-tables
-pie_copyrelocs_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -pie
+pie_copyrelocs_test_LDFLAGS = -Wl,-R,. -pie
 pie_copyrelocs_test_LDADD = pie_copyrelocs_shared_test.so
 pie_copyrelocs_shared_test.o: pie_copyrelocs_shared_test.cc
  $(CXXCOMPILE) -O2 -fpic -c -o $@ $<
 pie_copyrelocs_shared_test.so: pie_copyrelocs_shared_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared pie_copyrelocs_shared_test.o
+ $(CXXLINK) -shared pie_copyrelocs_shared_test.o
 
 check_PROGRAMS += weak_unresolved_symbols_test
 weak_unresolved_symbols_test_SOURCES = weak_unresolved_symbols_test.cc
 weak_unresolved_symbols_test_CXXFLAGS = -fPIE
-weak_unresolved_symbols_test_LDFLAGS = -Bgcctestdir/ -pie -Wl,--weak-unresolved-symbols
+weak_unresolved_symbols_test_LDFLAGS = -pie -Wl,--weak-unresolved-symbols
 
 check_SCRIPTS += two_file_shared.sh
 check_DATA += two_file_shared.dbg
@@ -639,64 +649,64 @@ check_PROGRAMS += two_file_separate_shared_21_nonpic_test
 check_PROGRAMS += two_file_mixed_shared_test
 check_PROGRAMS += two_file_mixed_2_shared_test
 two_file_shared_1_nonpic.so: two_file_test_1.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o -Wl,-z,notext
+ $(CXXLINK) -shared two_file_test_1.o two_file_test_1b.o -Wl,-z,notext
 two_file_shared_2_nonpic.so: two_file_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2.o
+ $(CXXLINK) -shared two_file_test_2.o
 two_file_shared_nonpic.so: two_file_test_1.o two_file_test_1b.o two_file_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o -Wl,-z,notext
+ $(CXXLINK) -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o -Wl,-z,notext
 two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o -Wl,-z,notext
+ $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o -Wl,-z,notext
 two_file_shared_mixed_1.so: two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so -Wl,-z,notext
+ $(CXXLINK) -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so -Wl,-z,notext
 
 two_file_shared_1_nonpic_test_SOURCES = \
  two_file_test_2.cc two_file_test_main.cc
 two_file_shared_1_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1_nonpic.so
-two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_1_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
 
 two_file_shared_2_nonpic_test_SOURCES = \
  two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
 two_file_shared_2_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_2_nonpic.so
-two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_2_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
 
 two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
 two_file_same_shared_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_nonpic.so
-two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_same_shared_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
 
 two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
 two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
-two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_separate_shared_12_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_separate_shared_12_nonpic_test_LDADD = \
  two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
 
 two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
 two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
-two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_separate_shared_21_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_separate_shared_21_nonpic_test_LDADD = \
  two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
 
 two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
 two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
-two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_mixed_shared_test_LDFLAGS = -Wl,-R,.
 two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
 
 two_file_mixed_2_shared_test_SOURCES = two_file_test_main.cc
 two_file_mixed_2_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed_1.so two_file_shared_2.so
-two_file_mixed_2_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_mixed_2_shared_test_LDFLAGS = -Wl,-R,.
 two_file_mixed_2_shared_test_LDADD = two_file_shared_mixed_1.so two_file_shared_2.so
 
 check_PROGRAMS += two_file_mixed_pie_test
 two_file_mixed_pie_test: two_file_test_1.o two_file_test_1b_pie.o \
  two_file_test_main_pie.o two_file_shared_2.so gcctestdir/ld
- $(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
+ $(CXXLINK) -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
 
 endif FN_PTRS_IN_SO_WITHOUT_PIC
 
@@ -708,7 +718,7 @@ check_PROGRAMS += two_file_same_shared_strip_test
 two_file_same_shared_strip_test_SOURCES = two_file_test_main.cc
 two_file_same_shared_strip_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_strip.so
-two_file_same_shared_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R.
+two_file_same_shared_strip_test_LDFLAGS = -Wl,-R.
 two_file_same_shared_strip_test_LDADD = two_file_shared_strip.so
 two_file_shared_strip.so: two_file_shared.so
  $(TEST_STRIP) -S -o two_file_shared_strip.so two_file_shared.so
@@ -716,22 +726,21 @@ two_file_shared_strip.so: two_file_shared.so
 check_PROGRAMS += common_test_1
 common_test_1_SOURCES = common_test_1.c
 common_test_1_DEPENDENCIES = gcctestdir/ld
-common_test_1_LDFLAGS = -Bgcctestdir/
 common_test_1_LDADD =
 
 check_PROGRAMS += common_test_2
 common_test_2_SOURCES = common_test_1.c
 common_test_2_DEPENDENCIES = common_test_2.so common_test_3.so gcctestdir/ld
-common_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+common_test_2_LDFLAGS = -Wl,-R,.
 common_test_2_LDADD = common_test_2.so common_test_3.so
 common_test_2_pic.o: common_test_2.c
  $(COMPILE) -c -fpic -o $@ $<
 common_test_2.so: common_test_2_pic.o common_test_3.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared common_test_2_pic.o common_test_3.so
+ $(LINK) -shared common_test_2_pic.o common_test_3.so
 common_test_3_pic.o: common_test_3.c
  $(COMPILE) -c -fpic -o $@ $<
 common_test_3.so: common_test_3_pic.o ver_test_2.script gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared common_test_3_pic.o -Wl,--version-script,$(srcdir)/ver_test_2.script
+ $(LINK) -shared common_test_3_pic.o -Wl,--version-script,$(srcdir)/ver_test_2.script
 
 check_PROGRAMS += exception_test
 check_PROGRAMS += exception_shared_1_test
@@ -744,11 +753,11 @@ exception_test_1_pic.o: exception_test_1.cc
 exception_test_2_pic.o: exception_test_2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 exception_shared_1.so: exception_test_1_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o
+ $(CXXLINK) -shared exception_test_1_pic.o
 exception_shared_2.so: exception_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared exception_test_2_pic.o
+ $(CXXLINK) -shared exception_test_2_pic.o
 exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o exception_test_2_pic.o
+ $(CXXLINK) -shared exception_test_1_pic.o exception_test_2_pic.o
 
 exception_test_SOURCES = \
  exception_test_main.cc \
@@ -756,7 +765,6 @@ exception_test_SOURCES = \
  exception_test_2.cc \
  exception_test.h
 exception_test_DEPENDENCIES = gcctestdir/ld
-exception_test_LDFLAGS = -Bgcctestdir/
 exception_test_LDADD =
 
 if HAVE_STATIC
@@ -769,32 +777,30 @@ endif
 
 exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
 exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
-exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+exception_shared_1_test_LDFLAGS = -Wl,-R,.
 exception_shared_1_test_LDADD = exception_shared_1.so
 
 exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
 exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
-exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+exception_shared_2_test_LDFLAGS = -Wl,-R,.
 exception_shared_2_test_LDADD = exception_shared_2.so
 
 exception_same_shared_test_SOURCES = exception_test_main.cc
 exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
-exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+exception_same_shared_test_LDFLAGS = -Wl,-R,.
 exception_same_shared_test_LDADD = exception_shared.so
 
 exception_separate_shared_12_test_SOURCES = exception_test_main.cc
 exception_separate_shared_12_test_DEPENDENCIES = \
  gcctestdir/ld exception_shared_1.so exception_shared_2.so
-exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. \
- -Wl,--no-as-needed
+exception_separate_shared_12_test_LDFLAGS = -Wl,-R,. -Wl,--no-as-needed
 exception_separate_shared_12_test_LDADD = \
  exception_shared_1.so exception_shared_2.so
 
 exception_separate_shared_21_test_SOURCES = exception_test_main.cc
 exception_separate_shared_21_test_DEPENDENCIES = \
  gcctestdir/ld exception_shared_1.so exception_shared_2.so
-exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. \
- -Wl,--no-as-needed
+exception_separate_shared_21_test_LDFLAGS = -Wl,-R,. -Wl,--no-as-needed
 exception_separate_shared_21_test_LDADD = \
  exception_shared_2.so exception_shared_1.so
 
@@ -802,29 +808,28 @@ exception_separate_shared_21_test_LDADD = \
 check_PROGRAMS += weak_test
 weak_test_SOURCES = weak_test.cc
 weak_test_DEPENDENCIES = gcctestdir/ld
-weak_test_LDFLAGS = -Bgcctestdir/
 weak_test_LDADD =
 
 check_PROGRAMS += weak_undef_test
 MOSTLYCLEANFILES += alt/weak_undef_lib.so
 weak_undef_test_SOURCES = weak_undef_test.cc
 weak_undef_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib.so alt/weak_undef_lib.so
-weak_undef_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
+weak_undef_test_LDFLAGS = -Wl,-R,alt
 weak_undef_test_LDADD = -L . weak_undef_lib.so
 weak_undef_file1.o: weak_undef_file1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_undef_file2.o: weak_undef_file2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_undef_lib.so: weak_undef_file1.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1.o
+ $(CXXLINK) -shared weak_undef_file1.o
 alt/weak_undef_lib.so: weak_undef_file2.o gcctestdir/ld
  test -d alt || mkdir -p alt
- $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2.o
+ $(CXXLINK) -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_LDFLAGS = -u weak_undef_2
 weak_undef_test_2_LDADD = -L . -lweak_undef_2
 MOSTLYCLEANFILES += libweak_undef_2.a
 libweak_undef_2.a: weak_undef_file3.o weak_undef_file4.o
@@ -839,17 +844,17 @@ check_PROGRAMS += weak_undef_nonpic_test
 MOSTLYCLEANFILES += alt/weak_undef_lib_nonpic.so
 weak_undef_nonpic_test_SOURCES = weak_undef_test.cc
 weak_undef_nonpic_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib_nonpic.so alt/weak_undef_lib_nonpic.so
-weak_undef_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
+weak_undef_nonpic_test_LDFLAGS = -Wl,-R,alt
 weak_undef_nonpic_test_LDADD = -L . weak_undef_lib_nonpic.so
 weak_undef_file1_nonpic.o: weak_undef_file1.cc
  $(CXXCOMPILE) -c -o $@ $<
 weak_undef_file2_nonpic.o: weak_undef_file2.cc
  $(CXXCOMPILE) -c -o $@ $<
 weak_undef_lib_nonpic.so: weak_undef_file1_nonpic.o
- $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1_nonpic.o -Wl,-z,notext
+ $(CXXLINK) -shared weak_undef_file1_nonpic.o -Wl,-z,notext
 alt/weak_undef_lib_nonpic.so: weak_undef_file2_nonpic.o
  test -d alt || mkdir -p alt
- $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2_nonpic.o -Wl,-z,notext
+ $(CXXLINK) -shared weak_undef_file2_nonpic.o -Wl,-z,notext
 endif FN_PTRS_IN_SO_WITHOUT_PIC
 
 
@@ -858,28 +863,28 @@ weak_alias_test_SOURCES = weak_alias_test_main.cc
 weak_alias_test_DEPENDENCIES = \
  gcctestdir/ld weak_alias_test_1.so weak_alias_test_2.so \
  weak_alias_test_3.o weak_alias_test_4.so weak_alias_test_5.so
-weak_alias_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+weak_alias_test_LDFLAGS = -Wl,-R,.
 weak_alias_test_LDADD = \
  weak_alias_test_1.so weak_alias_test_2.so weak_alias_test_3.o \
  weak_alias_test_4.so weak_alias_test_5.so
 weak_alias_test_1_pic.o: weak_alias_test_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_alias_test_1.so: weak_alias_test_1_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_1_pic.o
+ $(CXXLINK) -shared weak_alias_test_1_pic.o
 weak_alias_test_2_pic.o: weak_alias_test_2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_alias_test_2.so: weak_alias_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_2_pic.o
+ $(CXXLINK) -shared weak_alias_test_2_pic.o
 weak_alias_test_3.o: weak_alias_test_3.cc
  $(CXXCOMPILE) -c -o $@ $<
 weak_alias_test_4_pic.o: weak_alias_test_4.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_alias_test_4.so: weak_alias_test_4_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_4_pic.o
+ $(CXXLINK) -shared weak_alias_test_4_pic.o
 weak_alias_test_5_pic.o: weak_alias_test_5.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_alias_test_5.so: weak_alias_test_5_pic.o $(srcdir)/weak_alias_test.script gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_5_pic.o \
+ $(CXXLINK) -shared weak_alias_test_5_pic.o \
  -Wl,--version-script,$(srcdir)/weak_alias_test.script
 
 check_SCRIPTS += weak_plt.sh
@@ -888,43 +893,43 @@ check_DATA += weak_plt_shared.so
 weak_plt_main_pic.o: weak_plt_main.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_plt: weak_plt_main_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ weak_plt_main_pic.o
+ $(CXXLINK) weak_plt_main_pic.o
 weak_plt_shared_pic.o: weak_plt_shared.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_plt_shared.so: weak_plt_shared_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_plt_shared_pic.o
+ $(CXXLINK) -shared weak_plt_shared_pic.o
 
 check_PROGRAMS += copy_test
 copy_test_SOURCES = copy_test.cc
 copy_test_DEPENDENCIES = gcctestdir/ld copy_test_1.so copy_test_2.so
-copy_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+copy_test_LDFLAGS = -Wl,-R,.
 copy_test_LDADD = copy_test_1.so copy_test_2.so
 copy_test_1_pic.o: copy_test_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 copy_test_1.so: gcctestdir/ld copy_test_1_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared copy_test_1_pic.o
+ $(CXXLINK) -shared copy_test_1_pic.o
 copy_test_2_pic.o: copy_test_2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 copy_test_2.so: gcctestdir/ld copy_test_2_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared copy_test_2_pic.o
+ $(CXXLINK) -shared copy_test_2_pic.o
 
 check_PROGRAMS += copy_test_relro
 copy_test_relro_SOURCES = copy_test_relro.cc
 copy_test_relro_DEPENDENCIES = gcctestdir/ld copy_test_relro_1.so
-copy_test_relro_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -Wl,-z,relro
+copy_test_relro_LDFLAGS = -Wl,-R,. -Wl,-z,relro
 copy_test_relro_LDADD = copy_test_relro_1.so
 copy_test_relro_1_pic.o: copy_test_relro_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 copy_test_relro_1.so: gcctestdir/ld copy_test_relro_1_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro copy_test_relro_1_pic.o
+ $(CXXLINK) -shared -Wl,-z,relro copy_test_relro_1_pic.o
 
 if !DEFAULT_TARGET_POWERPC
 check_SCRIPTS += copy_test_protected.sh
 check_DATA += copy_test_protected.err
 MOSTLYCLEANFILES += copy_test_protected.err
 copy_test_protected.err: copy_test_protected.o copy_test_2.so gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -o copy_test_protected copy_test_protected.o copy_test_2.so -Wl,-R,. "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -o copy_test_protected copy_test_protected.o copy_test_2.so -Wl,-R,. 2>$@; \
+ @echo $(CXXLINK) -o copy_test_protected copy_test_protected.o copy_test_2.so -Wl,-R,. "2>$@"
+ @if $(CXXLINK) -o copy_test_protected copy_test_protected.o copy_test_2.so -Wl,-R,. 2>$@; \
  then \
   echo 1>&2 "Link of copy_test_protected should have failed"; \
   rm -f $@; \
@@ -948,9 +953,9 @@ tls_test_file2_pic.o: tls_test_file2.cc
 tls_test_c_pic.o: tls_test_c.c
  $(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
 tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -Wl,-z,defs
+ $(CXXLINK) -shared tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -Wl,-z,defs
 tls_test_shared2.so: tls_test_file2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_pic.o
+ $(CXXLINK) -shared tls_test_file2_pic.o
 
 tls_test_pic_ie.o: tls_test.cc
  $(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
@@ -959,11 +964,11 @@ tls_test_file2_pic_ie.o: tls_test_file2.cc
 tls_test_c_pic_ie.o: tls_test_c.c
  $(COMPILE) -c -fpic -ftls-model=initial-exec $(TLS_TEST_C_CFLAGS) -o $@ $<
 tls_test_ie_shared.so: tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o
+ $(CXXLINK) -shared tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o
 
 tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
 tls_test_DEPENDENCIES = gcctestdir/ld tls_test_c.o
-tls_test_LDFLAGS = -Bgcctestdir/ $(THREADFLAGS)
+tls_test_LDFLAGS = $(THREADFLAGS)
 tls_test_LDADD = tls_test_c.o $(THREADLIBS)
 tls_test_c.o: tls_test_c.c
  $(COMPILE) -c $(TLS_TEST_C_CFLAGS) -o $@ $<
@@ -971,7 +976,7 @@ tls_test_c.o: tls_test_c.c
 tls_pic_test_SOURCES = tls_test_main.cc
 tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o \
  tls_test_c_pic.o
-tls_pic_test_LDFLAGS = -Bgcctestdir/ $(THREADFLAGS)
+tls_pic_test_LDFLAGS = $(THREADFLAGS)
 tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o \
  $(THREADLIBS)
 
@@ -985,7 +990,7 @@ tls_test_c_pie.o: tls_test_c.c
  $(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
 tls_pie_test: tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o \
  tls_test_c_pie.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ $(THREADFLAGS) -pie tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o tls_test_c_pie.o $(THREADLIBS)
+ $(CXXLINK) $(THREADFLAGS) -pie tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o tls_test_c_pie.o $(THREADLIBS)
 
 check_SCRIPTS += tls_pie_test.sh
 check_DATA += tls_pie_test.stdout
@@ -994,22 +999,22 @@ tls_pie_test.stdout: tls_pie_test
 
 tls_pie_pic_test: tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o \
  tls_test_c_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ $(THREADFLAGS) -pie tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o $(THREADLIBS)
+ $(CXXLINK) $(THREADFLAGS) -pie tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o $(THREADLIBS)
 
 tls_shared_test_SOURCES = tls_test_main.cc
 tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
-tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_test_LDADD = tls_test_shared.so $(THREADLIBS)
 
 tls_shared_ie_test_SOURCES = tls_test_main.cc
 tls_shared_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_ie_shared.so
-tls_shared_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_ie_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_ie_test_LDADD = tls_test_ie_shared.so $(THREADLIBS)
 
 tls_shared_gd_to_ie_test_SOURCES = tls_test_main.cc
 tls_shared_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o \
  tls_test_c_pic.o tls_test_shared2.so
-tls_shared_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_gd_to_ie_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_gd_to_ie_test_LDADD = tls_test_pic.o tls_test_c_pic.o \
  tls_test_shared2.so $(THREADLIBS)
 
@@ -1024,12 +1029,12 @@ tls_test_file2_gnu2.o: tls_test_file2.cc
 tls_test_c_gnu2.o: tls_test_c.c
  $(COMPILE) -c -fpic -mtls-dialect=gnu2 $(TLS_TEST_C_CFLAGS) -o $@ $<
 tls_test_gnu2_shared2.so: tls_test_file2_gnu2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_gnu2.o
+ $(CXXLINK) -shared tls_test_file2_gnu2.o
 
 tls_shared_gnu2_gd_to_ie_test_SOURCES = tls_test_main.cc
 tls_shared_gnu2_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2.o \
  tls_test_c_gnu2.o tls_test_gnu2_shared2.so
-tls_shared_gnu2_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_gnu2_gd_to_ie_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_gnu2_gd_to_ie_test_LDADD = tls_test_gnu2.o tls_test_c_gnu2.o \
  tls_test_gnu2_shared2.so $(THREADLIBS)
 
@@ -1038,11 +1043,11 @@ if TLS_DESCRIPTORS
 check_PROGRAMS += tls_shared_gnu2_test
 
 tls_test_gnu2_shared.so: tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o
+ $(CXXLINK) -shared tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o
 
 tls_shared_gnu2_test_SOURCES = tls_test_main.cc
 tls_shared_gnu2_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2_shared.so
-tls_shared_gnu2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_gnu2_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_gnu2_test_LDADD = tls_test_gnu2_shared.so $(THREADLIBS)
 
 endif TLS_DESCRIPTORS
@@ -1069,11 +1074,11 @@ endif
 if FN_PTRS_IN_SO_WITHOUT_PIC
 check_PROGRAMS += tls_shared_nonpic_test
 tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o tls_test_c.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test.o tls_test_file2.o tls_test_c.o -Wl,-z,notext
+ $(CXXLINK) -shared tls_test.o tls_test_file2.o tls_test_c.o -Wl,-z,notext
 
 tls_shared_nonpic_test_SOURCES = tls_test_main.cc
 tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
-tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_nonpic_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so $(THREADLIBS)
 endif FN_PTRS_IN_SO_WITHOUT_PIC
 
@@ -1112,33 +1117,33 @@ x86_64_mov_to_lea7.o: x86_64_mov_to_lea4.s
 x86_64_mov_to_lea8.o: x86_64_mov_to_lea4.s
  $(TEST_AS) --64 -o $@ $<
 x86_64_mov_to_lea1: x86_64_mov_to_lea1.o ../ld-new
- ../ld-new -Bsymbolic -shared  -melf_x86_64  -o $@ $<
+ ../ld-new -Bsymbolic -shared -melf_x86_64 -o $@ $<
 x86_64_mov_to_lea2: x86_64_mov_to_lea1.o ../ld-new
- ../ld-new -pie -melf_x86_64  -o $@ $<
+ ../ld-new -pie -melf_x86_64 -o $@ $<
 x86_64_mov_to_lea3: x86_64_mov_to_lea1.o ../ld-new
- ../ld-new -melf_x86_64  -o $@ $<
+ ../ld-new -melf_x86_64 -o $@ $<
 x86_64_mov_to_lea4: x86_64_mov_to_lea2.o ../ld-new
- ../ld-new -Bsymbolic -shared  -melf32_x86_64  -o $@ $<
+ ../ld-new -Bsymbolic -shared -melf32_x86_64 -o $@ $<
 x86_64_mov_to_lea5: x86_64_mov_to_lea2.o ../ld-new
- ../ld-new -pie -melf32_x86_64  -o $@ $<
+ ../ld-new -pie -melf32_x86_64 -o $@ $<
 x86_64_mov_to_lea6: x86_64_mov_to_lea2.o ../ld-new
- ../ld-new -melf32_x86_64  -o $@ $<
+ ../ld-new -melf32_x86_64 -o $@ $<
 x86_64_mov_to_lea7: x86_64_mov_to_lea3.o ../ld-new
  ../ld-new -melf32_x86_64 -pie -o $@ $<
 x86_64_mov_to_lea8: x86_64_mov_to_lea4.o ../ld-new
  ../ld-new -melf_x86_64 -pie -o $@ $<
 x86_64_mov_to_lea9: x86_64_mov_to_lea5.o ../ld-new
- ../ld-new -melf32_x86_64  -o $@ $<
+ ../ld-new -melf32_x86_64 -o $@ $<
 x86_64_mov_to_lea10: x86_64_mov_to_lea6.o ../ld-new
- ../ld-new -melf_x86_64  -o $@ $<
+ ../ld-new -melf_x86_64 -o $@ $<
 x86_64_mov_to_lea11: x86_64_mov_to_lea2.o ../ld-new
- ../ld-new -melf32_x86_64 -shared  -o $@ $<
+ ../ld-new -melf32_x86_64 -shared -o $@ $<
 x86_64_mov_to_lea12: x86_64_mov_to_lea1.o ../ld-new
- ../ld-new -melf_x86_64 -shared  -o $@ $<
+ ../ld-new -melf_x86_64 -shared -o $@ $<
 x86_64_mov_to_lea13: x86_64_mov_to_lea7.o ../ld-new
- ../ld-new -melf32_x86_64 -shared  -o $@ $<
+ ../ld-new -melf32_x86_64 -shared -o $@ $<
 x86_64_mov_to_lea14: x86_64_mov_to_lea8.o ../ld-new
- ../ld-new -melf_x86_64 -shared  -o $@ $<
+ ../ld-new -melf_x86_64 -shared -o $@ $<
 x86_64_mov_to_lea1.stdout: x86_64_mov_to_lea1
  $(TEST_OBJDUMP) -dw $< > $@
 x86_64_mov_to_lea2.stdout: x86_64_mov_to_lea2
@@ -1203,7 +1208,7 @@ x86_64_overflow_pc32.err: x86_64_overflow_pc32.o gcctestdir/ld
 
 check_PROGRAMS += pr17704a_test
 pr17704a_test.o: pr17704a_test.s
- $(TEST_AS) --64  -o $@ $<
+ $(TEST_AS) --64 -o $@ $<
 pr17704a_test: pr17704a_test.o gcctestdir/ld
  gcctestdir/ld --icf=all -o $@ $<
 
@@ -1254,59 +1259,59 @@ if DEFAULT_TARGET_X86_64_OR_X32
 check_PROGRAMS += pr20216a_test
 pr20216a_test_SOURCES = pr20216_main.c pr20216_def.c
 pr20216a_test_DEPENDENCIES = pr20216_gd.o pr20216_ld.o gcctestdir/ld gcctestdir/as
-pr20216a_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216a_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20216a_test_CFLAGS = -fPIE
+pr20216a_test_LDFLAGS = -Wl,-R,.
 pr20216a_test_LDADD = pr20216_gd.o pr20216_ld.o
 
 check_PROGRAMS += pr20216b_test
 pr20216b_test_SOURCES = pr20216_main.c pr20216_def.c
 pr20216b_test_DEPENDENCIES = pr20216_gd.o pr20216_ld.o gcctestdir/ld gcctestdir/as
-pr20216b_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216b_test_LDFLAGS = -pie -Bgcctestdir/ -Wl,-R,.
+pr20216b_test_CFLAGS = -fPIE
+pr20216b_test_LDFLAGS = -pie -Wl,-R,.
 pr20216b_test_LDADD = pr20216_gd.o pr20216_ld.o
 
 check_PROGRAMS += pr20216c_test
 pr20216c_test_SOURCES = pr20216_main.c pr20216_def.c
 pr20216c_test_DEPENDENCIES = pr20216_gd.o pr20216_ld.o gcctestdir/ld gcctestdir/as
-pr20216c_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216c_test_LDFLAGS = -static -Bgcctestdir/ -Wl,-R,.
+pr20216c_test_CFLAGS = -fPIE
+pr20216c_test_LDFLAGS = -static -Wl,-R,.
 pr20216c_test_LDADD = pr20216_gd.o pr20216_ld.o
 
 check_PROGRAMS += pr20216d_test
 pr20216d_test_SOURCES = pr20216_main.c pr20216_def.c
 pr20216d_test_DEPENDENCIES = pr20216a.so gcctestdir/ld gcctestdir/as
-pr20216d_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216d_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20216d_test_CFLAGS = -fPIE
+pr20216d_test_LDFLAGS = -Wl,-R,.
 pr20216d_test_LDADD = pr20216a.so
 
 check_PROGRAMS += pr20216e_test
 pr20216e_test_SOURCES = pr20216_main.c
 pr20216e_test_DEPENDENCIES = pr20216_gd.o pr20216_ld.o pr20216b.so gcctestdir/ld gcctestdir/as
-pr20216e_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216e_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20216e_test_CFLAGS = -fPIE
+pr20216e_test_LDFLAGS = -Wl,-R,.
 pr20216e_test_LDADD = pr20216_gd.o pr20216_ld.o pr20216b.so
 
 MOSTLYCLEANFILES += pr20216a.so pr20216b.so
 
 pr20216a.so: pr20216_gd.o pr20216_ld.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared pr20216_gd.o pr20216_ld.o
+ $(LINK) -shared pr20216_gd.o pr20216_ld.o
 
 pr20216b.so: pr20216_def.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared pr20216_def.o
+ $(LINK) -shared pr20216_def.o
 
 pr20216_gd.o: pr20216_gd.S gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -c -o $@ $<
+ $(COMPILE) -c -o $@ $<
 
 pr20216_ld.o: pr20216_ld.S gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -c -o $@ $<
+ $(COMPILE) -c -o $@ $<
 
 endif DEFAULT_TARGET_X86_64_OR_X32
 
 if DEFAULT_TARGET_I386
 
 check_SCRIPTS += i386_mov_to_lea.sh
-check_DATA += i386_mov_to_lea1.stdout  i386_mov_to_lea2.stdout \
- i386_mov_to_lea3.stdout  i386_mov_to_lea4.stdout \
+check_DATA += i386_mov_to_lea1.stdout i386_mov_to_lea2.stdout \
+ i386_mov_to_lea3.stdout i386_mov_to_lea4.stdout \
  i386_mov_to_lea5.stdout i386_mov_to_lea6.stdout \
  i386_mov_to_lea7.stdout i386_mov_to_lea8.stdout
 MOSTLYCLEANFILES += i386_mov_to_lea1 i386_mov_to_lea2 i386_mov_to_lea3 \
@@ -1324,21 +1329,21 @@ i386_mov_to_lea4.o: i386_mov_to_lea4.s
 i386_mov_to_lea5.o: i386_mov_to_lea5.s
  $(TEST_AS) --32 -o $@ $<
 i386_mov_to_lea1: i386_mov_to_lea1.o ../ld-new
- ../ld-new -Bsymbolic -shared -melf_i386  -o $@ $<
+ ../ld-new -Bsymbolic -shared -melf_i386 -o $@ $<
 i386_mov_to_lea2: i386_mov_to_lea1.o ../ld-new
- ../ld-new  -pie -melf_i386  -o $@ $<
+ ../ld-new -pie -melf_i386 -o $@ $<
 i386_mov_to_lea3: i386_mov_to_lea1.o ../ld-new
- ../ld-new -melf_i386  -o $@ $<
+ ../ld-new -melf_i386 -o $@ $<
 i386_mov_to_lea4: i386_mov_to_lea1.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea5: i386_mov_to_lea2.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea6: i386_mov_to_lea3.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea7: i386_mov_to_lea4.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea8: i386_mov_to_lea5.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea1.stdout: i386_mov_to_lea1
  $(TEST_OBJDUMP) -dw $< > $@
 i386_mov_to_lea2.stdout: i386_mov_to_lea2
@@ -1359,58 +1364,58 @@ i386_mov_to_lea8.stdout: i386_mov_to_lea8
 check_PROGRAMS += pr20308a_test
 pr20308a_test_SOURCES = pr20308_main.c pr20308_def.c
 pr20308a_test_DEPENDENCIES = pr20308_gd.o pr20308_ld.o gcctestdir/ld gcctestdir/as
-pr20308a_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308a_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20308a_test_CFLAGS = -fPIE
+pr20308a_test_LDFLAGS = -Wl,-R,.
 pr20308a_test_LDADD = pr20308_gd.o pr20308_ld.o
 
 check_PROGRAMS += pr20308b_test
 pr20308b_test_SOURCES = pr20308_main.c pr20308_def.c
 pr20308b_test_DEPENDENCIES = pr20308_gd.o pr20308_ld.o gcctestdir/ld gcctestdir/as
-pr20308b_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308b_test_LDFLAGS = -pie -Bgcctestdir/ -Wl,-R,.
+pr20308b_test_CFLAGS = -fPIE
+pr20308b_test_LDFLAGS = -pie -Wl,-R,.
 pr20308b_test_LDADD = pr20308_gd.o pr20308_ld.o
 
 check_PROGRAMS += pr20308c_test
 pr20308c_test_SOURCES = pr20308_main.c pr20308_def.c
 pr20308c_test_DEPENDENCIES = pr20308_gd.o pr20308_ld.o gcctestdir/ld gcctestdir/as
-pr20308c_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308c_test_LDFLAGS = -static -Bgcctestdir/ -Wl,-R,.
+pr20308c_test_CFLAGS = -fPIE
+pr20308c_test_LDFLAGS = -static -Wl,-R,.
 pr20308c_test_LDADD = pr20308_gd.o pr20308_ld.o
 
 check_PROGRAMS += pr20308d_test
 pr20308d_test_SOURCES = pr20308_main.c pr20308_def.c
 pr20308d_test_DEPENDENCIES = pr20308a.so gcctestdir/ld gcctestdir/as
-pr20308d_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308d_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20308d_test_CFLAGS = -fPIE
+pr20308d_test_LDFLAGS = -Wl,-R,.
 pr20308d_test_LDADD = pr20308a.so
 
 check_PROGRAMS += pr20308e_test
 pr20308e_test_SOURCES = pr20308_main.c
 pr20308e_test_DEPENDENCIES = pr20308_gd.o pr20308_ld.o pr20308b.so gcctestdir/ld gcctestdir/as
-pr20308e_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308e_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20308e_test_CFLAGS = -fPIE
+pr20308e_test_LDFLAGS = -Wl,-R,.
 pr20308e_test_LDADD = pr20308_gd.o pr20308_ld.o pr20308b.so
 
 MOSTLYCLEANFILES += pr20308a.so pr20308b.so
 
 pr20308a.so: pr20308_gd.o pr20308_ld.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared pr20308_gd.o pr20308_ld.o
+ $(LINK) -shared pr20308_gd.o pr20308_ld.o
 
 pr20308b.so: pr20308_def.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared pr20308_def.o
+ $(LINK) -shared pr20308_def.o
 
 pr20308_gd.o: pr20308_gd.S gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -c -o $@ $<
+ $(COMPILE) -c -o $@ $<
 
 pr20308_ld.o: pr20308_ld.S gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -c -o $@ $<
+ $(COMPILE) -c -o $@ $<
 
 endif DEFAULT_TARGET_I386
 
 check_PROGRAMS += many_sections_test
 many_sections_test_SOURCES = many_sections_test.cc
 many_sections_test_DEPENDENCIES = gcctestdir/ld
-many_sections_test_LDFLAGS = -Bgcctestdir/ -rdynamic
+many_sections_test_LDFLAGS = -rdynamic
 many_sections_test_LDADD =
 
 BUILT_SOURCES += many_sections_define.h
@@ -1433,7 +1438,7 @@ check_PROGRAMS += many_sections_r_test
 many_sections_r_test.o: many_sections_test.o gcctestdir/ld
  gcctestdir/ld -r -o $@ many_sections_test.o
 many_sections_r_test: many_sections_r_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ many_sections_r_test.o $(LIBS)
+ $(CXXLINK) many_sections_r_test.o $(LIBS)
 
 check_SCRIPTS += file_in_many_sections_test.sh
 check_DATA += file_in_many_sections.stdout
@@ -1441,26 +1446,24 @@ MOSTLYCLEANFILES += file_in_many_sections
 file_in_many_sections.o: file_in_many_sections.c many_sections_define.h
  $(COMPILE) -c -fdata-sections -o $@ $(srcdir)/file_in_many_sections.c
 file_in_many_sections: file_in_many_sections.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ file_in_many_sections.o -Wl,--gc-sections
+ $(LINK) file_in_many_sections.o -Wl,--gc-sections
 file_in_many_sections.stdout: file_in_many_sections
  $(TEST_READELF) -s $< > $@
 
 check_PROGRAMS += initpri1
 initpri1_SOURCES = initpri1.c
 initpri1_DEPENDENCIES = gcctestdir/ld
-initpri1_LDFLAGS = -Bgcctestdir/
 initpri1_LDADD =
 
 check_PROGRAMS += initpri2
 initpri2_SOURCES = initpri2.c
 initpri2_DEPENDENCIES = gcctestdir/ld
-initpri2_LDFLAGS = -Bgcctestdir/ -Wl,--ctors-in-init-array
+initpri2_LDFLAGS = -Wl,--ctors-in-init-array
 initpri2_LDADD =
 
 check_PROGRAMS += initpri3a
 initpri3a_SOURCES = initpri3.c
 initpri3a_DEPENDENCIES = gcctestdir/ld
-initpri3a_LDFLAGS = -Bgcctestdir/
 initpri3a_LDADD =
 
 # This test fails on targets not using .ctors and .dtors sections (e.g. ARM
@@ -1471,7 +1474,7 @@ initpri3a_LDADD =
 # check_PROGRAMS += initpri3b
 # initpri3b_SOURCES = initpri3.c
 # initpri3b_DEPENDENCIES = gcctestdir/ld
-# initpri3b_LDFLAGS = -Bgcctestdir/ -Wl,--no-ctors-in-init-array
+# initpri3b_LDFLAGS = -Wl,--no-ctors-in-init-array
 # initpri3b_LDADD =
 
 # Test --detect-odr-violations
@@ -1489,8 +1492,8 @@ odr_violation1.o: odr_violation1.cc
 odr_violation2.o: odr_violation2.cc
  $(CXXCOMPILE) -O2 -g -c -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg.err: debug_msg.o odr_violation1.o odr_violation2.o gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
+ @echo $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
+ @if $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg should have failed"; \
   rm -f $@; \
@@ -1504,8 +1507,8 @@ 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>$@; \
+ @echo $(CXXLINK) -o missing_key_func missing_key_func.o "2>$@"
+ @if $(CXXLINK) -o missing_key_func missing_key_func.o 2>$@; \
  then \
   echo 1>&2 "Link of missing_key_func should have failed"; \
   rm -f $@; \
@@ -1516,14 +1519,14 @@ missing_key_func.err: missing_key_func.o gcctestdir/ld
 check_DATA += debug_msg_cdebug.err
 MOSTLYCLEANFILES += debug_msg_cdebug.err
 debug_msg_cdebug.o: debug_msg.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/debug_msg.cc
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/debug_msg.cc
 odr_violation1_cdebug.o: odr_violation1.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation1.cc
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation1.cc
 odr_violation2_cdebug.o: odr_violation2.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O2 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation2.cc
+ $(CXXCOMPILE) -O2 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg_cdebug.err: debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o 2>$@; \
+ @echo $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o "2>$@"
+ @if $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg_cdebug should have failed"; \
   rm -f $@; \
@@ -1532,14 +1535,14 @@ debug_msg_cdebug.err: debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_
 check_DATA += debug_msg_cdebug_gabi.err
 MOSTLYCLEANFILES += debug_msg_cdebug_gabi.err
 debug_msg_cdebug_gabi.o: debug_msg.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/debug_msg.cc
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/debug_msg.cc
 odr_violation1_cdebug_gabi.o: odr_violation1.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/odr_violation1.cc
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/odr_violation1.cc
 odr_violation2_cdebug_gabi.o: odr_violation2.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O2 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/odr_violation2.cc
+ $(CXXCOMPILE) -O2 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg_cdebug_gabi.err: debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug_gabi debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o 2>$@; \
+ @echo $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o "2>$@"
+ @if $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg_cdebug_gabi debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg_cdebug_gabi should have failed"; \
   rm -f $@; \
@@ -1550,14 +1553,14 @@ debug_msg_cdebug_gabi.err: debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o
 check_DATA += debug_msg_so.err
 MOSTLYCLEANFILES += debug_msg_so.err
 debug_msg.so: debug_msg.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
+ $(CXXCOMPILE) -O0 -g -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
 odr_violation1.so: odr_violation1.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
+ $(CXXCOMPILE) -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
 odr_violation2.so: odr_violation2.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O2 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
+ $(CXXCOMPILE) -O2 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
- @echo $(CXXLINK_S) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
- @if $(CXXLINK_S) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
+ @echo $(CXXLINK_S) -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
+ @if $(CXXLINK_S) -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg_so should have failed"; \
   rm -f $@; \
@@ -1569,14 +1572,14 @@ debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
 check_DATA += debug_msg_ndebug.err
 MOSTLYCLEANFILES += debug_msg_ndebug.err
 debug_msg_ndebug.so: debug_msg.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
+ $(CXXCOMPILE) -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
 odr_violation1_ndebug.so: odr_violation1.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
+ $(CXXCOMPILE) -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
 odr_violation2_ndebug.so: odr_violation2.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O2 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
+ $(CXXCOMPILE) -O2 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg_ndebug.err: debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so gcctestdir/ld
- @echo $(CXXLINK_S) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so -shared-libgcc -Bdynamic -lstdc++ "2>$@"
- @if $(CXXLINK_S) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so -shared-libgcc -Bdynamic -lstdc++ 2>$@; \
+ @echo $(CXXLINK_S) -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so -shared-libgcc -Bdynamic -lstdc++ "2>$@"
+ @if $(CXXLINK_S) -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so -shared-libgcc -Bdynamic -lstdc++ 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg_ndebug should have failed"; \
   rm -f $@; \
@@ -1591,10 +1594,10 @@ MOSTLYCLEANFILES += undef_symbol.err
 undef_symbol.o: undef_symbol.cc
  $(CXXCOMPILE) -O0 -g -c -fPIC $<
 undef_symbol.so: undef_symbol.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared undef_symbol.o
+ $(CXXLINK) -shared undef_symbol.o
 undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
+ @echo $(CXXLINK) -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
+ @if $(CXXLINK) -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
  then \
   echo 1>&2 "Link of undef_symbol_test should have failed"; \
   rm -f $@; \
@@ -1605,7 +1608,7 @@ undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
 # Test -o when emitting to a special file (such as something in /dev).
 check_PROGRAMS += flagstest_o_specialfile
 flagstest_o_specialfile: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< 2>&1 | cat > $@
+ $(CXXLINK) -o /dev/stdout $< 2>&1 | cat > $@
  chmod a+x $@
  test -s $@
 
@@ -1613,7 +1616,7 @@ flagstest_o_specialfile: flagstest_debug.o gcctestdir/ld
 check_PROGRAMS += flagstest_compress_debug_sections_none
 check_DATA += flagstest_compress_debug_sections_none.stdout
 flagstest_compress_debug_sections_none: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=none
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=none
  test -s $@
 
 # Dump DWARF debug sections.
@@ -1628,13 +1631,13 @@ check_DATA += flagstest_compress_debug_sections.stdout \
 MOSTLYCLEANFILES += flagstest_compress_debug_sections.check \
     flagstest_compress_debug_sections.cmp
 flagstest_compress_debug_sections: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=zlib
  test -s $@
 
 # Test --compress-debug-sections with --build-id=tree.
 check_PROGRAMS += flagstest_compress_debug_sections_and_build_id_tree
 flagstest_compress_debug_sections_and_build_id_tree: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib \
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=zlib \
  -Wl,--build-id=tree \
  -Wl,--build-id-chunk-size-for-treehash=4096 \
  -Wl,--build-id-min-file-size-for-treehash=0
@@ -1664,7 +1667,7 @@ check_DATA += flagstest_compress_debug_sections_gnu.stdout \
 MOSTLYCLEANFILES += flagstest_compress_debug_sections_gnu.check \
     flagstest_compress_debug_sections_gnu.cmp
 flagstest_compress_debug_sections_gnu: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib-gnu
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=zlib-gnu
  test -s $@
 
 # Dump compressed DWARF debug sections.
@@ -1691,7 +1694,7 @@ check_DATA += flagstest_compress_debug_sections_gabi.stdout \
 MOSTLYCLEANFILES += flagstest_compress_debug_sections_gabi.cmp \
     flagstest_compress_debug_sections_gabi.check
 flagstest_compress_debug_sections_gabi: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib-gabi
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=zlib-gabi
  test -s $@
 
 # Dump compressed DWARF debug sections.
@@ -1716,7 +1719,7 @@ flagstest_compress_debug_sections_gabi.cmp: flagstest_compress_debug_sections_ga
 check_PROGRAMS += flagstest_o_specialfile_and_compress_debug_sections
 flagstest_o_specialfile_and_compress_debug_sections: flagstest_debug.o \
  gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< -Wl,--compress-debug-sections=zlib 2>&1 | cat > $@
+ $(CXXLINK) -o /dev/stdout $< -Wl,--compress-debug-sections=zlib 2>&1 | cat > $@
  chmod a+x $@
  test -s $@
 
@@ -1734,12 +1737,12 @@ pr18689b.o: pr18689a.o ../ld-new
  ../ld-new -r -o $@ $<
 
 pr18689.o: pr18689.c gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -ggdb3 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/pr18689.c
+ $(COMPILE) -ggdb3 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/pr18689.c
 
 # Test -TText and -Tdata.
 check_PROGRAMS += flagstest_o_ttext_1
 flagstest_o_ttext_1: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,-Ttext,0x400000 -Wl,-Tdata,0x800000
+ $(CXXLINK) -o $@ $< -Wl,-Ttext,0x400000 -Wl,-Tdata,0x800000
 
 # 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
@@ -1747,20 +1750,20 @@ flagstest_o_ttext_1: flagstest_debug.o gcctestdir/ld
 check_DATA += flagstest_o_ttext_2
 MOSTLYCLEANFILES += flagstest_o_ttext_2
 flagstest_o_ttext_2: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,-Ttext,0x400010 -Wl,-Tdata,0x800010
+ $(CXXLINK) -o $@ $< -Wl,-Ttext,0x400010 -Wl,-Tdata,0x800010
 
 # Test symbol versioning.
 check_PROGRAMS += ver_test
 ver_test_SOURCES = ver_test_main.cc
 ver_test_DEPENDENCIES = gcctestdir/ld ver_test_1.so ver_test_2.so ver_test_4.so
-ver_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_LDFLAGS = -Wl,-R,.
 ver_test_LDADD = ver_test_1.so ver_test_2.so ver_test_4.so
 ver_test_1.so: ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so
+ $(CXXLINK) -shared ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so
 ver_test_2.so: ver_test_2.o $(srcdir)/ver_test_2.script ver_test_4.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_2.script -Wl,-R,. ver_test_2.o ver_test_4.so
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_2.script -Wl,-R,. ver_test_2.o ver_test_4.so
 ver_test_4.so: ver_test_4.o $(srcdir)/ver_test_4.script gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o
 ver_test_1.o: ver_test_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 ver_test_2.o: ver_test_2.cc
@@ -1778,7 +1781,7 @@ ver_test_1.syms: ver_test_1.so
 check_PROGRAMS += ver_test_2
 ver_test_2_SOURCES = ver_test_main_2.cc
 ver_test_2_DEPENDENCIES = gcctestdir/ld ver_test_4.so ver_test_2.so
-ver_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_2_LDFLAGS = -Wl,-R,.
 ver_test_2_LDADD = ver_test_4.so ver_test_2.so
 
 check_SCRIPTS += ver_test_2.sh
@@ -1792,7 +1795,7 @@ ver_test_4.syms: ver_test_4.so
  $(TEST_READELF) -s $< >$@ 2>/dev/null
 
 ver_test_5.so: ver_test_5.o $(srcdir)/ver_test_5.script ver_test_4.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_5.script ver_test_5.o ver_test_4.so
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_5.script ver_test_5.o ver_test_4.so
 ver_test_5.o: ver_test_5.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 check_SCRIPTS += ver_test_5.sh
@@ -1803,11 +1806,11 @@ ver_test_5.syms: ver_test_5.so
 check_PROGRAMS += ver_test_6
 ver_test_6_SOURCES = ver_test_6.c
 ver_test_6_DEPENDENCIES = gcctestdir/ld ver_test_2.so
-ver_test_6_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_6_LDFLAGS = -Wl,-R,.
 ver_test_6_LDADD = ver_test_2.so
 
 ver_test_7.so: ver_test_4.o $(srcdir)/ver_test_4.script ver_test_7.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o ver_test_7.o
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o ver_test_7.o
 ver_test_7.o: ver_test_7.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 check_SCRIPTS += ver_test_7.sh
@@ -1818,12 +1821,12 @@ ver_test_7.syms: ver_test_7.so
 check_PROGRAMS += ver_test_8
 ver_test_8_SOURCES = two_file_test_main.cc
 ver_test_8_DEPENDENCIES = gcctestdir/ld ver_test_8_1.so ver_test_8_2.so
-ver_test_8_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_8_LDFLAGS = -Wl,-R,.
 ver_test_8_LDADD = ver_test_8_1.so ver_test_8_2.so
 ver_test_8_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so
+ $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so
 ver_test_8_2.so: two_file_test_2_pic.o $(srcdir)/ver_test_8.script gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_8.script two_file_test_2_pic.o
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_8.script two_file_test_2_pic.o
 
 check_SCRIPTS += ver_test_8.sh
 check_DATA += ver_test_8_2.so.syms
@@ -1833,10 +1836,10 @@ ver_test_8_2.so.syms: ver_test_8_2.so
 check_PROGRAMS += ver_test_9
 ver_test_9_SOURCES = ver_test_main.cc
 ver_test_9_DEPENDENCIES = gcctestdir/ld ver_test_9.so
-ver_test_9_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_9_LDFLAGS = -Wl,-R,.
 ver_test_9_LDADD = ver_test_9.so
 ver_test_9.so: ver_test_9.o ver_test_4.so ver_test_5.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-R,. ver_test_9.o ver_test_5.so ver_test_4.so
+ $(CXXLINK) -shared -Wl,-R,. ver_test_9.o ver_test_5.so ver_test_4.so
 ver_test_9.o: ver_test_9.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 
@@ -1845,13 +1848,13 @@ check_DATA += ver_test_10.syms
 ver_test_10.syms: ver_test_10.so
  $(TEST_READELF) -s $< >$@ 2>/dev/null
 ver_test_10.so: gcctestdir/ld ver_test_2.o ver_test_10.script
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_10.script ver_test_2.o
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_10.script ver_test_2.o
 
 check_PROGRAMS += ver_test_11
 MOSTLYCLEANFILES += ver_test_11.a
 ver_test_11_SOURCES = ver_test_main_2.cc
 ver_test_11_DEPENDENCIES = gcctestdir/ld ver_test_11.a
-ver_test_11_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_11_LDFLAGS = -Wl,-R,.
 ver_test_11_LDADD = ver_test_11.a
 ver_test_11.a: ver_test_1.o ver_test_2.o ver_test_4.o
  $(TEST_AR) rc $@ $^
@@ -1859,7 +1862,7 @@ ver_test_11.a: ver_test_1.o ver_test_2.o ver_test_4.o
 check_PROGRAMS += ver_test_12
 ver_test_12_SOURCES = ver_test_main_2.cc
 ver_test_12_DEPENDENCIES = gcctestdir/ld ver_test_12.o
-ver_test_12_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_12_LDFLAGS = -Wl,-R,.
 ver_test_12_LDADD = ver_test_12.o
 ver_test_12.o: gcctestdir/ld ver_test_1.o ver_test_2.o ver_test_4.o
  gcctestdir/ld -r -o $@ ver_test_1.o ver_test_2.o ver_test_4.o
@@ -1869,7 +1872,7 @@ check_DATA += ver_test_13.syms
 ver_test_13.syms: ver_test_13.so
  $(TEST_READELF) -s $< >$@ 2>/dev/null
 ver_test_13.so: gcctestdir/ld ver_test_13.o ver_test_13.script
- $(LINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_13.script ver_test_13.o
+ $(LINK) -shared -Wl,--version-script,$(srcdir)/ver_test_13.script ver_test_13.o
 ver_test_13.o: ver_test_13.c
  $(COMPILE) -c -fpic -o $@ $<
 
@@ -1879,7 +1882,7 @@ MOSTLYCLEANFILES += ver_test_14
 ver_test_14.syms: ver_test_14
  $(TEST_OBJDUMP) -T $< | $(TEST_CXXFILT) >$@
 ver_test_14: gcctestdir/ld ver_test_main.o ver_test_1.so ver_test_2.so ver_test_4.so ver_test_14.script
- $(CXXLINK) -Bgcctestdir/ -Wl,--version-script,$(srcdir)/ver_test_14.script -Wl,-E -Wl,-R,. ver_test_main.o ver_test_1.so ver_test_2.so ver_test_4.so
+ $(CXXLINK) -Wl,--version-script,$(srcdir)/ver_test_14.script -Wl,-E -Wl,-R,. ver_test_main.o ver_test_1.so ver_test_2.so ver_test_4.so
 
 check_SCRIPTS += ver_test_pr23409.sh
 check_DATA += ver_test_pr23409.syms
@@ -1911,11 +1914,11 @@ check_PROGRAMS += protected_1
 protected_1_SOURCES = \
  protected_main_1.cc protected_main_2.cc protected_main_3.cc
 protected_1_DEPENDENCIES = gcctestdir/ld protected_1.so
-protected_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+protected_1_LDFLAGS = -Wl,-R,.
 protected_1_LDADD = protected_1.so
 
 protected_1.so: gcctestdir/ld protected_1_pic.o protected_2_pic.o protected_3_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared protected_1_pic.o protected_2_pic.o protected_3_pic.o
+ $(CXXLINK) -shared protected_1_pic.o protected_2_pic.o protected_3_pic.o
 protected_1_pic.o: protected_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 protected_2_pic.o: protected_2.cc
@@ -1926,7 +1929,7 @@ protected_3_pic.o: protected_3.cc
 check_PROGRAMS += protected_2
 protected_2_SOURCES = protected_main_1.cc protected_3.cc
 protected_2_DEPENDENCIES = gcctestdir/ld protected_1.so
-protected_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+protected_2_LDFLAGS = -Wl,-R,.
 protected_2_LDADD = protected_1.so
 
 check_DATA += protected_3.err
@@ -1934,8 +1937,8 @@ MOSTLYCLEANFILES += protected_3.err
 protected_4_pic.o: protected_4.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 protected_3.err: protected_4_pic.o gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -shared -o protected_4.so protected_4_pic.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -shared -o protected_4.so protected_4_pic.o 2>$@; then \
+ @echo $(CXXLINK) -shared -o protected_4.so protected_4_pic.o "2>$@"
+ @if $(CXXLINK) -shared -o protected_4.so protected_4_pic.o 2>$@; then \
   echo 1>&2 "Link of protected_4.so should have failed"; \
   rm -f $@; \
   exit 1; \
@@ -1946,10 +1949,10 @@ check_SCRIPTS += relro_test.sh
 check_DATA += relro_test.stdout
 relro_test_SOURCES = relro_test_main.cc
 relro_test_DEPENDENCIES = gcctestdir/ld relro_test.so
-relro_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+relro_test_LDFLAGS = -Wl,-R,.
 relro_test_LDADD = relro_test.so
 relro_test.so: gcctestdir/ld relro_test_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro relro_test_pic.o
+ $(CXXLINK) -shared -Wl,-z,relro relro_test_pic.o
 relro_test_pic.o: relro_test.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 relro_test.stdout: relro_test.so
@@ -1958,15 +1961,15 @@ relro_test.stdout: relro_test.so
 check_PROGRAMS += relro_now_test
 relro_now_test_SOURCES = relro_test_main.cc
 relro_now_test_DEPENDENCIES = gcctestdir/ld relro_now_test.so
-relro_now_test_LDFLAGS = -Bgcctestdir -Wl,-R,. -Wl,-z,relro -Wl,-z,now
+relro_now_test_LDFLAGS = -Wl,-R,. -Wl,-z,relro -Wl,-z,now
 relro_now_test_LDADD = relro_now_test.so
 relro_now_test.so: gcctestdir/ld relro_test_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -Wl,-z,now relro_test_pic.o
+ $(CXXLINK) -shared -Wl,-z,relro -Wl,-z,now relro_test_pic.o
 
 check_PROGRAMS += relro_strip_test
 relro_strip_test_SOURCES = relro_test_main.cc
 relro_strip_test_DEPENDENCIES = gcctestdir/ld relro_strip_test.so
-relro_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+relro_strip_test_LDFLAGS = -Wl,-R,.
 relro_strip_test_LDADD = relro_strip_test.so
 relro_strip_test.so: relro_test.so
  $(TEST_STRIP) -o $@ $<
@@ -1974,27 +1977,27 @@ relro_strip_test.so: relro_test.so
 check_PROGRAMS += relro_script_test
 relro_script_test_SOURCES = relro_test_main.cc
 relro_script_test_DEPENDENCIES = gcctestdir/ld relro_script_test.so
-relro_script_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+relro_script_test_LDFLAGS = -Wl,-R,.
 relro_script_test_LDADD = relro_script_test.so
 relro_script_test.so: gcctestdir/ld relro_script_test.t relro_test_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -Wl,-T,$(srcdir)/relro_script_test.t relro_test_pic.o
+ $(CXXLINK) -shared -Wl,-z,relro -Wl,-T,$(srcdir)/relro_script_test.t relro_test_pic.o
 
 check_PROGRAMS += script_test_1
 script_test_1_SOURCES = script_test_1a.cc script_test_1b.cc
 script_test_1_DEPENDENCIES = gcctestdir/ld script_test_1.t
-script_test_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -Wl,-T,$(srcdir)/script_test_1.t
+script_test_1_LDFLAGS = -Wl,-R,. -Wl,-T,$(srcdir)/script_test_1.t
 script_test_1_LDADD =
 
 check_PROGRAMS += script_test_2
 script_test_2_SOURCES = script_test_2.cc script_test_2a.cc script_test_2b.cc
 script_test_2_DEPENDENCIES = gcctestdir/ld script_test_2.t
-script_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -Wl,-T,$(srcdir)/script_test_2.t
+script_test_2_LDFLAGS = -Wl,-R,. -Wl,-T,$(srcdir)/script_test_2.t
 script_test_2_LDADD =
 
 check_PROGRAMS += justsyms
 justsyms_SOURCES = justsyms_1.cc
 justsyms_DEPENDENCIES = gcctestdir/ld justsyms_2r.o
-justsyms_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_2r.o
+justsyms_LDFLAGS = -Wl,-R,justsyms_2r.o
 justsyms_LDADD =
 justsyms_2.o: justsyms_2.cc
  $(CXXCOMPILE) -c -o $@ $<
@@ -2004,7 +2007,7 @@ justsyms_2r.o: justsyms_2.o gcctestdir/ld $(srcdir)/justsyms.t
 check_PROGRAMS += justsyms_exec
 justsyms_exec_SOURCES = justsyms_exec.c
 justsyms_exec_DEPENDENCIES = gcctestdir/ld justsyms_lib
-justsyms_exec_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_lib
+justsyms_exec_LDFLAGS = -Wl,-R,justsyms_lib
 justsyms_exec_LDADD =
 MOSTLYCLEANFILES += justsyms_lib
 justsyms_lib.o: justsyms_lib.c
@@ -2016,7 +2019,7 @@ check_PROGRAMS += binary_test
 MOSTLYCLEANFILES += binary.txt
 binary_test_SOURCES = binary_test.cc
 binary_test_DEPENDENCIES = gcctestdir/ld binary.txt
-binary_test_LDFLAGS = -Bgcctestdir/ -Wl,--format,binary,binary.txt,--format,elf
+binary_test_LDFLAGS = -Wl,--format,binary,binary.txt,--format,elf
 binary_test_LDADD =
 # Copy the file to the build directory to avoid worrying about the
 # full pathname in the generated symbols.
@@ -2028,7 +2031,7 @@ check_SCRIPTS += ver_matching_test.sh
 check_DATA += ver_matching_test.stdout
 MOSTLYCLEANFILES += ver_matching_test.stdout
 ver_matching_def.so: ver_matching_def_pic.o $(srcdir)/version_script.map gcctestdir/ld
- $(CXXLINK) -O0 -Bgcctestdir/ -shared ver_matching_def_pic.o -Wl,--version-script=$(srcdir)/version_script.map
+ $(CXXLINK) -O0 -shared ver_matching_def_pic.o -Wl,--version-script=$(srcdir)/version_script.map
 ver_matching_def_pic.o: ver_matching_def.cc
  $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
 ver_matching_test.stdout: ver_matching_def.so
@@ -2039,7 +2042,7 @@ check_SCRIPTS += script_test_3.sh
 check_DATA += script_test_3.stdout
 MOSTLYCLEANFILES += script_test_3.stdout
 script_test_3: basic_test.o gcctestdir/ld script_test_3.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_3.t
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_3.t
 script_test_3.stdout: script_test_3
  $(TEST_READELF) -SlW script_test_3 > script_test_3.stdout
 
@@ -2053,7 +2056,7 @@ check_SCRIPTS += script_test_4.sh
 check_DATA += script_test_4.stdout
 MOSTLYCLEANFILES += script_test_4
 script_test_4: basic_test.o gcctestdir/ld $(srcdir)/script_test_4.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_4.t
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_4.t
 script_test_4.stdout: script_test_4
  $(TEST_READELF) -SlW script_test_4 > script_test_4.stdout
 
@@ -2067,7 +2070,7 @@ check_SCRIPTS += script_test_5.sh
 check_DATA += script_test_5.stdout
 MOSTLYCLEANFILES += script_test_5
 script_test_5: script_test_5.o gcctestdir/ld $(srcdir)/script_test_5.t
- $(CXXLINK) -Bgcctestdir/ script_test_5.o -Wl,-T,$(srcdir)/script_test_5.t
+ $(CXXLINK) script_test_5.o -Wl,-T,$(srcdir)/script_test_5.t
 script_test_5.stdout: script_test_5
  $(TEST_READELF) -SW script_test_5 > script_test_5.stdout
 
@@ -2075,7 +2078,7 @@ check_SCRIPTS += script_test_6.sh
 check_DATA += script_test_6.stdout
 MOSTLYCLEANFILES += script_test_6
 script_test_6: basic_test.o gcctestdir/ld $(srcdir)/script_test_6.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_6.t \
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_6.t \
  -Wl,-Ttext=0x10001000 -Wl,-Tdata=0x10200000 -Wl,-Tbss=0x10400000
 script_test_6.stdout: script_test_6
  $(TEST_READELF) -SlW script_test_6 > script_test_6.stdout
@@ -2084,7 +2087,7 @@ check_SCRIPTS += script_test_7.sh
 check_DATA += script_test_7.stdout
 MOSTLYCLEANFILES += script_test_7
 script_test_7: basic_test.o gcctestdir/ld $(srcdir)/script_test_7.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_7.t
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_7.t
 script_test_7.stdout: script_test_7
  $(TEST_READELF) -SlW script_test_7 > script_test_7.stdout
 
@@ -2092,7 +2095,7 @@ check_SCRIPTS += script_test_8.sh
 check_DATA += script_test_8.stdout
 MOSTLYCLEANFILES += script_test_8
 script_test_8: basic_test.o gcctestdir/ld $(srcdir)/script_test_7.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_7.t \
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_7.t \
  -Wl,-Ttext=0x20001000 -Wl,-Tdata=0x20200000 -Wl,-Tbss=0x20400000
 script_test_8.stdout: script_test_8
  $(TEST_READELF) -SlW script_test_8 > script_test_8.stdout
@@ -2103,7 +2106,7 @@ MOSTLYCLEANFILES += script_test_9
 script_test_9.o: script_test_9.cc
  $(CXXCOMPILE) -O0 -c -o $@ $<
 script_test_9: gcctestdir/ld $(srcdir)/script_test_9.t script_test_9.o
- $(CXXLINK) -Bgcctestdir/ script_test_9.o -Wl,-T,$(srcdir)/script_test_9.t
+ $(CXXLINK) script_test_9.o -Wl,-T,$(srcdir)/script_test_9.t
 script_test_9.stdout: script_test_9
  $(TEST_READELF) -lW script_test_9 > script_test_9.stdout
 
@@ -2112,7 +2115,7 @@ script_test_9.stdout: script_test_9
 # 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
+ $(LINK) script_test_11_r.o
 script_test_11_r.o: gcctestdir/ld $(srcdir)/script_test_11.t script_test_11a.o script_test_11b.o
  gcctestdir/ld -r -o $@ -T $(srcdir)/script_test_11.t script_test_11a.o script_test_11b.o
 script_test_11a.o: script_test_11a.c
@@ -2123,11 +2126,11 @@ script_test_11b.o: script_test_11b.c
 # Test difference between "*(a b)" and "*(a) *(b)" in input section spec.
 check_PROGRAMS += script_test_12
 script_test_12: gcctestdir/ld $(srcdir)/script_test_12.t script_test_12a.o script_test_12b.o
- $(LINK) -Bgcctestdir/ -Wl,-T,$(srcdir)/script_test_12.t script_test_12a.o script_test_12b.o
+ $(LINK) -Wl,-T,$(srcdir)/script_test_12.t script_test_12a.o script_test_12b.o
 
 check_PROGRAMS += script_test_12i
 script_test_12i: gcctestdir/ld $(srcdir)/script_test_12i.t script_test_12a.o script_test_12b.o
- $(LINK) -Bgcctestdir/ -Wl,-T,$(srcdir)/script_test_12i.t script_test_12a.o script_test_12b.o
+ $(LINK) -Wl,-T,$(srcdir)/script_test_12i.t script_test_12a.o script_test_12b.o
 script_test_12a.o: script_test_12a.c
  $(COMPILE) -O0 -c -o $@ $<
 script_test_12b.o: script_test_12b.c
@@ -2189,7 +2192,7 @@ check_SCRIPTS += dynamic_list.sh
 check_DATA += dynamic_list.stdout
 MOSTLYCLEANFILES += dynamic_list dynamic_list.stdout
 dynamic_list: basic_test.o gcctestdir/ld $(srcdir)/dynamic_list.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o \
+ $(CXXLINK) basic_test.o \
   -Wl,--dynamic-list $(srcdir)/dynamic_list.t \
   -Wl,--dynamic-list-data \
   -Wl,--dynamic-list-cpp-new \
@@ -2200,16 +2203,16 @@ dynamic_list.stdout: dynamic_list
 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_LDFLAGS = -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
+ $(CXXLINK) -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,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
+ $(CXXLINK) -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
 dynamic_list_lib2.o: dynamic_list_lib2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 
@@ -2219,13 +2222,13 @@ MOSTLYCLEANFILES += libthin1.a libthin3.a libthinall.a \
  alt/libthin2.a alt/libthin4.a
 thin_archive_test_1_SOURCES = thin_archive_main.cc
 thin_archive_test_1_DEPENDENCIES = gcctestdir/ld libthin1.a alt/libthin2.a
-thin_archive_test_1_LDFLAGS = -Bgcctestdir/ -Lalt
+thin_archive_test_1_LDFLAGS = -Lalt
 thin_archive_test_1_LDADD = libthin1.a -lthin2
 
 check_PROGRAMS += thin_archive_test_2
 thin_archive_test_2_SOURCES = thin_archive_main.cc
 thin_archive_test_2_DEPENDENCIES = gcctestdir/ld libthinall.a
-thin_archive_test_2_LDFLAGS = -Bgcctestdir/ -L.
+thin_archive_test_2_LDFLAGS = -L.
 thin_archive_test_2_LDADD = -lthinall
 
 libthin1.a: thin_archive_test_1.o alt/thin_archive_test_2.o
@@ -2257,7 +2260,7 @@ check_SCRIPTS += plugin_test_1.sh
 check_DATA += plugin_test_1.err
 MOSTLYCLEANFILES += plugin_test_1.err
 plugin_test_1: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--emit-relocs,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms 2>plugin_test_1.err
+ $(CXXLINK) -Wl,--no-demangle,--emit-relocs,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms 2>plugin_test_1.err
 plugin_test_1.err: plugin_test_1
  @touch plugin_test_1.err
 
@@ -2266,7 +2269,7 @@ check_SCRIPTS += plugin_test_2.sh
 check_DATA += plugin_test_2.err
 MOSTLYCLEANFILES += plugin_test_2.err
 plugin_test_2: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_shared_2.so gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,-R,.,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_shared_2.so 2>plugin_test_2.err
+ $(CXXLINK) -Wl,--no-demangle,-R,.,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_shared_2.so 2>plugin_test_2.err
 plugin_test_2.err: plugin_test_2
  @touch plugin_test_2.err
 
@@ -2275,7 +2278,7 @@ check_SCRIPTS += plugin_test_3.sh
 check_DATA += plugin_test_3.err
 MOSTLYCLEANFILES += plugin_test_3.err
 plugin_test_3: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--export-dynamic -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms 2>plugin_test_3.err
+ $(CXXLINK) -Wl,--export-dynamic -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms 2>plugin_test_3.err
 plugin_test_3.err: plugin_test_3
  @touch plugin_test_3.err
 
@@ -2284,7 +2287,7 @@ check_SCRIPTS += plugin_test_4.sh
 check_DATA += plugin_test_4.err
 MOSTLYCLEANFILES += plugin_test_4.a plugin_test_4.err
 plugin_test_4: two_file_test_main.o plugin_test_4.a gcctestdir/ld plugin_test.so
- $(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
+ $(CXXLINK) -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
 plugin_test_4.err: plugin_test_4
  @touch plugin_test_4.err
 
@@ -2293,14 +2296,14 @@ plugin_test_4.a: two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.
 
 check_PROGRAMS += plugin_test_5
 plugin_test_5: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms unused.o.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv",--gc-sections two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms unused.o.syms
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv",--gc-sections two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms unused.o.syms
 
 check_PROGRAMS += plugin_test_6
 check_SCRIPTS += plugin_test_6.sh
 check_DATA += plugin_test_6.err
 MOSTLYCLEANFILES += plugin_test_6.err
 plugin_test_6: plugin_common_test_1.o.syms plugin_common_test_2.o.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.o.syms plugin_common_test_2.o.syms 2>plugin_test_6.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.o.syms plugin_common_test_2.o.syms 2>plugin_test_6.err
 plugin_test_6.err: plugin_test_6
  @touch plugin_test_6.err
 
@@ -2309,7 +2312,7 @@ check_SCRIPTS += plugin_test_7.sh
 check_DATA += plugin_test_7.err plugin_test_7.o.syms
 MOSTLYCLEANFILES += plugin_test_7.err
 plugin_test_7: plugin_test_7_1.o plugin_test_7_1.o.syms plugin_test_7_2.o gcctestdir/ld plugin_test.so
- $(LINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--gc-sections,--print-gc-sections plugin_test_7_1.o.syms plugin_test_7_2.o 2>plugin_test_7.err
+ $(LINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--gc-sections,--print-gc-sections plugin_test_7_1.o.syms plugin_test_7_2.o 2>plugin_test_7.err
 plugin_test_7.o.syms: plugin_test_7
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 plugin_test_7_1.o: plugin_test_7_1.c
@@ -2327,15 +2330,15 @@ check_PROGRAMS += plugin_test_8
 plugin_test_8.o: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o ../ld-new plugin_test.so
  ../ld-new -r -o $@ --no-demangle --plugin "./plugin_test.so" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o
 plugin_test_8: plugin_test_8.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle plugin_test_8.o
+ $(CXXLINK) -Wl,--no-demangle plugin_test_8.o
 
 # Test that symbols known in the IR file but not in the replacement file
 # produce an unresolved symbol error.
 check_DATA += plugin_test_9.err
 MOSTLYCLEANFILES += plugin_test_9.err
 plugin_test_9.err: two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms gcctestdir/ld plugin_test.so
- @echo $(CXXLINK) -Bgcctestdir/ -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms 2>$@; then \
+ @echo $(CXXLINK) -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms "2>$@"
+ @if $(CXXLINK) -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms 2>$@; then \
   echo 1>&2 "Link of plugin_test_9 should have failed"; \
   rm -f $@; \
   exit 1; \
@@ -2355,8 +2358,8 @@ two_file_test_1c.o: two_file_test_1.o
 check_DATA += plugin_test_9b.err
 MOSTLYCLEANFILES += plugin_test_9b.err
 plugin_test_9b.err: plugin_test_9b_ir.o.syms plugin_test_9b_ir.o plugin_test_9b_elf.o gcctestdir/ld plugin_test.so
- @echo $(CXXLINK) -Bgcctestdir/ -o plugin_test_9b -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_ZN1A5printEv" plugin_test_9b_ir.o plugin_test_9b_elf.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -o plugin_test_9b -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_ZN1A5printEv" plugin_test_9b_ir.o plugin_test_9b_elf.o 2>$@; then \
+ @echo $(CXXLINK) -o plugin_test_9b -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_ZN1A5printEv" plugin_test_9b_ir.o plugin_test_9b_elf.o "2>$@"
+ @if $(CXXLINK) -o plugin_test_9b -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_ZN1A5printEv" plugin_test_9b_ir.o plugin_test_9b_elf.o 2>$@; then \
   echo 1>&2 "Link of plugin_test_9b should have failed"; \
   rm -f $@; \
   exit 1; \
@@ -2373,8 +2376,8 @@ check_PROGRAMS += plugin_test_10
 check_SCRIPTS += plugin_test_10.sh
 check_DATA += plugin_test_10.sections
 MOSTLYCLEANFILES += plugin_test_10.sections
-plugin_test_10: plugin_common_test_1.o.syms plugin_common_test_2.o  gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.o.syms plugin_common_test_2.o
+plugin_test_10: plugin_common_test_1.o.syms plugin_common_test_2.o gcctestdir/ld plugin_test.so
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.o.syms plugin_common_test_2.o
 plugin_test_10.sections: plugin_test_10
  $(TEST_READELF) -SW $< >$@ 2>/dev/null
 
@@ -2384,7 +2387,7 @@ check_DATA += plugin_test_11.err
 MOSTLYCLEANFILES += plugin_test_11.err plugin_test_thin.a
 PLUGIN_TEST_11_SYMS = two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms
 plugin_test_11: two_file_test_main.o plugin_test_thin.a gcctestdir/ld plugin_test.so $(PLUGIN_TEST_11_SYMS)
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o plugin_test_thin.a 2>plugin_test_11.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o plugin_test_thin.a 2>plugin_test_11.err
 plugin_test_11.err: plugin_test_11
  @touch plugin_test_11.err
 plugin_test_thin.a: two_file_test_1.o two_file_test_1b.o two_file_test_2.o
@@ -2400,7 +2403,7 @@ export_dynamic_plugin.o.syms: export_dynamic_plugin.o
 export_dynamic_plugin.o: export_dynamic_plugin.cc
  $(COMPILE) -c -o $@ $<
 plugin_test_12: export_dynamic_plugin.o gcctestdir/ld plugin_test.so export_dynamic_plugin.o.syms
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z3foov" -Wl,--export-dynamic-symbol,"_Z3foov" export_dynamic_plugin.o.syms 2>plugin_test_12.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z3foov" -Wl,--export-dynamic-symbol,"_Z3foov" export_dynamic_plugin.o.syms 2>plugin_test_12.err
 plugin_test_12.err: plugin_test_12
  @touch plugin_test_12.err
 
@@ -2413,7 +2416,7 @@ plugin_test_wrap_symbols_1.o: plugin_test_wrap_symbols_1.cc
 plugin_test_wrap_symbols_2.o: plugin_test_wrap_symbols_2.cc
  $(COMPILE) -c -o $@ $<
 plugin_test_wrap_symbols: plugin_test_wrap_symbols_1.o plugin_test_wrap_symbols_2.o gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_test.so" -Wl,--wrap=hello,--wrap=jello plugin_test_wrap_symbols_1.o plugin_test_wrap_symbols_2.o 2>plugin_test_wrap_symbols.err
+ $(CXXLINK) -Wl,--plugin,"./plugin_test.so" -Wl,--wrap=hello,--wrap=jello plugin_test_wrap_symbols_1.o plugin_test_wrap_symbols_2.o 2>plugin_test_wrap_symbols.err
 plugin_test_wrap_symbols.err: plugin_test_wrap_symbols
  @touch plugin_test_wrap_symbols.err
 
@@ -2422,7 +2425,7 @@ check_SCRIPTS += plugin_test_start_lib.sh
 check_DATA += plugin_test_start_lib.err
 MOSTLYCLEANFILES += plugin_test_start_lib.err
 plugin_test_start_lib: unused.o plugin_start_lib_test.o plugin_start_lib_test_2.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_start_lib_test.o \
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_start_lib_test.o \
  -Wl,--start-lib plugin_start_lib_test_2.syms -Wl,--end-lib 2>plugin_test_start_lib.err
 plugin_test_start_lib.err: plugin_test_start_lib
  @touch plugin_test_start_lib.err
@@ -2436,7 +2439,7 @@ plugin_test_defsym.syms: plugin_test_defsym.o
 plugin_test_defsym.o: plugin_test_defsym.c
  $(COMPILE) -c -o $@ $<
 plugin_test_defsym: plugin_test_defsym.o plugin_test_defsym.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" -Wl,--defsym,bar=foo plugin_test_defsym.syms 2>plugin_test_defsym.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so" -Wl,--defsym,bar=foo plugin_test_defsym.syms 2>plugin_test_defsym.err
 plugin_test_defsym.err: plugin_test_defsym
  @touch plugin_test_defsym.err
 
@@ -2444,7 +2447,7 @@ plugin_start_lib_test_2.syms: plugin_start_lib_test_2.o
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 
 plugin_test.so: plugin_test.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared plugin_test.o
+ $(LINK) -shared plugin_test.o
 plugin_test.o: plugin_test.c
  $(COMPILE) -O0 -c -fpic -o $@ $<
 
@@ -2472,7 +2475,7 @@ 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.o.syms two_file_test_1b.o.syms two_file_test_2_tls.o.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.o.syms two_file_test_1b.o.syms two_file_test_2_tls.o.syms 2>plugin_test_tls.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_tls.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2_tls.o.syms 2>plugin_test_tls.err
 plugin_test_tls.err: plugin_test_tls
  @touch plugin_test_tls.err
 
@@ -2494,16 +2497,16 @@ check_SCRIPTS += plugin_final_layout.sh
 check_DATA += plugin_final_layout.stdout plugin_final_layout_readelf.stdout
 MOSTLYCLEANFILES += plugin_final_layout
 plugin_final_layout.o: plugin_final_layout.cc
- $(CXXCOMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
+ $(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
+ $(CXXLINK) -Wl,--plugin,"./plugin_section_order.so" plugin_final_layout.o
 plugin_final_layout.stdout: plugin_final_layout
  $(TEST_NM) -n --synthetic 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 gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared plugin_section_order.o
+ $(LINK) -shared plugin_section_order.o
 plugin_section_order.o: plugin_section_order.c
  $(COMPILE) -O0 -c -fpic -o $@ $<
 
@@ -2513,14 +2516,14 @@ MOSTLYCLEANFILES += plugin_layout_new_file
 plugin_final_layout.o.syms: plugin_final_layout.o
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 plugin_layout_new_file: plugin_final_layout.o.syms plugin_test.so plugin_new_section_layout.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_test.so"  -Wl,--plugin,"./plugin_new_section_layout.so" plugin_final_layout.o.syms
+ $(CXXLINK) -Wl,--plugin,"./plugin_test.so"  -Wl,--plugin,"./plugin_new_section_layout.so" plugin_final_layout.o.syms
 plugin_layout_new_file.stdout: plugin_layout_new_file
  $(TEST_NM) -n --synthetic plugin_layout_new_file > plugin_layout_new_file.stdout
 plugin_layout_new_file_readelf.stdout: plugin_layout_new_file
  $(TEST_READELF) -Wl plugin_layout_new_file > plugin_layout_new_file_readelf.stdout
 
 plugin_new_section_layout.so: plugin_new_section_layout.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared plugin_new_section_layout.o
+ $(LINK) -shared plugin_new_section_layout.o
 plugin_new_section_layout.o: plugin_new_section_layout.c
  $(COMPILE) -O0 -c -fpic -o $@ $<
 
@@ -2528,14 +2531,14 @@ check_SCRIPTS += plugin_layout_with_alignment.sh
 check_DATA += plugin_layout_with_alignment.stdout
 MOSTLYCLEANFILES += plugin_layout_with_alignment
 plugin_layout_with_alignment.o: plugin_layout_with_alignment.c
- $(COMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
+ $(COMPILE) -O0 -c -ffunction-sections -fdata-sections -g -o $@ $<
 plugin_layout_with_alignment: plugin_layout_with_alignment.o plugin_section_alignment.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_alignment.so" plugin_layout_with_alignment.o
+ $(LINK) -Wl,--plugin,"./plugin_section_alignment.so" plugin_layout_with_alignment.o
 plugin_layout_with_alignment.stdout: plugin_layout_with_alignment
  $(TEST_NM) -n --synthetic plugin_layout_with_alignment > plugin_layout_with_alignment.stdout
 
 plugin_section_alignment.so: plugin_section_alignment.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared plugin_section_alignment.o
+ $(CXXLINK) -shared plugin_section_alignment.o
 plugin_section_alignment.o: plugin_section_alignment.cc
  $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
 
@@ -2545,7 +2548,7 @@ MOSTLYCLEANFILES += plugin_pr22868.stdout
 plugin_pr22868.stdout: plugin_pr22868.so
  $(TEST_READELF) -W --dyn-syms $< >$@ 2>/dev/null
 plugin_pr22868.so: plugin_pr22868_a.o.syms plugin_pr22868_b.o.syms plugin_pr22868_b.o plugin_test.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared -Wl,--plugin,"./plugin_test.so" plugin_pr22868_a.o.syms plugin_pr22868_b.o.syms
+ $(LINK) -shared -Wl,--plugin,"./plugin_test.so" plugin_pr22868_a.o.syms plugin_pr22868_b.o.syms
 plugin_pr22868_a.o.syms: plugin_pr22868_a.o
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 # Generate the .syms file from an alternate version of the original source
@@ -2583,11 +2586,11 @@ check_PROGRAMS += exclude_libs_test
 check_SCRIPTS += exclude_libs_test.sh
 check_DATA += exclude_libs_test.syms
 MOSTLYCLEANFILES += exclude_libs_test.syms libexclude_libs_test_1.a \
-        libexclude_libs_test_2.a alt/libexclude_libs_test_3.a
+ libexclude_libs_test_2.a alt/libexclude_libs_test_3.a
 exclude_libs_test_SOURCES = exclude_libs_test.c
 exclude_libs_test_DEPENDENCIES = gcctestdir/ld libexclude_libs_test_1.a \
  libexclude_libs_test_2.a alt/libexclude_libs_test_3.a
-exclude_libs_test_LDFLAGS = -Bgcctestdir/ -L. -Lalt \
+exclude_libs_test_LDFLAGS = -L. -Lalt \
  -Wl,--exclude-libs,dummy:libexclude_libs_test_1 \
  -Wl,--exclude-libs,libexclude_libs_test_3
 exclude_libs_test_LDADD = -lexclude_libs_test_1 -lexclude_libs_test_2 \
@@ -2606,7 +2609,7 @@ check_PROGRAMS += local_labels_test
 local_labels_test.o: ver_test_6.c
  $(COMPILE) -g -c -Wa,-L -o $@ $<
 local_labels_test: local_labels_test.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ local_labels_test.o
+ $(LINK) local_labels_test.o
 
 check_PROGRAMS += discard_locals_test
 check_SCRIPTS += discard_locals_test.sh
@@ -2619,7 +2622,7 @@ MOSTLYCLEANFILES += discard_locals_test.syms \
  discard_locals_relocatable_test1.out \
  discard_locals_relocatable_test2.out
 discard_locals_test_SOURCES = discard_locals_test.c
-discard_locals_test_LDFLAGS = -Bgcctestdir/ -Wl,--discard-locals
+discard_locals_test_LDFLAGS = -Wl,--discard-locals
 discard_locals_test.syms: discard_locals_test
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 # '-Wa,-L' is required to preserve the local label used for testing.
@@ -2643,7 +2646,6 @@ check_PROGRAMS += large
 large_SOURCES = large.c
 large_CFLAGS = -mcmodel=medium
 large_DEPENDENCIES = gcctestdir/ld
-large_LDFLAGS = -Bgcctestdir/
 large_LDADD =
 endif MCMODEL_MEDIUM
 
@@ -2653,9 +2655,9 @@ check_SCRIPTS += hidden_test.sh
 check_DATA += hidden_test.err
 MOSTLYCLEANFILES += hidden_test hidden_test.err hidden_test.syms
 libhidden.so: hidden_test_1.c gcctestdir/ld
- $(COMPILE) -Bgcctestdir/ -g -shared -fPIC -w -o $@ $(srcdir)/hidden_test_1.c
+ $(COMPILE) -g -shared -fPIC -w -o $@ $(srcdir)/hidden_test_1.c
 hidden_test: hidden_test_main.o libhidden.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,-R,. hidden_test_main.o libhidden.so 2>hidden_test.err
+ $(LINK) -Wl,-R,. hidden_test_main.o libhidden.so 2>hidden_test.err
 hidden_test.syms: hidden_test
  $(TEST_NM) -D hidden_test > $@
 hidden_test.err: hidden_test
@@ -2665,14 +2667,14 @@ hidden_test.err: hidden_test
 check_SCRIPTS += retain_symbols_file_test.sh
 check_DATA += retain_symbols_file_test.stdout
 MOSTLYCLEANFILES += retain_symbols_file_test retain_symbols_file_test.in \
-                    retain_symbols_file_test.stdout
+    retain_symbols_file_test.stdout
 retain_symbols_file_test.so: basic_pic_test.o gcctestdir/ld
  echo 'main' > retain_symbols_file_test.in
  echo 't1' >> retain_symbols_file_test.in
  echo '_ZNK4t20a3getEv' >> retain_symbols_file_test.in
  echo '_Z3t18v' >> retain_symbols_file_test.in
  echo '__tcf_0' >> retain_symbols_file_test.in
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-retain-symbols-file,retain_symbols_file_test.in basic_pic_test.o
+ $(CXXLINK) -shared -Wl,-retain-symbols-file,retain_symbols_file_test.in basic_pic_test.o
 retain_symbols_file_test.stdout: retain_symbols_file_test.so
  $(TEST_NM) -C retain_symbols_file_test.so > $@
 
@@ -2685,15 +2687,15 @@ permission_test: basic_test.o gcctestdir/ld
  rm -f $@; \
  touch $@; \
  chmod 600 $@; \
- $(CXXLINK) -Bgcctestdir/ basic_test.o
+ $(CXXLINK) basic_test.o
 
 # Check -l:foo.a
 check_PROGRAMS += searched_file_test
 MOSTLYCLEANFILES += searched_file_test searched_file_test_lib.o \
-                    alt/searched_file_test_lib.a
+    alt/searched_file_test_lib.a
 searched_file_test_SOURCES = searched_file_test.cc
 searched_file_test_DEPENDENCIES = gcctestdir/ld alt/searched_file_test_lib.a
-searched_file_test_LDFLAGS = -Bgcctestdir/ -Lalt
+searched_file_test_LDFLAGS = -Lalt
 searched_file_test_LDADD = -l:searched_file_test_lib.a
 searched_file_test_lib.o: searched_file_test_lib.cc
  $(CXXCOMPILE) -c -o $@ $<
@@ -2721,7 +2723,7 @@ if IFUNC
 ifuncmod1.o: ifuncmod1.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmod1.so: ifuncmod1.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncmod1.o
+ $(LINK) -shared ifuncmod1.o
 
 ifuncdep1.o: ifuncmod1.c
  $(COMPILE) -c -o $@ $<
@@ -2736,12 +2738,12 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain1static
 ifuncmain1static_SOURCES = ifuncmain1.c
 ifuncmain1static_DEPENDENCIES = gcctestdir/ld ifuncdep1.o
-ifuncmain1static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain1static_LDFLAGS = -static
 ifuncmain1static_LDADD = ifuncdep1.o
 
 check_PROGRAMS += ifuncmain1picstatic
 ifuncmain1picstatic: ifuncmain1pic.o ifuncmod1.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain1pic.o ifuncmod1.o
+ $(LINK) -static ifuncmain1pic.o ifuncmod1.o
 
 check_SCRIPTS += ifuncmod1.sh
 check_DATA += ifuncmod1.so.stderr
@@ -2753,42 +2755,42 @@ endif
 check_PROGRAMS += ifuncmain1
 ifuncmain1_SOURCES = ifuncmain1.c
 ifuncmain1_DEPENDENCIES = gcctestdir/ld ifuncmod1.so
-ifuncmain1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ifuncmain1_LDFLAGS = -Wl,-R,.
 ifuncmain1_LDADD = ifuncmod1.so
 
 check_PROGRAMS += ifuncmain1pic
 ifuncmain1pic: ifuncmain1pic.o ifuncmod1.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
+ $(LINK) ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain1vis
 ifuncmain1vis_SOURCES = ifuncmain1vis.c
 ifuncmain1vis_DEPENDENCIES = gcctestdir/ld ifuncmod1.so
-ifuncmain1vis_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ifuncmain1vis_LDFLAGS = -Wl,-R,.
 ifuncmain1vis_LDADD = ifuncmod1.so
 
 check_PROGRAMS += ifuncmain1vispic
 ifuncmain1vispic.o: ifuncmain1vis.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmain1vispic: ifuncmain1vispic.o ifuncmod1.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
+ $(LINK) ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain1staticpic
 ifuncmain1staticpic: ifuncmain1pic.o ifuncmod1.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.o
+ $(LINK) ifuncmain1pic.o ifuncmod1.o
 
 check_PROGRAMS += ifuncmain1pie
 ifuncmain1pie: ifuncmain1pie.o ifuncmod1.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain1pie.o ifuncmod1.so -Wl,-R,.
+ $(LINK) -pie ifuncmain1pie.o ifuncmod1.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain1vispie
 ifuncmain1vispie.o: ifuncmain1vis.c
  $(COMPILE) -c -fPIE -o $@ $<
 ifuncmain1vispie: ifuncmain1vispie.o ifuncmod1.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain1vispie.o ifuncmod1.so -Wl,-R,.
+ $(LINK) -pie ifuncmain1vispie.o ifuncmod1.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain1staticpie
 ifuncmain1staticpie: ifuncmain1pie.o ifuncmod1.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain1pie.o ifuncmod1.o
+ $(LINK) -pie ifuncmain1pie.o ifuncmod1.o
 
 ifuncmain2pic.o: ifuncmain2.c
  $(COMPILE) -c -fPIC -o $@ $<
@@ -2801,34 +2803,33 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain2static
 ifuncmain2static_SOURCES = ifuncmain2.c ifuncdep2.c
 ifuncmain2static_DEPENDENCIES = gcctestdir/ld
-ifuncmain2static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain2static_LDFLAGS = -static
 ifuncmain2static_LDADD =
 
 check_PROGRAMS += ifuncmain2picstatic
 ifuncmain2picstatic: ifuncmain2pic.o ifuncdep2pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain2pic.o ifuncdep2pic.o
+ $(LINK) -static ifuncmain2pic.o ifuncdep2pic.o
 endif
 endif
 
 check_PROGRAMS += ifuncmain2
 ifuncmain2_SOURCES = ifuncmain2.c ifuncdep2.c
 ifuncmain2_DEPENDENCIES = gcctestdir/ld
-ifuncmain2_LDFLAGS = -Bgcctestdir/
 ifuncmain2_LDADD =
 
 check_PROGRAMS += ifuncmain2pic
 ifuncmain2pic: ifuncmain2pic.o ifuncdep2pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain2pic.o ifuncdep2pic.o
+ $(LINK) ifuncmain2pic.o ifuncdep2pic.o
 
 ifuncmod3.o: ifuncmod3.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmod3.so: ifuncmod3.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncmod3.o
+ $(LINK) -shared ifuncmod3.o
 
 check_PROGRAMS += ifuncmain3
 ifuncmain3_SOURCES = ifuncmain3.c
 ifuncmain3_DEPENDENCIES = gcctestdir/ld ifuncmod3.so
-ifuncmain3_LDFLAGS = -Bgcctestdir/ -Wl,--export-dynamic -Wl,-R,.
+ifuncmain3_LDFLAGS = -Wl,--export-dynamic -Wl,-R,.
 ifuncmain3_LDADD = -ldl
 
 ifuncmain4pic.o: ifuncmain4.c
@@ -2839,19 +2840,18 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain4static
 ifuncmain4static_SOURCES = ifuncmain4.c
 ifuncmain4static_DEPENDENCIES = gcctestdir/ld
-ifuncmain4static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain4static_LDFLAGS = -static
 ifuncmain4static_LDADD =
 
 check_PROGRAMS += ifuncmain4picstatic
 ifuncmain4picstatic: ifuncmain4pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain4pic.o
+ $(LINK) -static ifuncmain4pic.o
 endif
 endif
 
 check_PROGRAMS += ifuncmain4
 ifuncmain4_SOURCES = ifuncmain4.c
 ifuncmain4_DEPENDENCIES = gcctestdir/ld
-ifuncmain4_LDFLAGS = -Bgcctestdir/
 ifuncmain4_LDADD =
 
 ifuncmain5pic.o: ifuncmain5.c
@@ -2863,7 +2863,7 @@ ifuncmain5pie.o: ifuncmain5.c
 ifuncmod5.o: ifuncmod5.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmod5.so: ifuncmod5.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncmod5.o
+ $(LINK) -shared ifuncmod5.o
 
 ifuncdep5.o: ifuncmod5.c
  $(COMPILE) -c -o $@ $<
@@ -2873,32 +2873,32 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain5static
 ifuncmain5static_SOURCES = ifuncmain5.c
 ifuncmain5static_DEPENDENCIES = gcctestdir/ld ifuncdep5.o
-ifuncmain5static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain5static_LDFLAGS = -static
 ifuncmain5static_LDADD = ifuncdep5.o
 
 check_PROGRAMS += ifuncmain5picstatic
 ifuncmain5picstatic: ifuncmain5pic.o ifuncmod5.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain5pic.o ifuncmod5.o
+ $(LINK) -static ifuncmain5pic.o ifuncmod5.o
 endif
 endif
 
 check_PROGRAMS += ifuncmain5
 ifuncmain5_SOURCES = ifuncmain5.c
 ifuncmain5_DEPENDENCIES = gcctestdir/ld ifuncmod5.so
-ifuncmain5_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ifuncmain5_LDFLAGS = -Wl,-R,.
 ifuncmain5_LDADD = ifuncmod5.so
 
 check_PROGRAMS += ifuncmain5pic
 ifuncmain5pic: ifuncmain5pic.o ifuncmod5.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain5pic.o ifuncmod5.so -Wl,-R,.
+ $(LINK) ifuncmain5pic.o ifuncmod5.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain5staticpic
 ifuncmain5staticpic: ifuncmain5pic.o ifuncmod5.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain5pic.o ifuncmod5.o
+ $(LINK) ifuncmain5pic.o ifuncmod5.o
 
 check_PROGRAMS += ifuncmain5pie
 ifuncmain5pie: ifuncmain5pie.o ifuncmod5.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain5pie.o ifuncmod5.so -Wl,-R,.
+ $(LINK) -pie ifuncmain5pie.o ifuncmod5.so -Wl,-R,.
 
 ifuncmain6pie.o: ifuncmain6pie.c
  $(COMPILE) -c -fPIE -o $@ $<
@@ -2906,11 +2906,11 @@ ifuncmain6pie.o: ifuncmain6pie.c
 ifuncmod6.o: ifuncmod6.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmod6.so: ifuncmod6.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncmod6.o
+ $(LINK) -shared ifuncmod6.o
 
 check_PROGRAMS += ifuncmain6pie
 ifuncmain6pie: ifuncmain6pie.o ifuncmod6.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain6pie.o ifuncmod6.so -Wl,-R,.
+ $(LINK) -pie ifuncmain6pie.o ifuncmod6.so -Wl,-R,.
 
 ifuncmain7pic.o: ifuncmain7.c
  $(COMPILE) -c -fPIC -o $@ $<
@@ -2923,28 +2923,27 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain7static
 ifuncmain7static_SOURCES = ifuncmain7.c
 ifuncmain7static_DEPENDENCIES = gcctestdir/ld
-ifuncmain7static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain7static_LDFLAGS = -static
 ifuncmain7static_LDADD =
 
 check_PROGRAMS += ifuncmain7picstatic
 ifuncmain7picstatic: ifuncmain7pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain7pic.o
+ $(LINK) -static ifuncmain7pic.o
 endif
 endif
 
 check_PROGRAMS += ifuncmain7
 ifuncmain7_SOURCES = ifuncmain7.c
 ifuncmain7_DEPENDENCIES = gcctestdir/ld
-ifuncmain7_LDFLAGS = -Bgcctestdir/
 ifuncmain7_LDADD =
 
 check_PROGRAMS += ifuncmain7pic
 ifuncmain7pic: ifuncmain7pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain7pic.o
+ $(LINK) ifuncmain7pic.o
 
 check_PROGRAMS += ifuncmain7pie
 ifuncmain7pie: ifuncmain7pie.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain7pie.o
+ $(LINK) -pie ifuncmain7pie.o
 
 check_PROGRAMS += ifuncvar
 ifuncvar1_pic.o: ifuncvar1.c
@@ -2952,10 +2951,10 @@ ifuncvar1_pic.o: ifuncvar1.c
 ifuncvar2_pic.o: ifuncvar2.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncvar.so: ifuncvar1_pic.o ifuncvar2_pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncvar1_pic.o ifuncvar2_pic.o
+ $(LINK) -shared ifuncvar1_pic.o ifuncvar2_pic.o
 ifuncvar_SOURCES = ifuncvar3.c
 ifuncvar_DEPENDENCIES = gcctestdir/ld ifuncvar.so
-ifuncvar_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ifuncvar_LDFLAGS = -Wl,-R,.
 ifuncvar_LDADD = ifuncvar.so
 
 endif IFUNC
@@ -3003,7 +3002,7 @@ check_PROGRAMS += start_lib_test
 MOSTLYCLEANFILES += libstart_lib_test.a
 start_lib_test: start_lib_test_main.o libstart_lib_test.a start_lib_test_2.o start_lib_test_3.o \
  gcctestdir/ld
- $(LINK) -Bgcctestdir/ -o $@ start_lib_test_main.o -L. -lstart_lib_test \
+ $(LINK) -o $@ start_lib_test_main.o -L. -lstart_lib_test \
  -Wl,--start-lib start_lib_test_2.o start_lib_test_3.o -Wl,--end-lib
 libstart_lib_test.a: start_lib_test_1.o
  $(TEST_AR) rc $@ $^
@@ -3015,9 +3014,9 @@ MOSTLYCLEANFILES += memory_test.stdout memory_test memory_test.o
 memory_test.o: memory_test.s
  $(COMPILE) -o $@ -c $<
 memory_test: memory_test.o gcctestdir/ld $(srcdir)/memory_test.t
- $(LINK) -Bgcctestdir/ -nostartfiles -nostdlib -Wl,-z,max-page-size=0x1000 -Wl,-z,common-page-size=0x1000 -Wl,-T,$(srcdir)/memory_test.t -o $@ memory_test.o
+ $(LINK) -nostartfiles -nostdlib -Wl,-z,max-page-size=0x1000 -Wl,-z,common-page-size=0x1000 -Wl,-T,$(srcdir)/memory_test.t -o $@ memory_test.o
 memory_test.stdout: memory_test
- $(TEST_READELF) -lWS  $< > $@
+ $(TEST_READELF) -lWS $< > $@
 
 # Test INCLUDE directives in linker scripts.
 # The binary isn't runnable, so we just check that we can build it without errors.
@@ -3030,7 +3029,7 @@ memory_test_inc_2.t: $(srcdir)/memory_test_inc_2.t.src
 memory_test_inc_3.t: $(srcdir)/memory_test_inc_3.t.src
  cp $< $@
 memory_test_2: memory_test.o gcctestdir/ld $(srcdir)/memory_test.t memory_test_inc_1.t memory_test_inc_2.t memory_test_inc_3.t
- $(LINK) -Bgcctestdir/ -nostartfiles -nostdlib -Wl,-z,max-page-size=0x1000 -Wl,-z,common-page-size=0x1000 -Wl,-T,$(srcdir)/memory_test.t -o $@ memory_test.o
+ $(LINK) -nostartfiles -nostdlib -Wl,-z,max-page-size=0x1000 -Wl,-z,common-page-size=0x1000 -Wl,-T,$(srcdir)/memory_test.t -o $@ memory_test.o
 
 if HAVE_PUBNAMES
 
@@ -3041,7 +3040,7 @@ 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 $@ $<
 gdb_index_test_1: gdb_index_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+ $(CXXLINK) -Wl,--gdb-index $<
 gdb_index_test_1.stdout: gdb_index_test_1
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 
@@ -3050,18 +3049,18 @@ check_SCRIPTS += gdb_index_test_2.sh
 check_DATA += gdb_index_test_2.stdout
 MOSTLYCLEANFILES += gdb_index_test_2.stdout gdb_index_test_2 gdb_index_test_2_gabi
 gdb_index_test_cdebug.o: gdb_index_test.cc
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -o $@ $<
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections -c -o $@ $<
 gdb_index_test_2: gdb_index_test_cdebug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+ $(CXXLINK) -Wl,--gdb-index $<
 gdb_index_test_2.stdout: gdb_index_test_2
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 check_SCRIPTS += gdb_index_test_2_gabi.sh
 check_DATA += gdb_index_test_2_gabi.stdout
 MOSTLYCLEANFILES += gdb_index_test_2.stdout gdb_index_test_2
 gdb_index_test_cdebug_gabi.o: gdb_index_test.cc
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -o $@ $<
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -o $@ $<
 gdb_index_test_2_gabi: gdb_index_test_cdebug_gabi.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+ $(CXXLINK) -Wl,--gdb-index $<
 gdb_index_test_2_gabi.stdout: gdb_index_test_2_gabi
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 
@@ -3072,7 +3071,7 @@ MOSTLYCLEANFILES += gdb_index_test_3.stdout gdb_index_test_3
 gdb_index_test_3.o: gdb_index_test_3.c
  $(COMPILE) -O0 -g -c -o $@ $<
 gdb_index_test_3: gdb_index_test_3.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,--gdb-index,--fatal-warnings $<
+ $(LINK) -Wl,--gdb-index,--fatal-warnings $<
 gdb_index_test_3.stdout: gdb_index_test_3
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 
@@ -3083,7 +3082,7 @@ 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 $@ $<
 gdb_index_test_4: gdb_index_test_pub.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+ $(CXXLINK) -Wl,--gdb-index $<
 gdb_index_test_4.stdout: gdb_index_test_4
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 
@@ -3094,7 +3093,6 @@ check_PROGRAMS += ehdr_start_test_1
 ehdr_start_test_1_SOURCES = ehdr_start_test.cc
 ehdr_start_test_1_DEPENDENCIES = gcctestdir/ld
 ehdr_start_test_1_CXXFLAGS =
-ehdr_start_test_1_LDFLAGS = -Bgcctestdir/
 ehdr_start_test_1_LDADD =
 
 # Test that __ehdr_start is defined correctly with a weak reference.
@@ -3102,7 +3100,6 @@ check_PROGRAMS += ehdr_start_test_2
 ehdr_start_test_2_SOURCES = ehdr_start_test.cc
 ehdr_start_test_2_DEPENDENCIES = gcctestdir/ld
 ehdr_start_test_2_CXXFLAGS = -DEHDR_START_WEAK
-ehdr_start_test_2_LDFLAGS = -Bgcctestdir/
 ehdr_start_test_2_LDADD =
 
 # Test that __ehdr_start is defined correctly when used with a linker script.
@@ -3110,7 +3107,7 @@ check_PROGRAMS += ehdr_start_test_3
 ehdr_start_test_3_SOURCES = ehdr_start_test.cc
 ehdr_start_test_3_DEPENDENCIES = gcctestdir/ld $(srcdir)/ehdr_start_test.t
 ehdr_start_test_3_CXXFLAGS = -DEHDR_START_WEAK
-ehdr_start_test_3_LDFLAGS = -Bgcctestdir/ -Wl,-T,$(srcdir)/ehdr_start_test.t
+ehdr_start_test_3_LDFLAGS = -Wl,-T,$(srcdir)/ehdr_start_test.t
 ehdr_start_test_3_LDADD =
 
 # Test that __ehdr_start is left undefined when the text segment is not
@@ -3121,7 +3118,7 @@ MOSTLYCLEANFILES += ehdr_start_test_4
 ehdr_start_test_4.syms: ehdr_start_test_4
  $(TEST_NM) ehdr_start_test_4 > $@
 ehdr_start_test_4: ehdr_start_test_4.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,-Ttext=0x100100 $<
+ $(CXXLINK) -Wl,-Ttext=0x100100 $<
 ehdr_start_test_4.o: ehdr_start_test.cc
  $(CXXCOMPILE) -c -DEHDR_START_WEAK -o $@ $<
 
@@ -3130,7 +3127,6 @@ check_PROGRAMS += ehdr_start_test_5
 ehdr_start_test_5_SOURCES = ehdr_start_test.cc ehdr_start_def.cc
 ehdr_start_test_5_DEPENDENCIES = gcctestdir/ld
 ehdr_start_test_5_CXXFLAGS = -DEHDR_START_USER_DEF
-ehdr_start_test_5_LDFLAGS = -Bgcctestdir/
 ehdr_start_test_5_LDADD =
 
 # Test that the --defsym option copies the symbol type and visibility.
@@ -3140,14 +3136,14 @@ MOSTLYCLEANFILES += defsym_test defsym_test.syms
 defsym_test.syms: defsym_test
  $(TEST_READELF) -sW $< > $@
 defsym_test: defsym_test.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,--defsym=bar=foo defsym_test.o
+ $(LINK) -Wl,--defsym=bar=foo defsym_test.o
 defsym_test.o: defsym_test.c
  $(COMPILE) -c -o $@ $<
 
 # Test that the -d option (force common allocation) works correctly.
 check_PROGRAMS += pr20976
 pr20976: pr20976-d.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ pr20976-d.o
+ $(LINK) pr20976-d.o
 pr20976-d.o: pr20976.o gcctestdir/ld
  gcctestdir/ld -r -d -o $@ pr20976.o
 
@@ -3172,31 +3168,31 @@ MOSTLYCLEANFILES += two_file_test_tmp_2.o
 incremental_test_2: two_file_test_1_v1_ndebug.o two_file_test_1_ndebug.o two_file_test_1b_ndebug.o \
     two_file_test_2_ndebug.o two_file_test_main_ndebug.o gcctestdir/ld
  cp -f two_file_test_1_v1_ndebug.o two_file_test_tmp_2.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -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
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o
  @sleep 1
  cp -f two_file_test_1_ndebug.o two_file_test_tmp_2.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -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
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o
 
 check_PROGRAMS += incremental_test_3
 MOSTLYCLEANFILES += two_file_test_tmp_3.o
 incremental_test_3: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
     two_file_test_2.o two_file_test_main.o gcctestdir/ld
  cp -f two_file_test_1b_v1.o two_file_test_tmp_3.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
  @sleep 1
  cp -f two_file_test_1b.o two_file_test_tmp_3.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
 
 check_PROGRAMS += incremental_test_4
 MOSTLYCLEANFILES += incremental_test_4.base two_file_test_tmp_4.o
 incremental_test_4: two_file_test_1.o two_file_test_1b.o two_file_test_2_v1.o \
     two_file_test_2.o two_file_test_main.o gcctestdir/ld
  cp -f two_file_test_2_v1.o two_file_test_tmp_4.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
  mv -f incremental_test_4 incremental_test_4.base
  @sleep 1
  cp -f two_file_test_2.o two_file_test_tmp_4.o
- $(CXXLINK) -Wl,--incremental-update,--incremental-base=incremental_test_4.base -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
+ $(CXXLINK) -Wl,--incremental-update,--incremental-base=incremental_test_4.base -Wl,-z,norelro,-no-pie two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
 
 check_PROGRAMS += incremental_test_5
 MOSTLYCLEANFILES += two_file_test_5.a
@@ -3204,11 +3200,11 @@ incremental_test_5: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
     two_file_test_2.o two_file_test_main.o gcctestdir/ld
  cp -f two_file_test_1b_v1.o two_file_test_tmp_5.o
  $(TEST_AR) rc two_file_test_5.a two_file_test_1.o two_file_test_tmp_5.o two_file_test_2.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_main.o two_file_test_5.a
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_main.o two_file_test_5.a
  @sleep 1
  cp -f two_file_test_1b.o two_file_test_tmp_5.o
  $(TEST_AR) rc two_file_test_5.a two_file_test_1.o two_file_test_tmp_5.o two_file_test_2.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_main.o two_file_test_5.a
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie two_file_test_main.o two_file_test_5.a
 
 # Test the --incremental-unchanged flag with an archive library.
 # The second link should not update the library.
@@ -3218,38 +3214,38 @@ incremental_test_6: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
     two_file_test_2.o two_file_test_main.o gcctestdir/ld
  cp -f two_file_test_1b.o two_file_test_tmp_6.o
  $(TEST_AR) rc two_file_test_6.a two_file_test_1.o two_file_test_tmp_6.o two_file_test_2.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_main.o two_file_test_6.a
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_main.o two_file_test_6.a
  @sleep 1
  cp -f two_file_test_1b_v1.o two_file_test_tmp_6.o
  $(TEST_AR) rc two_file_test_6.a two_file_test_1.o two_file_test_tmp_6.o two_file_test_2.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_main.o -Wl,--incremental-unchanged two_file_test_6.a -Wl,--incremental-unknown
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie two_file_test_main.o -Wl,--incremental-unchanged two_file_test_6.a -Wl,--incremental-unknown
 
 check_PROGRAMS += incremental_copy_test
 incremental_copy_test: copy_test_v1.o copy_test.o copy_test_1.so copy_test_2.so
  cp -f copy_test_v1.o copy_test_tmp.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ -Wl,-R,. -Wl,--no-as-needed copy_test_tmp.o copy_test_1.so copy_test_2.so
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Wl,-R,. -Wl,--no-as-needed copy_test_tmp.o copy_test_1.so copy_test_2.so
  @sleep 1
  cp -f copy_test.o copy_test_tmp.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ -Wl,-R,. -Wl,--no-as-needed copy_test_tmp.o copy_test_1.so copy_test_2.so
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Wl,-R,. -Wl,--no-as-needed copy_test_tmp.o copy_test_1.so copy_test_2.so
 
 check_PROGRAMS += incremental_common_test_1
 incremental_common_test_1: common_test_1_v1.o common_test_1_v2.o gcctestdir/ld
  cp -f common_test_1_v1.o common_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ common_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie common_test_1_tmp.o
  @sleep 1
  cp -f common_test_1_v2.o common_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ common_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie common_test_1_tmp.o
 
 check_PROGRAMS += incremental_comdat_test_1
 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
  cp -f incr_comdat_test_2_v1.o incr_comdat_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie incr_comdat_test_1.o incr_comdat_test_1_tmp.o
  @sleep 1
  cp -f incr_comdat_test_2_v2.o incr_comdat_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie incr_comdat_test_1.o incr_comdat_test_1_tmp.o
  @sleep 1
  cp -f incr_comdat_test_2_v3.o incr_comdat_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie incr_comdat_test_1.o incr_comdat_test_1_tmp.o
 
 endif DEFAULT_TARGET_X86_64
 
@@ -3260,9 +3256,9 @@ exception_x86_64_bnd_test_DEPENDENCIES = gcctestdir/ld exception_x86_64_bnd_1.o
 exception_x86_64_bnd_test_LDFLAGS = $(exception_test_LDFLAGS) -Wl,-z,bndplt
 exception_x86_64_bnd_test_LDADD = exception_x86_64_bnd_1.o exception_x86_64_bnd_2.o
 exception_x86_64_bnd_1.o: exception_test_1.cc gcctestdir/as
- $(CXXCOMPILE) -c -fpic -Bgcctestdir/ -Wa,-madd-bnd-prefix -o $@ $<
+ $(CXXCOMPILE) -c -fpic -Wa,-madd-bnd-prefix -o $@ $<
 exception_x86_64_bnd_2.o: exception_test_2.cc gcctestdir/as
- $(CXXCOMPILE) -c -Bgcctestdir/ -Wa,-madd-bnd-prefix -o $@ $<
+ $(CXXCOMPILE) -c -Wa,-madd-bnd-prefix -o $@ $<
 endif DEFAULT_TARGET_X86_64
 
 if DEFAULT_TARGET_X86_64
@@ -3285,7 +3281,7 @@ endif DEFAULT_TARGET_X86_64
 
 check_PROGRAMS += pr22266
 pr22266: pr22266_main.o pr22266_ar.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ pr22266_main.o pr22266_ar.o
+ $(LINK) pr22266_main.o pr22266_ar.o
 pr22266_ar.o: pr22266_a.o gcctestdir/ld
  gcctestdir/ld -r -T $(srcdir)/pr22266_script.t -o $@ pr22266_a.o
 
diff --git a/gold/testsuite/incremental_test.sh b/gold/testsuite/incremental_test.sh
index e411e0d5ae..21266d5ac3 100755
--- a/gold/testsuite/incremental_test.sh
+++ b/gold/testsuite/incremental_test.sh
@@ -49,7 +49,7 @@ check()
 
 # Extract actual command line from linker's -v output.
 cat incremental_test.cmdline |
-  grep "gcctestdir/ld " |
+  grep "gcctestdir/\(collect-\)\?ld " |
   sed "s/--incremental[-a-z]* //g" |
   cut -d ' ' -f 2- > actual
 

--
Alan Modra
Australia Development Lab, IBM
Reply | Threaded
Open this post in threaded view
|

Re: Make gold testsuite work with CC and CXX specifying -B

Cary Coutant-3
> This is a revised version of the patch I posted at
> https://sourceware.org/ml/binutils/2016-10/msg00039.html
> a patch that didn't receive any comment or review, perhaps due to
> using GNU make features.  This patch doesn't use any modern make
> features.

I went back and looked at that one, in the context of surrounding
email, and realized that I didn't comment on it because I carelessly
thought it was part of a series of patches that you had already
committed. I didn't notice the "OK to apply?" Sorry!

> The patch allows the gold testsuite to pass when using something like
> the following configure line, allowing me to test build binutils with
> some random gcc.  This works for the rest of the binutils testsuite.
> At least, it does if you don't configure your gcc with any of the
> options that force a particular path to as or ld.
>
> gccdir="/home/alan/build/gcc/prev-"
> gccsrc="/home/alan/src/gcc.git"
> gcctarg="x86_64-linux"
> CC="${gccdir}gcc/xgcc -B${gccdir}gcc/" \
> CXX="${gccdir}gcc/xg++ -B${gccdir}gcc/ -I${gccdir}$gcctarg/libstdc++-v3/include -I${gccdir}$gcctarg/libstdc++-v3/include/$gcctarg -I${gccsrc}/libstdc++-v3/libsupc++ -L${gccdir}$gcctarg/libstdc++-v3/src/.libs/" \
> ~/src/binutils-gdb/configure ...
>
> gold's -Bgcctestdir/ option must come before the -B supplied by $CC
> or $CXX, in order to pick up the linker we want to test.  Also when
> using a not-yet-installed gcc, it is necessary to provide a collect-ld
> in gcctestdir/ as otherwise a collect-ld script in -B${gccdir}gcc/
> will be used and the wrong linker tested.

I hate the sed-editing of the compile command line that we have in
there now. I've been wanting to get rid of it, not add to it.

The -D_FORTIFY_SOURCE option, it seems to me, could be undone with a
-U_FORTIFY_SOURCE option, rather than running the whole $(CC) through
sed. I posted a question about that a long time ago, but never got an
answer, and I didn't follow up. I didn't want to make the change
unilaterally since I don't use the option, so I couldn't be sure the
change would work.

The -static-libgcc and -static-libstdc++ options are handled via sed
because we couldn't use -shared-libxxx or -no-static-libxxx options --
I haven't checked whether one of those would work now.

I personally test with alternate gcc installations simply by setting
$PATH before running the test suite, but of course I want things to
work for your way as well. If we need to add another sed operation
into the works, so be it; I guess the points above are now moot.

> Besides this, the patch fixes some bugs: The $COMPILE -D_FORTIFY_SOURCE
> edit was wrong (but worked for usual values)

Ouch! Thanks for fixing that!

> Also, -Bgcctestdir/ in one place makes it less likely a new test will
> be added that accidentally lacks the option.

Agreed. That's been a problem more than once.

> -ld1_LDFLAGS = -Bgcctestdir1/
> +ld1_LINK = `echo $(CXXLD) | sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir1\/\2/'`\
> +       $(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) $(LDFLAGS) -o $@

Can you use the $(editcc) model here that you used in testsuite/Makefile.am?

> +# Put our -B option before any other -B that might be in $CC or $CXX
> +editcc = sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir\/\2/'
> ...
> +editcc1 = $(editcc) -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'

This makes me uncomfortable -- tacking on an additional -e option like
that. What if $(editcc) is changed so that you can't just add another
-e option to the end? How about taking "sed" out of editcc, and
defining these so you can write something like:

> +CCLD = `echo $(CC) | sed $(editcc1) $(editcc2)`

and

> +CXXLINK_S = `echo $(CXXLINK1) | sed $(editcc1) $(editcc2) $(editcc3)`

-cary
Reply | Threaded
Open this post in threaded view
|

Re: Make gold testsuite work with CC and CXX specifying -B

Alan Modra-3
On Wed, Nov 07, 2018 at 10:39:15AM -0800, Cary Coutant wrote:
> > gold's -Bgcctestdir/ option must come before the -B supplied by $CC
> > or $CXX, in order to pick up the linker we want to test.  Also when
> > using a not-yet-installed gcc, it is necessary to provide a collect-ld
> > in gcctestdir/ as otherwise a collect-ld script in -B${gccdir}gcc/
> > will be used and the wrong linker tested.
>
> I hate the sed-editing of the compile command line that we have in
> there now. I've been wanting to get rid of it, not add to it.

I'd much rather be rid of it too.  Well, what I particularly dislike
is seeing make echo the editing on every command.  When you're
tracking down a failure and want to re-run a particular compile line
again, perhaps with a few extra options, cutting and pasting make
output lines containing backticks into a shell is horrible.  It would
be a lot better to keep any edits private to make, and not have to use
echo.

> The -D_FORTIFY_SOURCE option, it seems to me, could be undone with a
> -U_FORTIFY_SOURCE option, rather than running the whole $(CC) through
> sed. I posted a question about that a long time ago, but never got an
> answer, and I didn't follow up. I didn't want to make the change
> unilaterally since I don't use the option, so I couldn't be sure the
> change would work.
>
> The -static-libgcc and -static-libstdc++ options are handled via sed
> because we couldn't use -shared-libxxx or -no-static-libxxx options --
> I haven't checked whether one of those would work now.
>
> I personally test with alternate gcc installations simply by setting
> $PATH before running the test suite, but of course I want things to
> work for your way as well. If we need to add another sed operation
> into the works, so be it; I guess the points above are now moot.

One day, perhaps we'll require GNU make to build binutils, like gcc
does currently.  We'd get make variables as opposed to macros, and
text editing functions that are much nicer to use than `echo | sed`.

> > -ld1_LDFLAGS = -Bgcctestdir1/
> > +ld1_LINK = `echo $(CXXLD) | sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir1\/\2/'`\
> > +       $(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) $(LDFLAGS) -o $@
>
> Can you use the $(editcc) model here that you used in testsuite/Makefile.am?

OK.

> > +# Put our -B option before any other -B that might be in $CC or $CXX
> > +editcc = sed -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir\/\2/'
> > ...
> > +editcc1 = $(editcc) -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'
>
> This makes me uncomfortable -- tacking on an additional -e option like
> that. What if $(editcc) is changed so that you can't just add another
> -e option to the end? How about taking "sed" out of editcc, and
> defining these so you can write something like:
>
> > +CCLD = `echo $(CC) | sed $(editcc1) $(editcc2)`
>
> and
>
> > +CXXLINK_S = `echo $(CXXLINK1) | sed $(editcc1) $(editcc2) $(editcc3)`

Done too.  This is the patch I'm about to commit.

        * Makefile.am (gcctestdir1/ld): Use $@ and absolute paths.
        (gcctestdir1/collect-ld): New.
        (ld1_DEPENDENCIES): Add gcctestdir1/collect-ld.
        (ld1_LDFLAGS): Remove -Bgcctestdir1/.
        (editcc1, ld1_LINK): Define.
        (gcctestdir2/ld, gcctestdir2/collect-ld, ld2_DEPENDENCIES),
        (ld2_LDFLAGS, editcc2, ld2_LINK),
        (ld1_r_DEPENDENCIES, ld1_r_LDFLAGS, ld1_r_LINK),
        (gcctestdir2-r/ld, gcctestdir2-r/collect-ld, ld2_r_DEPENDENCIES),
        (ld2_r_LDFLAGS, editcc2r, ld2_r_LINK),
        (gcctestdir3/ld, gcctestdir3/collect-ld, ld3_DEPENDENCIES),
        (ld3_LDFLAGS, editcc3, ld3_LINK),
        (gcctestdir4/ld, gcctestdir4/collect-ld, ld4_DEPENDENCIES),
        (ld4_LDFLAGS, editcc4, ld4_LINK): Similarly.
        * Makefile.in: Regenerate.
        * testsuite/Makefile.am (editcc): Define sed command to put
        our -B option first.  Remove other occurrences of -Bgcctestdir/
        throughout file.
        (editcc1): Define for -D_FORTIFY_SOURCE stripping.
        (editcc2): Define for -static-libgcc/libstdc++ stripping.
        (LINK1, CXXLINK1): Don't use CCLD or CXXLD.
        (CCLD, CXXLD, COMPILE, LINK, CXXCOMPILE, CXXLINK, CXXLINK_S): Define
        using editcc macros.
        (gcctestdir/collect-ld): New rule, add as a dependency of..
        (gcctestdir/ld): ..this.  Use $@ and abs_top_buildir.
        (gcctestdir/as): Use $@.
        * testsuite/Makefile.in: Regenerate.
        * testsuite/incremental_test.sh (actual): Match collect-ld too.

diff --git a/gold/Makefile.am b/gold/Makefile.am
index fd0a359185..dc05b5f3cf 100644
--- a/gold/Makefile.am
+++ b/gold/Makefile.am
@@ -260,25 +260,29 @@ po/POTFILES.in: @MAINT@ Makefile
 if GCC
 if NATIVE_LINKER
 
-gcctestdir1/ld: ld-new
+gcctestdir1/ld gcctestdir1/collect-ld: ld-new
  test -d gcctestdir1 || mkdir -p gcctestdir1
- rm -f gcctestdir1/ld
- (cd gcctestdir1 && $(LN_S) ../ld-new ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
 
 ld1_SOURCES = $(sources_var)
-ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld
+ld1_DEPENDENCIES = $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
 ld1_LDADD = $(ldadd_var)
-ld1_LDFLAGS = -Bgcctestdir1/
+editcc1 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir1\/\2/'
+ld1_LINK = `echo $(CXXLD) | sed $(editcc1)`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) $(LDFLAGS) -o $@
 
-gcctestdir2/ld: ld1
+gcctestdir2/ld gcctestdir2/collect-ld: ld1
  test -d gcctestdir2 || mkdir -p gcctestdir2
- rm -f gcctestdir2/ld
- (cd gcctestdir2 && $(LN_S) ../ld1 ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld1 $@
 
 ld2_SOURCES = $(sources_var)
-ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld
+ld2_DEPENDENCIES = $(deps_var) gcctestdir2/ld gcctestdir2/collect-ld
 ld2_LDADD = $(ldadd_var)
-ld2_LDFLAGS = -Bgcctestdir2/
+editcc2 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2\/\2/'
+ld2_LINK = `echo $(CXXLD) | sed $(editcc2)`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld2_LDFLAGS) $(LDFLAGS) -o $@
 
 bootstrap-test: ld2
  rm -f $@
@@ -290,22 +294,25 @@ libgold-1-r.o: gcctestdir1/ld libgold.a
  gcctestdir1/ld -o $@ -r --whole-archive libgold.a
 
 ld1_r_SOURCES = $(sources_var)
-ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld
+ld1_r_DEPENDENCIES = libgold-1-r.o $(deps_var) gcctestdir1/ld gcctestdir1/collect-ld
 ld1_r_LDADD = libgold-1-r.o $(ldadd_var)
-ld1_r_LDFLAGS = -Bgcctestdir1/
+ld1_r_LINK = `echo $(CXXLD) | sed $(editcc1)`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
 
-gcctestdir2-r/ld: ld1-r
+gcctestdir2-r/ld gcctestdir2-r/collect-ld: ld1-r
  test -d gcctestdir2-r || mkdir -p gcctestdir2-r
- rm -f gcctestdir2-r/ld
- (cd gcctestdir2-r && $(LN_S) ../ld1-r ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld1-r $@
 
 libgold-2-r.o: gcctestdir2-r/ld libgold.a
  gcctestdir2-r/ld -o $@ -r --whole-archive libgold.a
 
 ld2_r_SOURCES = $(sources_var)
-ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld
+ld2_r_DEPENDENCIES = libgold-2-r.o $(deps_var) gcctestdir2-r/ld gcctestdir2-r/collect-ld
 ld2_r_LDADD = libgold-2-r.o $(ldadd_var)
-ld2_r_LDFLAGS = -Bgcctestdir2-r/
+editcc2r = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir2-r\/\2/'
+ld2_r_LINK = `echo $(CXXLD) | sed $(editcc2r)`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
 
 bootstrap-test-r: ld2-r
  rm -f $@
@@ -327,30 +334,34 @@ check_PROGRAMS += ld4
 TESTS += bootstrap-test-treehash-chunksize
 MOSTLYCLEANFILES += bootstrap-test-treehash-chunksize
 
-gcctestdir3/ld: ld-new
+gcctestdir3/ld gcctestdir3/collect-ld: ld-new
  test -d gcctestdir3 || mkdir -p gcctestdir3
- rm -f gcctestdir3/ld
- (cd gcctestdir3 && $(LN_S) ../ld-new ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
 
 ld3_SOURCES = $(sources_var)
-ld3_DEPENDENCIES = $(deps_var) gcctestdir3/ld
+ld3_DEPENDENCIES = $(deps_var) gcctestdir3/ld gcctestdir3/collect-ld
 ld3_LDADD = $(ldadd_var)
-ld3_LDFLAGS = -Bgcctestdir3/
+editcc3 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir3\/\2/'
+ld3_LINK = `echo $(CXXLD) | sed $(editcc3)`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld3_LDFLAGS) $(LDFLAGS) -o $@
 
-gcctestdir4/ld: ld-new
+gcctestdir4/ld gcctestdir4/collect-ld: ld-new
  test -d gcctestdir4 || mkdir -p gcctestdir4
- rm -f gcctestdir4/ld
- (cd gcctestdir4 && $(LN_S) ../ld-new ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
 
 ld4_SOURCES = $(sources_var)
-ld4_DEPENDENCIES = $(deps_var) gcctestdir4/ld
+ld4_DEPENDENCIES = $(deps_var) gcctestdir4/ld gcctestdir4/collect-ld
 ld4_LDADD = $(ldadd_var)
-ld4_LDFLAGS = -Bgcctestdir4/
-
-ld1_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
-ld2_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
-ld3_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
-ld4_LDFLAGS += -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12346 -Wl,--build-id-min-file-size-for-treehash=0
+editcc4 = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir4\/\2/'
+ld4_LINK = `echo $(CXXLD) | sed $(editcc4)`\
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(ld4_LDFLAGS) $(LDFLAGS) -o $@
+
+ld1_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+ld2_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+ld3_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12345 -Wl,--build-id-min-file-size-for-treehash=0
+ld4_LDFLAGS = -Wl,--build-id=tree -Wl,--build-id-chunk-size-for-treehash=12346 -Wl,--build-id-min-file-size-for-treehash=0
 
 if THREADS
 
diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
index f4c1f4686f..b70a7d5a9f 100644
--- a/gold/testsuite/Makefile.am
+++ b/gold/testsuite/Makefile.am
@@ -32,29 +32,37 @@ endif
 
 # COMPILE1, LINK1, CXXCOMPILE1, CXXLINK1 are renamed from COMPILE, LINK,
 # CXXCOMPILE and CXXLINK generated by automake 1.11.1.  FIXME: they should
-# be updated if they are different from automake used by gold.
+# be updated if they differ in newer automake used by gold, but note the
+# addition of OPT_NO_PLUGINS and use of CC and CXX in LINK1 and CXXLINK1.
 COMPILE1 = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
  $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LINK1 = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(OPT_NO_PLUGINS) \
+LINK1 = $(CC) $(AM_CFLAGS) $(CFLAGS) $(OPT_NO_PLUGINS) \
  $(AM_LDFLAGS) $(LDFLAGS) -o $@
 CXXCOMPILE1 = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
  $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLINK1 = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(OPT_NO_PLUGINS) \
+CXXLINK1 = $(CXX) $(AM_CXXFLAGS) $(CXXFLAGS) $(OPT_NO_PLUGINS) \
  $(AM_LDFLAGS) $(LDFLAGS) -o $@
 
+# Put our -B option before any other -B that might be in $CC or $CXX
+editcc = -e 's/\([^ ]*\)\(.*\)/\1 -Bgcctestdir\/\2/'
+
 # Strip out -Wp,-D_FORTIFY_SOURCE=, which is irrelevant for the gold
-# testsuite and incompatible with -O0 used in gold tests, from
-# COMPILE, LINK, CXXCOMPILE and CXXLINK.
-COMPILE = `echo $(COMPILE1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9[0-9]]*//'`
-LINK = `echo $(LINK1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'`
-CXXCOMPILE = `echo $(CXXCOMPILE1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'`
-CXXLINK = `echo $(CXXLINK1) | sed -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'`
+# testsuite and incompatible with -O0 used in gold tests.
+editcc1 = -e 's/-Wp,-D_FORTIFY_SOURCE=[0-9][0-9]*//'
+
+CCLD = `echo $(CC) | sed $(editcc)`
+CXXLD = `echo $(CXX) | sed $(editcc)`
+COMPILE = `echo $(COMPILE1) | sed $(editcc) $(editcc1)`
+LINK = `echo $(LINK1) | sed $(editcc) $(editcc1)`
+CXXCOMPILE = `echo $(CXXCOMPILE1) | sed $(editcc) $(editcc1)`
+CXXLINK = `echo $(CXXLINK1) | sed $(editcc) $(editcc1)`
 
 # Strip out -static-libgcc and -static-libstdc++ options, for tests
 # that must have these libraries linked dynamically.  The -shared-libgcc
 # option does not work correctly, and there is no -shared-libstdc++ option.
 # (See GCC PR 55781 and PR 55782.)
-CXXLINK_S = `echo $(CXXLINK1) | sed -e 's/-static-lib\\(gcc\\|stdc++\\)//g'`
+editcc2 = -e 's/-static-lib\(gcc\|stdc++\) *//g'
+CXXLINK_S = `echo $(CXXLINK1) | sed $(editcc) $(editcc1) $(editcc2)`
 
 TEST_READELF = $(top_builddir)/../binutils/readelf
 TEST_OBJDUMP = $(top_builddir)/../binutils/objdump
@@ -114,16 +122,22 @@ if GCC
 
 # Infrastucture needed for the unittests: a directory where the linker
 # is named 'ld'.  This is because the -B flag appends 'ld' to its arg.
-gcctestdir/ld: ../ld-new
+gcctestdir/ld: ../ld-new gcctestdir/collect-ld
  test -d gcctestdir || mkdir -p gcctestdir
- rm -f gcctestdir/ld
- (cd gcctestdir && $(LN_S) ../../ld-new ld)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
+
+# Needed when using uninstalled compiler
+gcctestdir/collect-ld: ../ld-new
+ test -d gcctestdir || mkdir -p gcctestdir
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/ld-new $@
 
 # Some tests require the latest features of an in-tree assembler.
 gcctestdir/as: $(TEST_AS)
  test -d gcctestdir || mkdir -p gcctestdir
- rm -f gcctestdir/as
- (cd gcctestdir && $(LN_S) $(abs_top_builddir)/../gas/as-new as)
+ rm -f $@
+ $(LN_S) $(abs_top_builddir)/../gas/as-new $@
 
 endif GCC
 
@@ -188,7 +202,7 @@ incremental_test_1.o: incremental_test_1.c
 incremental_test_2.o: incremental_test_2.c
  $(COMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 incremental_test: incremental_test_1.o incremental_test_2.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,--incremental-full -Wl,-z,norelro,-no-pie incremental_test_1.o incremental_test_2.o -Wl,-debug 2> incremental_test.cmdline
+ $(LINK) -Wl,--incremental-full -Wl,-z,norelro,-no-pie incremental_test_1.o incremental_test_2.o -Wl,-debug 2> incremental_test.cmdline
 incremental_test.stdout: incremental_test ../incremental-dump
  ../incremental-dump incremental_test > $@
 
@@ -200,7 +214,7 @@ gc_comdat_test_1.o: gc_comdat_test_1.cc
 gc_comdat_test_2.o: gc_comdat_test_2.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 gc_comdat_test: gc_comdat_test_1.o gc_comdat_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_comdat_test_1.o gc_comdat_test_2.o
+ $(CXXLINK) -Wl,--gc-sections gc_comdat_test_1.o gc_comdat_test_2.o
 gc_comdat_test.stdout: gc_comdat_test
  $(TEST_NM) -C gc_comdat_test > gc_comdat_test.stdout
 
@@ -210,7 +224,7 @@ MOSTLYCLEANFILES += gc_tls_test
 gc_tls_test.o: gc_tls_test.cc
  $(CXXCOMPILE) -O0 -c -g -o $@ $<
 gc_tls_test:gc_tls_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_tls_test.o
+ $(CXXLINK) -Wl,--gc-sections gc_tls_test.o
 gc_tls_test.stdout: gc_tls_test
  $(TEST_NM) -C gc_tls_test > gc_tls_test.stdout
 
@@ -220,7 +234,7 @@ MOSTLYCLEANFILES += gc_orphan_section_test
 gc_orphan_section_test.o: gc_orphan_section_test.cc
  $(CXXCOMPILE) -O0 -c -g -o $@ $<
 gc_orphan_section_test:gc_orphan_section_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_orphan_section_test.o
+ $(CXXLINK) -Wl,--gc-sections gc_orphan_section_test.o
 gc_orphan_section_test.stdout: gc_orphan_section_test
  $(TEST_NM) gc_orphan_section_test > gc_orphan_section_test.stdout
 
@@ -230,7 +244,7 @@ MOSTLYCLEANFILES += pr14265
 pr14265.o: pr14265.c
  $(COMPILE) -O0 -c -o $@ $<
 pr14265: pr14265.o gcctestdir/ld $(srcdir)/pr14265.t
- $(LINK) -Bgcctestdir/ -Wl,--gc-sections -Wl,-T,$(srcdir)/pr14265.t -o $@ $<
+ $(LINK) -Wl,--gc-sections -Wl,-T,$(srcdir)/pr14265.t -o $@ $<
 pr14265.stdout: pr14265
  $(TEST_NM) --format=bsd --numeric-sort $< > $@
 
@@ -240,7 +254,7 @@ MOSTLYCLEANFILES += pr20717
 pr20717.o: pr20717.c
  $(COMPILE) -O0 -ffunction-sections -c -o $@ $<
 pr20717: pr20717.o gcctestdir/ld $(srcdir)/pr20717.t
- $(LINK) -Bgcctestdir/ -Wl,--gc-sections -Wl,-T,$(srcdir)/pr20717.t -o $@ $<
+ $(LINK) -Wl,--gc-sections -Wl,-T,$(srcdir)/pr20717.t -o $@ $<
 pr20717.stdout: pr20717
  $(TEST_NM) $< > $@
 
@@ -250,7 +264,7 @@ 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
+ $(LINK) -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 > $@
 
@@ -260,7 +274,7 @@ MOSTLYCLEANFILES += icf_test icf_test.map
 icf_test.o: icf_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 icf_test: icf_test.o gcctestdir/ld
- $(CXXLINK) -o icf_test -Bgcctestdir/ -Wl,--icf=all,-Map,icf_test.map icf_test.o
+ $(CXXLINK) -o icf_test -Wl,--icf=all,-Map,icf_test.map icf_test.o
 icf_test.map: icf_test
  @touch icf_test.map
 
@@ -270,7 +284,7 @@ MOSTLYCLEANFILES += icf_keep_unique_test
 icf_keep_unique_test.o: icf_keep_unique_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 icf_keep_unique_test: icf_keep_unique_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all -Wl,--keep-unique,_Z11unique_funcv icf_keep_unique_test.o
+ $(CXXLINK) -Wl,--icf=all -Wl,--keep-unique,_Z11unique_funcv icf_keep_unique_test.o
 icf_keep_unique_test.stdout: icf_keep_unique_test
  $(TEST_NM) -C $< > $@
 
@@ -280,7 +294,7 @@ MOSTLYCLEANFILES += icf_safe_test icf_safe_test.map
 icf_safe_test.o: icf_safe_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 icf_safe_test: icf_safe_test.o gcctestdir/ld
- $(CXXLINK) -o icf_safe_test -Bgcctestdir/ -Wl,--icf=safe,-Map,icf_safe_test.map icf_safe_test.o
+ $(CXXLINK) -o icf_safe_test -Wl,--icf=safe,-Map,icf_safe_test.map icf_safe_test.o
 icf_safe_test.map: icf_safe_test
  @touch icf_safe_test.map
 icf_safe_test_1.stdout: icf_safe_test
@@ -294,7 +308,7 @@ MOSTLYCLEANFILES += icf_safe_pie_test icf_safe_pie_test.map
 icf_safe_pie_test.o: icf_safe_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIE -g -o $@ $<
 icf_safe_pie_test: icf_safe_pie_test.o gcctestdir/ld
- $(CXXLINK) -o icf_safe_pie_test -Bgcctestdir/ -Wl,--icf=safe,-Map,icf_safe_pie_test.map icf_safe_pie_test.o -pie
+ $(CXXLINK) -o icf_safe_pie_test -Wl,--icf=safe,-Map,icf_safe_pie_test.map icf_safe_pie_test.o -pie
 icf_safe_pie_test.map: icf_safe_pie_test
  @touch icf_safe_pie_test.map
 icf_safe_pie_test_1.stdout: icf_safe_pie_test
@@ -308,7 +322,7 @@ MOSTLYCLEANFILES += icf_safe_so_test icf_safe_so_test.map
 icf_safe_so_test.o: icf_safe_so_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
 icf_safe_so_test: icf_safe_so_test.o gcctestdir/ld
- $(CXXLINK) -o icf_safe_so_test -Bgcctestdir/ -Wl,--icf=safe,-Map,icf_safe_so_test.map icf_safe_so_test.o -fPIC -shared
+ $(CXXLINK) -o icf_safe_so_test -Wl,--icf=safe,-Map,icf_safe_so_test.map icf_safe_so_test.o -fPIC -shared
 icf_safe_so_test.map:
  @touch icf_safe_so_test.map
 icf_safe_so_test_1.stdout: icf_safe_so_test
@@ -320,13 +334,13 @@ check_SCRIPTS += final_layout.sh
 check_DATA += final_layout.stdout
 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 $@ $<
+ $(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_script.lds:
  (echo "SECTIONS { .text : { *(.text*) } .got : { *(.got .toc) } .sbss : { *(.sbss*) } .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
+ $(CXXLINK) -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 --synthetic final_layout > final_layout.stdout
 
@@ -336,9 +350,9 @@ 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
+ $(CXXLINK) text_section_grouping.o
 text_section_no_grouping: text_section_grouping.o gcctestdir/ld
- $(CXXLINK)  -Bgcctestdir/ -Wl,--no-text-reorder text_section_grouping.o
+ $(CXXLINK) -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
@@ -350,7 +364,7 @@ MOSTLYCLEANFILES += section_sorting_name
 section_sorting_name.o: section_sorting_name.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 section_sorting_name: section_sorting_name.o gcctestdir/ld
- $(CXXLINK)  -Bgcctestdir/ -Wl,--sort-section=name section_sorting_name.o
+ $(CXXLINK) -Wl,--sort-section=name section_sorting_name.o
 section_sorting_name.stdout: section_sorting_name
  $(TEST_NM) -n --synthetic section_sorting_name > section_sorting_name.stdout
 
@@ -360,7 +374,7 @@ MOSTLYCLEANFILES += text_unlikely_segment
 text_unlikely_segment.o: text_unlikely_segment.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 text_unlikely_segment: text_unlikely_segment.o gcctestdir/ld
- $(CXXLINK)  -Bgcctestdir/ -Wl,-z,text-unlikely-segment text_unlikely_segment.o
+ $(CXXLINK) -Wl,-z,text-unlikely-segment text_unlikely_segment.o
 text_unlikely_segment_readelf.stdout: text_unlikely_segment
  $(TEST_READELF) -Wl $< >$@
 
@@ -370,7 +384,7 @@ MOSTLYCLEANFILES += keep_text_section_prefix
 keep_text_section_prefix.o: keep_text_section_prefix.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
 keep_text_section_prefix: keep_text_section_prefix.o gcctestdir/ld
- $(CXXLINK)  -Bgcctestdir/ -Wl,-z,keep-text-section-prefix keep_text_section_prefix.o
+ $(CXXLINK) -Wl,-z,keep-text-section-prefix keep_text_section_prefix.o
 keep_text_section_prefix_readelf.stdout: keep_text_section_prefix
  $(TEST_READELF) -Wl $< >$@
 keep_text_section_prefix_nm.stdout: keep_text_section_prefix
@@ -381,7 +395,7 @@ MOSTLYCLEANFILES += icf_virtual_function_folding_test icf_virtual_function_foldi
 icf_virtual_function_folding_test.o: icf_virtual_function_folding_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIE -g -o $@ $<
 icf_virtual_function_folding_test: icf_virtual_function_folding_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_virtual_function_folding_test.o -pie
+ $(CXXLINK) -Wl,--icf=all icf_virtual_function_folding_test.o -pie
 
 check_SCRIPTS += icf_preemptible_functions_test.sh
 check_DATA += icf_preemptible_functions_test.stdout
@@ -389,7 +403,7 @@ MOSTLYCLEANFILES += icf_preemptible_functions_test
 icf_preemptible_functions_test.o: icf_preemptible_functions_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
 icf_preemptible_functions_test: icf_preemptible_functions_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_preemptible_functions_test.o -fPIC -shared
+ $(CXXLINK) -Wl,--icf=all icf_preemptible_functions_test.o -fPIC -shared
 icf_preemptible_functions_test.stdout: icf_preemptible_functions_test
  $(TEST_NM) icf_preemptible_functions_test > icf_preemptible_functions_test.stdout
 
@@ -399,7 +413,7 @@ MOSTLYCLEANFILES += icf_string_merge_test
 icf_string_merge_test.o: icf_string_merge_test.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
 icf_string_merge_test: icf_string_merge_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_string_merge_test.o
+ $(CXXLINK) -Wl,--icf=all icf_string_merge_test.o
 icf_string_merge_test.stdout: icf_string_merge_test
  $(TEST_NM) icf_string_merge_test > icf_string_merge_test.stdout
 
@@ -411,14 +425,13 @@ icf_sht_rel_addend_test_1.o: icf_sht_rel_addend_test_1.cc
 icf_sht_rel_addend_test_2.o: icf_sht_rel_addend_test_2.cc
  $(CXXCOMPILE) -O0 -c -ffunction-sections -fPIC -g -o $@ $<
 icf_sht_rel_addend_test: icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o
+ $(CXXLINK) -Wl,--icf=all icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o
 icf_sht_rel_addend_test.stdout: icf_sht_rel_addend_test
  $(TEST_NM) icf_sht_rel_addend_test > icf_sht_rel_addend_test.stdout
 
 check_PROGRAMS += large_symbol_alignment
 large_symbol_alignment_SOURCES = large_symbol_alignment.cc
 large_symbol_alignment_DEPENDENCIES = gcctestdir/ld
-large_symbol_alignment_LDFLAGS = -Bgcctestdir/
 large_symbol_alignment_LDADD =
 
 check_SCRIPTS += merge_string_literals.sh
@@ -429,7 +442,7 @@ merge_string_literals_1.o: merge_string_literals_1.cc
 merge_string_literals_2.o: merge_string_literals_2.cc
  $(CXXCOMPILE) -O2 -c -fPIC -g -o $@ $<
 merge_string_literals: merge_string_literals_1.o merge_string_literals_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ merge_string_literals_1.o merge_string_literals_2.o -O2 -shared -nostdlib
+ $(CXXLINK) merge_string_literals_1.o merge_string_literals_2.o -O2 -shared -nostdlib
 merge_string_literals.stdout: merge_string_literals
  $(TEST_OBJDUMP) -s -j.rodata merge_string_literals > merge_string_literals.stdout
 
@@ -438,15 +451,15 @@ check_PROGRAMS += basic_pic_test
 basic_test.o: basic_test.cc
  $(CXXCOMPILE) -O0 -c -o $@ $<
 basic_test: basic_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ basic_test.o
+ $(CXXLINK) basic_test.o
 
 check_PROGRAMS += eh_test
 eh_test_a.o: eh_test_a.cc
  $(CXXCOMPILE) -O0 -c -o $@ $<
 eh_test_b.o: eh_test_b.cc
  $(CXXCOMPILE) -O0 -c -o $@ $<
-eh_test: eh_test_a.o eh_test_b.o  gcctestdir/ld
- $(CXXLINK_S) -Bgcctestdir/ eh_test_a.o eh_test_b.o
+eh_test: eh_test_a.o eh_test_b.o gcctestdir/ld
+ $(CXXLINK_S) eh_test_a.o eh_test_b.o
 
 check_SCRIPTS += eh_test_2.sh
 check_DATA += eh_test_2.sects
@@ -454,37 +467,36 @@ MOSTLYCLEANFILES += eh_test_2 eh_test_2.sects
 eh_test_r.o: eh_test_a.o eh_test_b.o gcctestdir/ld
  gcctestdir/ld -r -o $@ eh_test_a.o eh_test_b.o
 eh_test_2: eh_test_r.o gcctestdir/ld
- $(CXXLINK_S) -Bgcctestdir/ -Wl,--eh-frame-hdr eh_test_r.o
+ $(CXXLINK_S) -Wl,--eh-frame-hdr eh_test_r.o
 eh_test_2.sects: eh_test_2
  $(TEST_READELF) -SW $< >$@ 2>/dev/null
 
 if HAVE_STATIC
 check_PROGRAMS += basic_static_test
 basic_static_test: basic_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -static basic_test.o
+ $(CXXLINK) -static basic_test.o
 endif
 
 basic_pic_test.o: basic_test.cc
  $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
 basic_pic_test: basic_pic_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ basic_pic_test.o
+ $(CXXLINK) basic_pic_test.o
 
 if HAVE_STATIC
 check_PROGRAMS += basic_static_pic_test
 basic_static_pic_test: basic_pic_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -static basic_pic_test.o
+ $(CXXLINK) -static basic_pic_test.o
 endif
 
 check_PROGRAMS += basic_pie_test
 basic_pie_test.o: basic_test.cc
  $(CXXCOMPILE) -O0 -c -fpie -o $@ $<
 basic_pie_test: basic_pie_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -pie basic_pie_test.o
+ $(CXXLINK) -pie basic_pie_test.o
 
 check_PROGRAMS += constructor_test
 constructor_test_SOURCES = constructor_test.cc
 constructor_test_DEPENDENCIES = gcctestdir/ld
-constructor_test_LDFLAGS = -Bgcctestdir/
 constructor_test_LDADD =
 
 if HAVE_STATIC
@@ -504,7 +516,6 @@ two_file_test_SOURCES = \
  two_file_test_main.cc \
  two_file_test.h
 two_file_test_DEPENDENCIES = gcctestdir/ld
-two_file_test_LDFLAGS = -Bgcctestdir/
 two_file_test_LDADD =
 
 if HAVE_STATIC
@@ -518,7 +529,6 @@ endif
 two_file_pic_test_SOURCES = two_file_test_main.cc
 two_file_pic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
-two_file_pic_test_LDFLAGS = -Bgcctestdir/
 two_file_pic_test_LDADD = two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
 
 
@@ -536,50 +546,50 @@ two_file_test_1b_pic.o: two_file_test_1b.cc
 two_file_test_2_pic.o: two_file_test_2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 two_file_shared_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o
+ $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_1b_pic.o
 two_file_shared_2.so: two_file_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2_pic.o
+ $(CXXLINK) -shared two_file_test_2_pic.o
 two_file_shared.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
+ $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2_pic.o
 
 two_file_shared_1_test_SOURCES = two_file_test_2.cc two_file_test_main.cc
 two_file_shared_1_test_DEPENDENCIES = gcctestdir/ld two_file_shared_1.so
-two_file_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_1_test_LDFLAGS = -Wl,-R,.
 two_file_shared_1_test_LDADD = two_file_shared_1.so
 
 two_file_shared_2_test_SOURCES = two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
 two_file_shared_2_test_DEPENDENCIES = gcctestdir/ld two_file_shared_2.so
-two_file_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_2_test_LDFLAGS = -Wl,-R,.
 two_file_shared_2_test_LDADD = two_file_shared_2.so
 
 two_file_shared_1_pic_2_test_SOURCES = two_file_test_main.cc
 two_file_shared_1_pic_2_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_2.so two_file_test_1_pic.o two_file_test_1b_pic.o
-two_file_shared_1_pic_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_1_pic_2_test_LDFLAGS = -Wl,-R,.
 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
 
 two_file_shared_2_pic_1_test_SOURCES = two_file_test_main.cc
 two_file_shared_2_pic_1_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1.so two_file_test_2_pic.o
-two_file_shared_2_pic_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_2_pic_1_test_LDFLAGS = -Wl,-R,.
 two_file_shared_2_pic_1_test_LDADD = two_file_test_2_pic.o two_file_shared_1.so
 
 two_file_same_shared_test_SOURCES = two_file_test_main.cc
 two_file_same_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared.so
-two_file_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_same_shared_test_LDFLAGS = -Wl,-R,.
 two_file_same_shared_test_LDADD = two_file_shared.so
 
 two_file_separate_shared_12_test_SOURCES = two_file_test_main.cc
 two_file_separate_shared_12_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
-two_file_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_separate_shared_12_test_LDFLAGS = -Wl,-R,.
 two_file_separate_shared_12_test_LDADD = \
  two_file_shared_1.so two_file_shared_2.so
 
 two_file_separate_shared_21_test_SOURCES = two_file_test_main.cc
 two_file_separate_shared_21_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1.so two_file_shared_2.so
-two_file_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_separate_shared_21_test_LDFLAGS = -Wl,-R,.
 two_file_separate_shared_21_test_LDADD = \
  two_file_shared_2.so two_file_shared_1.so
 
@@ -587,7 +597,7 @@ check_PROGRAMS += two_file_relocatable_test
 two_file_relocatable_test_SOURCES = two_file_test_main.cc
 two_file_relocatable_test_DEPENDENCIES = \
  gcctestdir/ld two_file_relocatable.o
-two_file_relocatable_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_relocatable_test_LDFLAGS = -Wl,-R,.
 two_file_relocatable_test_LDADD = two_file_relocatable.o
 two_file_relocatable.o: gcctestdir/ld two_file_test_1.o two_file_test_1b.o two_file_test_2.o
  gcctestdir/ld -r -o $@ two_file_test_1.o two_file_test_1b.o two_file_test_2.o
@@ -603,23 +613,23 @@ two_file_test_main_pie.o: two_file_test_main.cc
  $(CXXCOMPILE) -c -fpie -o $@ $<
 two_file_pie_test: two_file_test_1_pie.o two_file_test_1b_pie.o \
  two_file_test_2_pie.o two_file_test_main_pie.o gcctestdir/ld
- $(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
+ $(CXXLINK) -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
 
 check_PROGRAMS += pie_copyrelocs_test
 pie_copyrelocs_test_SOURCES = pie_copyrelocs_test.cc
 pie_copyrelocs_test_DEPENDENCIES = gcctestdir/ld pie_copyrelocs_shared_test.so
 pie_copyrelocs_test_CXXFLAGS = -fno-exceptions -fno-asynchronous-unwind-tables
-pie_copyrelocs_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -pie
+pie_copyrelocs_test_LDFLAGS = -Wl,-R,. -pie
 pie_copyrelocs_test_LDADD = pie_copyrelocs_shared_test.so
 pie_copyrelocs_shared_test.o: pie_copyrelocs_shared_test.cc
  $(CXXCOMPILE) -O2 -fpic -c -o $@ $<
 pie_copyrelocs_shared_test.so: pie_copyrelocs_shared_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared pie_copyrelocs_shared_test.o
+ $(CXXLINK) -shared pie_copyrelocs_shared_test.o
 
 check_PROGRAMS += weak_unresolved_symbols_test
 weak_unresolved_symbols_test_SOURCES = weak_unresolved_symbols_test.cc
 weak_unresolved_symbols_test_CXXFLAGS = -fPIE
-weak_unresolved_symbols_test_LDFLAGS = -Bgcctestdir/ -pie -Wl,--weak-unresolved-symbols
+weak_unresolved_symbols_test_LDFLAGS = -pie -Wl,--weak-unresolved-symbols
 
 check_SCRIPTS += two_file_shared.sh
 check_DATA += two_file_shared.dbg
@@ -639,64 +649,64 @@ check_PROGRAMS += two_file_separate_shared_21_nonpic_test
 check_PROGRAMS += two_file_mixed_shared_test
 check_PROGRAMS += two_file_mixed_2_shared_test
 two_file_shared_1_nonpic.so: two_file_test_1.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o -Wl,-z,notext
+ $(CXXLINK) -shared two_file_test_1.o two_file_test_1b.o -Wl,-z,notext
 two_file_shared_2_nonpic.so: two_file_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_2.o
+ $(CXXLINK) -shared two_file_test_2.o
 two_file_shared_nonpic.so: two_file_test_1.o two_file_test_1b.o two_file_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o -Wl,-z,notext
+ $(CXXLINK) -shared two_file_test_1.o two_file_test_1b.o two_file_test_2.o -Wl,-z,notext
 two_file_shared_mixed.so: two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o -Wl,-z,notext
+ $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_1b_pic.o two_file_test_2.o -Wl,-z,notext
 two_file_shared_mixed_1.so: two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so -Wl,-z,notext
+ $(CXXLINK) -shared two_file_test_1.o two_file_test_1b_pic.o two_file_shared_2.so -Wl,-z,notext
 
 two_file_shared_1_nonpic_test_SOURCES = \
  two_file_test_2.cc two_file_test_main.cc
 two_file_shared_1_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1_nonpic.so
-two_file_shared_1_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_1_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_shared_1_nonpic_test_LDADD = two_file_shared_1_nonpic.so
 
 two_file_shared_2_nonpic_test_SOURCES = \
  two_file_test_1.cc two_file_test_1b.cc two_file_test_main.cc
 two_file_shared_2_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_2_nonpic.so
-two_file_shared_2_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_shared_2_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_shared_2_nonpic_test_LDADD = two_file_shared_2_nonpic.so
 
 two_file_same_shared_nonpic_test_SOURCES = two_file_test_main.cc
 two_file_same_shared_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_nonpic.so
-two_file_same_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_same_shared_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_same_shared_nonpic_test_LDADD = two_file_shared_nonpic.so
 
 two_file_separate_shared_12_nonpic_test_SOURCES = two_file_test_main.cc
 two_file_separate_shared_12_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
-two_file_separate_shared_12_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_separate_shared_12_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_separate_shared_12_nonpic_test_LDADD = \
  two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
 
 two_file_separate_shared_21_nonpic_test_SOURCES = two_file_test_main.cc
 two_file_separate_shared_21_nonpic_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_1_nonpic.so two_file_shared_2_nonpic.so
-two_file_separate_shared_21_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_separate_shared_21_nonpic_test_LDFLAGS = -Wl,-R,.
 two_file_separate_shared_21_nonpic_test_LDADD = \
  two_file_shared_2_nonpic.so two_file_shared_1_nonpic.so
 
 two_file_mixed_shared_test_SOURCES = two_file_test_main.cc
 two_file_mixed_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed.so
-two_file_mixed_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_mixed_shared_test_LDFLAGS = -Wl,-R,.
 two_file_mixed_shared_test_LDADD = two_file_shared_mixed.so
 
 two_file_mixed_2_shared_test_SOURCES = two_file_test_main.cc
 two_file_mixed_2_shared_test_DEPENDENCIES = gcctestdir/ld two_file_shared_mixed_1.so two_file_shared_2.so
-two_file_mixed_2_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+two_file_mixed_2_shared_test_LDFLAGS = -Wl,-R,.
 two_file_mixed_2_shared_test_LDADD = two_file_shared_mixed_1.so two_file_shared_2.so
 
 check_PROGRAMS += two_file_mixed_pie_test
 two_file_mixed_pie_test: two_file_test_1.o two_file_test_1b_pie.o \
  two_file_test_main_pie.o two_file_shared_2.so gcctestdir/ld
- $(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
+ $(CXXLINK) -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
 
 endif FN_PTRS_IN_SO_WITHOUT_PIC
 
@@ -708,7 +718,7 @@ check_PROGRAMS += two_file_same_shared_strip_test
 two_file_same_shared_strip_test_SOURCES = two_file_test_main.cc
 two_file_same_shared_strip_test_DEPENDENCIES = \
  gcctestdir/ld two_file_shared_strip.so
-two_file_same_shared_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R.
+two_file_same_shared_strip_test_LDFLAGS = -Wl,-R.
 two_file_same_shared_strip_test_LDADD = two_file_shared_strip.so
 two_file_shared_strip.so: two_file_shared.so
  $(TEST_STRIP) -S -o two_file_shared_strip.so two_file_shared.so
@@ -716,22 +726,21 @@ two_file_shared_strip.so: two_file_shared.so
 check_PROGRAMS += common_test_1
 common_test_1_SOURCES = common_test_1.c
 common_test_1_DEPENDENCIES = gcctestdir/ld
-common_test_1_LDFLAGS = -Bgcctestdir/
 common_test_1_LDADD =
 
 check_PROGRAMS += common_test_2
 common_test_2_SOURCES = common_test_1.c
 common_test_2_DEPENDENCIES = common_test_2.so common_test_3.so gcctestdir/ld
-common_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+common_test_2_LDFLAGS = -Wl,-R,.
 common_test_2_LDADD = common_test_2.so common_test_3.so
 common_test_2_pic.o: common_test_2.c
  $(COMPILE) -c -fpic -o $@ $<
 common_test_2.so: common_test_2_pic.o common_test_3.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared common_test_2_pic.o common_test_3.so
+ $(LINK) -shared common_test_2_pic.o common_test_3.so
 common_test_3_pic.o: common_test_3.c
  $(COMPILE) -c -fpic -o $@ $<
 common_test_3.so: common_test_3_pic.o ver_test_2.script gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared common_test_3_pic.o -Wl,--version-script,$(srcdir)/ver_test_2.script
+ $(LINK) -shared common_test_3_pic.o -Wl,--version-script,$(srcdir)/ver_test_2.script
 
 check_PROGRAMS += exception_test
 check_PROGRAMS += exception_shared_1_test
@@ -744,11 +753,11 @@ exception_test_1_pic.o: exception_test_1.cc
 exception_test_2_pic.o: exception_test_2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 exception_shared_1.so: exception_test_1_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o
+ $(CXXLINK) -shared exception_test_1_pic.o
 exception_shared_2.so: exception_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared exception_test_2_pic.o
+ $(CXXLINK) -shared exception_test_2_pic.o
 exception_shared.so: exception_test_1_pic.o exception_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared exception_test_1_pic.o exception_test_2_pic.o
+ $(CXXLINK) -shared exception_test_1_pic.o exception_test_2_pic.o
 
 exception_test_SOURCES = \
  exception_test_main.cc \
@@ -756,7 +765,6 @@ exception_test_SOURCES = \
  exception_test_2.cc \
  exception_test.h
 exception_test_DEPENDENCIES = gcctestdir/ld
-exception_test_LDFLAGS = -Bgcctestdir/
 exception_test_LDADD =
 
 if HAVE_STATIC
@@ -769,32 +777,30 @@ endif
 
 exception_shared_1_test_SOURCES = exception_test_2.cc exception_test_main.cc
 exception_shared_1_test_DEPENDENCIES = gcctestdir/ld exception_shared_1.so
-exception_shared_1_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+exception_shared_1_test_LDFLAGS = -Wl,-R,.
 exception_shared_1_test_LDADD = exception_shared_1.so
 
 exception_shared_2_test_SOURCES = exception_test_1.cc exception_test_main.cc
 exception_shared_2_test_DEPENDENCIES = gcctestdir/ld exception_shared_2.so
-exception_shared_2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+exception_shared_2_test_LDFLAGS = -Wl,-R,.
 exception_shared_2_test_LDADD = exception_shared_2.so
 
 exception_same_shared_test_SOURCES = exception_test_main.cc
 exception_same_shared_test_DEPENDENCIES = gcctestdir/ld exception_shared.so
-exception_same_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+exception_same_shared_test_LDFLAGS = -Wl,-R,.
 exception_same_shared_test_LDADD = exception_shared.so
 
 exception_separate_shared_12_test_SOURCES = exception_test_main.cc
 exception_separate_shared_12_test_DEPENDENCIES = \
  gcctestdir/ld exception_shared_1.so exception_shared_2.so
-exception_separate_shared_12_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. \
- -Wl,--no-as-needed
+exception_separate_shared_12_test_LDFLAGS = -Wl,-R,. -Wl,--no-as-needed
 exception_separate_shared_12_test_LDADD = \
  exception_shared_1.so exception_shared_2.so
 
 exception_separate_shared_21_test_SOURCES = exception_test_main.cc
 exception_separate_shared_21_test_DEPENDENCIES = \
  gcctestdir/ld exception_shared_1.so exception_shared_2.so
-exception_separate_shared_21_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. \
- -Wl,--no-as-needed
+exception_separate_shared_21_test_LDFLAGS = -Wl,-R,. -Wl,--no-as-needed
 exception_separate_shared_21_test_LDADD = \
  exception_shared_2.so exception_shared_1.so
 
@@ -802,29 +808,28 @@ exception_separate_shared_21_test_LDADD = \
 check_PROGRAMS += weak_test
 weak_test_SOURCES = weak_test.cc
 weak_test_DEPENDENCIES = gcctestdir/ld
-weak_test_LDFLAGS = -Bgcctestdir/
 weak_test_LDADD =
 
 check_PROGRAMS += weak_undef_test
 MOSTLYCLEANFILES += alt/weak_undef_lib.so
 weak_undef_test_SOURCES = weak_undef_test.cc
 weak_undef_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib.so alt/weak_undef_lib.so
-weak_undef_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
+weak_undef_test_LDFLAGS = -Wl,-R,alt
 weak_undef_test_LDADD = -L . weak_undef_lib.so
 weak_undef_file1.o: weak_undef_file1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_undef_file2.o: weak_undef_file2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_undef_lib.so: weak_undef_file1.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1.o
+ $(CXXLINK) -shared weak_undef_file1.o
 alt/weak_undef_lib.so: weak_undef_file2.o gcctestdir/ld
  test -d alt || mkdir -p alt
- $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2.o
+ $(CXXLINK) -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_LDFLAGS = -u weak_undef_2
 weak_undef_test_2_LDADD = -L . -lweak_undef_2
 MOSTLYCLEANFILES += libweak_undef_2.a
 libweak_undef_2.a: weak_undef_file3.o weak_undef_file4.o
@@ -839,17 +844,17 @@ check_PROGRAMS += weak_undef_nonpic_test
 MOSTLYCLEANFILES += alt/weak_undef_lib_nonpic.so
 weak_undef_nonpic_test_SOURCES = weak_undef_test.cc
 weak_undef_nonpic_test_DEPENDENCIES = gcctestdir/ld weak_undef_lib_nonpic.so alt/weak_undef_lib_nonpic.so
-weak_undef_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,alt
+weak_undef_nonpic_test_LDFLAGS = -Wl,-R,alt
 weak_undef_nonpic_test_LDADD = -L . weak_undef_lib_nonpic.so
 weak_undef_file1_nonpic.o: weak_undef_file1.cc
  $(CXXCOMPILE) -c -o $@ $<
 weak_undef_file2_nonpic.o: weak_undef_file2.cc
  $(CXXCOMPILE) -c -o $@ $<
 weak_undef_lib_nonpic.so: weak_undef_file1_nonpic.o
- $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file1_nonpic.o -Wl,-z,notext
+ $(CXXLINK) -shared weak_undef_file1_nonpic.o -Wl,-z,notext
 alt/weak_undef_lib_nonpic.so: weak_undef_file2_nonpic.o
  test -d alt || mkdir -p alt
- $(CXXLINK) -Bgcctestdir/ -shared weak_undef_file2_nonpic.o -Wl,-z,notext
+ $(CXXLINK) -shared weak_undef_file2_nonpic.o -Wl,-z,notext
 endif FN_PTRS_IN_SO_WITHOUT_PIC
 
 
@@ -858,28 +863,28 @@ weak_alias_test_SOURCES = weak_alias_test_main.cc
 weak_alias_test_DEPENDENCIES = \
  gcctestdir/ld weak_alias_test_1.so weak_alias_test_2.so \
  weak_alias_test_3.o weak_alias_test_4.so weak_alias_test_5.so
-weak_alias_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+weak_alias_test_LDFLAGS = -Wl,-R,.
 weak_alias_test_LDADD = \
  weak_alias_test_1.so weak_alias_test_2.so weak_alias_test_3.o \
  weak_alias_test_4.so weak_alias_test_5.so
 weak_alias_test_1_pic.o: weak_alias_test_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_alias_test_1.so: weak_alias_test_1_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_1_pic.o
+ $(CXXLINK) -shared weak_alias_test_1_pic.o
 weak_alias_test_2_pic.o: weak_alias_test_2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_alias_test_2.so: weak_alias_test_2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_2_pic.o
+ $(CXXLINK) -shared weak_alias_test_2_pic.o
 weak_alias_test_3.o: weak_alias_test_3.cc
  $(CXXCOMPILE) -c -o $@ $<
 weak_alias_test_4_pic.o: weak_alias_test_4.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_alias_test_4.so: weak_alias_test_4_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_4_pic.o
+ $(CXXLINK) -shared weak_alias_test_4_pic.o
 weak_alias_test_5_pic.o: weak_alias_test_5.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_alias_test_5.so: weak_alias_test_5_pic.o $(srcdir)/weak_alias_test.script gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_alias_test_5_pic.o \
+ $(CXXLINK) -shared weak_alias_test_5_pic.o \
  -Wl,--version-script,$(srcdir)/weak_alias_test.script
 
 check_SCRIPTS += weak_plt.sh
@@ -888,43 +893,43 @@ check_DATA += weak_plt_shared.so
 weak_plt_main_pic.o: weak_plt_main.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_plt: weak_plt_main_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ weak_plt_main_pic.o
+ $(CXXLINK) weak_plt_main_pic.o
 weak_plt_shared_pic.o: weak_plt_shared.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 weak_plt_shared.so: weak_plt_shared_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared weak_plt_shared_pic.o
+ $(CXXLINK) -shared weak_plt_shared_pic.o
 
 check_PROGRAMS += copy_test
 copy_test_SOURCES = copy_test.cc
 copy_test_DEPENDENCIES = gcctestdir/ld copy_test_1.so copy_test_2.so
-copy_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+copy_test_LDFLAGS = -Wl,-R,.
 copy_test_LDADD = copy_test_1.so copy_test_2.so
 copy_test_1_pic.o: copy_test_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 copy_test_1.so: gcctestdir/ld copy_test_1_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared copy_test_1_pic.o
+ $(CXXLINK) -shared copy_test_1_pic.o
 copy_test_2_pic.o: copy_test_2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 copy_test_2.so: gcctestdir/ld copy_test_2_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared copy_test_2_pic.o
+ $(CXXLINK) -shared copy_test_2_pic.o
 
 check_PROGRAMS += copy_test_relro
 copy_test_relro_SOURCES = copy_test_relro.cc
 copy_test_relro_DEPENDENCIES = gcctestdir/ld copy_test_relro_1.so
-copy_test_relro_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -Wl,-z,relro
+copy_test_relro_LDFLAGS = -Wl,-R,. -Wl,-z,relro
 copy_test_relro_LDADD = copy_test_relro_1.so
 copy_test_relro_1_pic.o: copy_test_relro_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 copy_test_relro_1.so: gcctestdir/ld copy_test_relro_1_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro copy_test_relro_1_pic.o
+ $(CXXLINK) -shared -Wl,-z,relro copy_test_relro_1_pic.o
 
 if !DEFAULT_TARGET_POWERPC
 check_SCRIPTS += copy_test_protected.sh
 check_DATA += copy_test_protected.err
 MOSTLYCLEANFILES += copy_test_protected.err
 copy_test_protected.err: copy_test_protected.o copy_test_2.so gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -o copy_test_protected copy_test_protected.o copy_test_2.so -Wl,-R,. "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -o copy_test_protected copy_test_protected.o copy_test_2.so -Wl,-R,. 2>$@; \
+ @echo $(CXXLINK) -o copy_test_protected copy_test_protected.o copy_test_2.so -Wl,-R,. "2>$@"
+ @if $(CXXLINK) -o copy_test_protected copy_test_protected.o copy_test_2.so -Wl,-R,. 2>$@; \
  then \
   echo 1>&2 "Link of copy_test_protected should have failed"; \
   rm -f $@; \
@@ -948,9 +953,9 @@ tls_test_file2_pic.o: tls_test_file2.cc
 tls_test_c_pic.o: tls_test_c.c
  $(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
 tls_test_shared.so: tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -Wl,-z,defs
+ $(CXXLINK) -shared tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o -Wl,-z,defs
 tls_test_shared2.so: tls_test_file2_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_pic.o
+ $(CXXLINK) -shared tls_test_file2_pic.o
 
 tls_test_pic_ie.o: tls_test.cc
  $(CXXCOMPILE) -c -fpic -ftls-model=initial-exec -o $@ $<
@@ -959,11 +964,11 @@ tls_test_file2_pic_ie.o: tls_test_file2.cc
 tls_test_c_pic_ie.o: tls_test_c.c
  $(COMPILE) -c -fpic -ftls-model=initial-exec $(TLS_TEST_C_CFLAGS) -o $@ $<
 tls_test_ie_shared.so: tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o
+ $(CXXLINK) -shared tls_test_pic_ie.o tls_test_file2_pic_ie.o tls_test_c_pic_ie.o
 
 tls_test_SOURCES = tls_test.cc tls_test_file2.cc tls_test_main.cc tls_test.h
 tls_test_DEPENDENCIES = gcctestdir/ld tls_test_c.o
-tls_test_LDFLAGS = -Bgcctestdir/ $(THREADFLAGS)
+tls_test_LDFLAGS = $(THREADFLAGS)
 tls_test_LDADD = tls_test_c.o $(THREADLIBS)
 tls_test_c.o: tls_test_c.c
  $(COMPILE) -c $(TLS_TEST_C_CFLAGS) -o $@ $<
@@ -971,7 +976,7 @@ tls_test_c.o: tls_test_c.c
 tls_pic_test_SOURCES = tls_test_main.cc
 tls_pic_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o tls_test_file2_pic.o \
  tls_test_c_pic.o
-tls_pic_test_LDFLAGS = -Bgcctestdir/ $(THREADFLAGS)
+tls_pic_test_LDFLAGS = $(THREADFLAGS)
 tls_pic_test_LDADD = tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o \
  $(THREADLIBS)
 
@@ -985,7 +990,7 @@ tls_test_c_pie.o: tls_test_c.c
  $(COMPILE) -c -fpic $(TLS_TEST_C_CFLAGS) -o $@ $<
 tls_pie_test: tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o \
  tls_test_c_pie.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ $(THREADFLAGS) -pie tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o tls_test_c_pie.o $(THREADLIBS)
+ $(CXXLINK) $(THREADFLAGS) -pie tls_test_main_pie.o tls_test_pie.o tls_test_file2_pie.o tls_test_c_pie.o $(THREADLIBS)
 
 check_SCRIPTS += tls_pie_test.sh
 check_DATA += tls_pie_test.stdout
@@ -994,22 +999,22 @@ tls_pie_test.stdout: tls_pie_test
 
 tls_pie_pic_test: tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o \
  tls_test_c_pic.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ $(THREADFLAGS) -pie tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o $(THREADLIBS)
+ $(CXXLINK) $(THREADFLAGS) -pie tls_test_main_pie.o tls_test_pic.o tls_test_file2_pic.o tls_test_c_pic.o $(THREADLIBS)
 
 tls_shared_test_SOURCES = tls_test_main.cc
 tls_shared_test_DEPENDENCIES = gcctestdir/ld tls_test_shared.so
-tls_shared_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_test_LDADD = tls_test_shared.so $(THREADLIBS)
 
 tls_shared_ie_test_SOURCES = tls_test_main.cc
 tls_shared_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_ie_shared.so
-tls_shared_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_ie_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_ie_test_LDADD = tls_test_ie_shared.so $(THREADLIBS)
 
 tls_shared_gd_to_ie_test_SOURCES = tls_test_main.cc
 tls_shared_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_pic.o \
  tls_test_c_pic.o tls_test_shared2.so
-tls_shared_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_gd_to_ie_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_gd_to_ie_test_LDADD = tls_test_pic.o tls_test_c_pic.o \
  tls_test_shared2.so $(THREADLIBS)
 
@@ -1024,12 +1029,12 @@ tls_test_file2_gnu2.o: tls_test_file2.cc
 tls_test_c_gnu2.o: tls_test_c.c
  $(COMPILE) -c -fpic -mtls-dialect=gnu2 $(TLS_TEST_C_CFLAGS) -o $@ $<
 tls_test_gnu2_shared2.so: tls_test_file2_gnu2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_file2_gnu2.o
+ $(CXXLINK) -shared tls_test_file2_gnu2.o
 
 tls_shared_gnu2_gd_to_ie_test_SOURCES = tls_test_main.cc
 tls_shared_gnu2_gd_to_ie_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2.o \
  tls_test_c_gnu2.o tls_test_gnu2_shared2.so
-tls_shared_gnu2_gd_to_ie_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_gnu2_gd_to_ie_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_gnu2_gd_to_ie_test_LDADD = tls_test_gnu2.o tls_test_c_gnu2.o \
  tls_test_gnu2_shared2.so $(THREADLIBS)
 
@@ -1038,11 +1043,11 @@ if TLS_DESCRIPTORS
 check_PROGRAMS += tls_shared_gnu2_test
 
 tls_test_gnu2_shared.so: tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o
+ $(CXXLINK) -shared tls_test_gnu2.o tls_test_file2_gnu2.o tls_test_c_gnu2.o
 
 tls_shared_gnu2_test_SOURCES = tls_test_main.cc
 tls_shared_gnu2_test_DEPENDENCIES = gcctestdir/ld tls_test_gnu2_shared.so
-tls_shared_gnu2_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_gnu2_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_gnu2_test_LDADD = tls_test_gnu2_shared.so $(THREADLIBS)
 
 endif TLS_DESCRIPTORS
@@ -1069,11 +1074,11 @@ endif
 if FN_PTRS_IN_SO_WITHOUT_PIC
 check_PROGRAMS += tls_shared_nonpic_test
 tls_test_shared_nonpic.so: tls_test.o tls_test_file2.o tls_test_c.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared tls_test.o tls_test_file2.o tls_test_c.o -Wl,-z,notext
+ $(CXXLINK) -shared tls_test.o tls_test_file2.o tls_test_c.o -Wl,-z,notext
 
 tls_shared_nonpic_test_SOURCES = tls_test_main.cc
 tls_shared_nonpic_test_DEPENDENCIES = gcctestdir/ld tls_test_shared_nonpic.so
-tls_shared_nonpic_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. $(THREADFLAGS)
+tls_shared_nonpic_test_LDFLAGS = -Wl,-R,. $(THREADFLAGS)
 tls_shared_nonpic_test_LDADD = tls_test_shared_nonpic.so $(THREADLIBS)
 endif FN_PTRS_IN_SO_WITHOUT_PIC
 
@@ -1112,33 +1117,33 @@ x86_64_mov_to_lea7.o: x86_64_mov_to_lea4.s
 x86_64_mov_to_lea8.o: x86_64_mov_to_lea4.s
  $(TEST_AS) --64 -o $@ $<
 x86_64_mov_to_lea1: x86_64_mov_to_lea1.o ../ld-new
- ../ld-new -Bsymbolic -shared  -melf_x86_64  -o $@ $<
+ ../ld-new -Bsymbolic -shared -melf_x86_64 -o $@ $<
 x86_64_mov_to_lea2: x86_64_mov_to_lea1.o ../ld-new
- ../ld-new -pie -melf_x86_64  -o $@ $<
+ ../ld-new -pie -melf_x86_64 -o $@ $<
 x86_64_mov_to_lea3: x86_64_mov_to_lea1.o ../ld-new
- ../ld-new -melf_x86_64  -o $@ $<
+ ../ld-new -melf_x86_64 -o $@ $<
 x86_64_mov_to_lea4: x86_64_mov_to_lea2.o ../ld-new
- ../ld-new -Bsymbolic -shared  -melf32_x86_64  -o $@ $<
+ ../ld-new -Bsymbolic -shared -melf32_x86_64 -o $@ $<
 x86_64_mov_to_lea5: x86_64_mov_to_lea2.o ../ld-new
- ../ld-new -pie -melf32_x86_64  -o $@ $<
+ ../ld-new -pie -melf32_x86_64 -o $@ $<
 x86_64_mov_to_lea6: x86_64_mov_to_lea2.o ../ld-new
- ../ld-new -melf32_x86_64  -o $@ $<
+ ../ld-new -melf32_x86_64 -o $@ $<
 x86_64_mov_to_lea7: x86_64_mov_to_lea3.o ../ld-new
  ../ld-new -melf32_x86_64 -pie -o $@ $<
 x86_64_mov_to_lea8: x86_64_mov_to_lea4.o ../ld-new
  ../ld-new -melf_x86_64 -pie -o $@ $<
 x86_64_mov_to_lea9: x86_64_mov_to_lea5.o ../ld-new
- ../ld-new -melf32_x86_64  -o $@ $<
+ ../ld-new -melf32_x86_64 -o $@ $<
 x86_64_mov_to_lea10: x86_64_mov_to_lea6.o ../ld-new
- ../ld-new -melf_x86_64  -o $@ $<
+ ../ld-new -melf_x86_64 -o $@ $<
 x86_64_mov_to_lea11: x86_64_mov_to_lea2.o ../ld-new
- ../ld-new -melf32_x86_64 -shared  -o $@ $<
+ ../ld-new -melf32_x86_64 -shared -o $@ $<
 x86_64_mov_to_lea12: x86_64_mov_to_lea1.o ../ld-new
- ../ld-new -melf_x86_64 -shared  -o $@ $<
+ ../ld-new -melf_x86_64 -shared -o $@ $<
 x86_64_mov_to_lea13: x86_64_mov_to_lea7.o ../ld-new
- ../ld-new -melf32_x86_64 -shared  -o $@ $<
+ ../ld-new -melf32_x86_64 -shared -o $@ $<
 x86_64_mov_to_lea14: x86_64_mov_to_lea8.o ../ld-new
- ../ld-new -melf_x86_64 -shared  -o $@ $<
+ ../ld-new -melf_x86_64 -shared -o $@ $<
 x86_64_mov_to_lea1.stdout: x86_64_mov_to_lea1
  $(TEST_OBJDUMP) -dw $< > $@
 x86_64_mov_to_lea2.stdout: x86_64_mov_to_lea2
@@ -1203,7 +1208,7 @@ x86_64_overflow_pc32.err: x86_64_overflow_pc32.o gcctestdir/ld
 
 check_PROGRAMS += pr17704a_test
 pr17704a_test.o: pr17704a_test.s
- $(TEST_AS) --64  -o $@ $<
+ $(TEST_AS) --64 -o $@ $<
 pr17704a_test: pr17704a_test.o gcctestdir/ld
  gcctestdir/ld --icf=all -o $@ $<
 
@@ -1254,59 +1259,59 @@ if DEFAULT_TARGET_X86_64_OR_X32
 check_PROGRAMS += pr20216a_test
 pr20216a_test_SOURCES = pr20216_main.c pr20216_def.c
 pr20216a_test_DEPENDENCIES = pr20216_gd.o pr20216_ld.o gcctestdir/ld gcctestdir/as
-pr20216a_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216a_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20216a_test_CFLAGS = -fPIE
+pr20216a_test_LDFLAGS = -Wl,-R,.
 pr20216a_test_LDADD = pr20216_gd.o pr20216_ld.o
 
 check_PROGRAMS += pr20216b_test
 pr20216b_test_SOURCES = pr20216_main.c pr20216_def.c
 pr20216b_test_DEPENDENCIES = pr20216_gd.o pr20216_ld.o gcctestdir/ld gcctestdir/as
-pr20216b_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216b_test_LDFLAGS = -pie -Bgcctestdir/ -Wl,-R,.
+pr20216b_test_CFLAGS = -fPIE
+pr20216b_test_LDFLAGS = -pie -Wl,-R,.
 pr20216b_test_LDADD = pr20216_gd.o pr20216_ld.o
 
 check_PROGRAMS += pr20216c_test
 pr20216c_test_SOURCES = pr20216_main.c pr20216_def.c
 pr20216c_test_DEPENDENCIES = pr20216_gd.o pr20216_ld.o gcctestdir/ld gcctestdir/as
-pr20216c_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216c_test_LDFLAGS = -static -Bgcctestdir/ -Wl,-R,.
+pr20216c_test_CFLAGS = -fPIE
+pr20216c_test_LDFLAGS = -static -Wl,-R,.
 pr20216c_test_LDADD = pr20216_gd.o pr20216_ld.o
 
 check_PROGRAMS += pr20216d_test
 pr20216d_test_SOURCES = pr20216_main.c pr20216_def.c
 pr20216d_test_DEPENDENCIES = pr20216a.so gcctestdir/ld gcctestdir/as
-pr20216d_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216d_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20216d_test_CFLAGS = -fPIE
+pr20216d_test_LDFLAGS = -Wl,-R,.
 pr20216d_test_LDADD = pr20216a.so
 
 check_PROGRAMS += pr20216e_test
 pr20216e_test_SOURCES = pr20216_main.c
 pr20216e_test_DEPENDENCIES = pr20216_gd.o pr20216_ld.o pr20216b.so gcctestdir/ld gcctestdir/as
-pr20216e_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20216e_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20216e_test_CFLAGS = -fPIE
+pr20216e_test_LDFLAGS = -Wl,-R,.
 pr20216e_test_LDADD = pr20216_gd.o pr20216_ld.o pr20216b.so
 
 MOSTLYCLEANFILES += pr20216a.so pr20216b.so
 
 pr20216a.so: pr20216_gd.o pr20216_ld.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared pr20216_gd.o pr20216_ld.o
+ $(LINK) -shared pr20216_gd.o pr20216_ld.o
 
 pr20216b.so: pr20216_def.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared pr20216_def.o
+ $(LINK) -shared pr20216_def.o
 
 pr20216_gd.o: pr20216_gd.S gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -c -o $@ $<
+ $(COMPILE) -c -o $@ $<
 
 pr20216_ld.o: pr20216_ld.S gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -c -o $@ $<
+ $(COMPILE) -c -o $@ $<
 
 endif DEFAULT_TARGET_X86_64_OR_X32
 
 if DEFAULT_TARGET_I386
 
 check_SCRIPTS += i386_mov_to_lea.sh
-check_DATA += i386_mov_to_lea1.stdout  i386_mov_to_lea2.stdout \
- i386_mov_to_lea3.stdout  i386_mov_to_lea4.stdout \
+check_DATA += i386_mov_to_lea1.stdout i386_mov_to_lea2.stdout \
+ i386_mov_to_lea3.stdout i386_mov_to_lea4.stdout \
  i386_mov_to_lea5.stdout i386_mov_to_lea6.stdout \
  i386_mov_to_lea7.stdout i386_mov_to_lea8.stdout
 MOSTLYCLEANFILES += i386_mov_to_lea1 i386_mov_to_lea2 i386_mov_to_lea3 \
@@ -1324,21 +1329,21 @@ i386_mov_to_lea4.o: i386_mov_to_lea4.s
 i386_mov_to_lea5.o: i386_mov_to_lea5.s
  $(TEST_AS) --32 -o $@ $<
 i386_mov_to_lea1: i386_mov_to_lea1.o ../ld-new
- ../ld-new -Bsymbolic -shared -melf_i386  -o $@ $<
+ ../ld-new -Bsymbolic -shared -melf_i386 -o $@ $<
 i386_mov_to_lea2: i386_mov_to_lea1.o ../ld-new
- ../ld-new  -pie -melf_i386  -o $@ $<
+ ../ld-new -pie -melf_i386 -o $@ $<
 i386_mov_to_lea3: i386_mov_to_lea1.o ../ld-new
- ../ld-new -melf_i386  -o $@ $<
+ ../ld-new -melf_i386 -o $@ $<
 i386_mov_to_lea4: i386_mov_to_lea1.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea5: i386_mov_to_lea2.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea6: i386_mov_to_lea3.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea7: i386_mov_to_lea4.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea8: i386_mov_to_lea5.o ../ld-new
- ../ld-new -melf_i386 -shared  -o $@ $<
+ ../ld-new -melf_i386 -shared -o $@ $<
 i386_mov_to_lea1.stdout: i386_mov_to_lea1
  $(TEST_OBJDUMP) -dw $< > $@
 i386_mov_to_lea2.stdout: i386_mov_to_lea2
@@ -1359,58 +1364,58 @@ i386_mov_to_lea8.stdout: i386_mov_to_lea8
 check_PROGRAMS += pr20308a_test
 pr20308a_test_SOURCES = pr20308_main.c pr20308_def.c
 pr20308a_test_DEPENDENCIES = pr20308_gd.o pr20308_ld.o gcctestdir/ld gcctestdir/as
-pr20308a_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308a_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20308a_test_CFLAGS = -fPIE
+pr20308a_test_LDFLAGS = -Wl,-R,.
 pr20308a_test_LDADD = pr20308_gd.o pr20308_ld.o
 
 check_PROGRAMS += pr20308b_test
 pr20308b_test_SOURCES = pr20308_main.c pr20308_def.c
 pr20308b_test_DEPENDENCIES = pr20308_gd.o pr20308_ld.o gcctestdir/ld gcctestdir/as
-pr20308b_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308b_test_LDFLAGS = -pie -Bgcctestdir/ -Wl,-R,.
+pr20308b_test_CFLAGS = -fPIE
+pr20308b_test_LDFLAGS = -pie -Wl,-R,.
 pr20308b_test_LDADD = pr20308_gd.o pr20308_ld.o
 
 check_PROGRAMS += pr20308c_test
 pr20308c_test_SOURCES = pr20308_main.c pr20308_def.c
 pr20308c_test_DEPENDENCIES = pr20308_gd.o pr20308_ld.o gcctestdir/ld gcctestdir/as
-pr20308c_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308c_test_LDFLAGS = -static -Bgcctestdir/ -Wl,-R,.
+pr20308c_test_CFLAGS = -fPIE
+pr20308c_test_LDFLAGS = -static -Wl,-R,.
 pr20308c_test_LDADD = pr20308_gd.o pr20308_ld.o
 
 check_PROGRAMS += pr20308d_test
 pr20308d_test_SOURCES = pr20308_main.c pr20308_def.c
 pr20308d_test_DEPENDENCIES = pr20308a.so gcctestdir/ld gcctestdir/as
-pr20308d_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308d_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20308d_test_CFLAGS = -fPIE
+pr20308d_test_LDFLAGS = -Wl,-R,.
 pr20308d_test_LDADD = pr20308a.so
 
 check_PROGRAMS += pr20308e_test
 pr20308e_test_SOURCES = pr20308_main.c
 pr20308e_test_DEPENDENCIES = pr20308_gd.o pr20308_ld.o pr20308b.so gcctestdir/ld gcctestdir/as
-pr20308e_test_CFLAGS = -Bgcctestdir/ -fPIE
-pr20308e_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+pr20308e_test_CFLAGS = -fPIE
+pr20308e_test_LDFLAGS = -Wl,-R,.
 pr20308e_test_LDADD = pr20308_gd.o pr20308_ld.o pr20308b.so
 
 MOSTLYCLEANFILES += pr20308a.so pr20308b.so
 
 pr20308a.so: pr20308_gd.o pr20308_ld.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared pr20308_gd.o pr20308_ld.o
+ $(LINK) -shared pr20308_gd.o pr20308_ld.o
 
 pr20308b.so: pr20308_def.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared pr20308_def.o
+ $(LINK) -shared pr20308_def.o
 
 pr20308_gd.o: pr20308_gd.S gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -c -o $@ $<
+ $(COMPILE) -c -o $@ $<
 
 pr20308_ld.o: pr20308_ld.S gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -c -o $@ $<
+ $(COMPILE) -c -o $@ $<
 
 endif DEFAULT_TARGET_I386
 
 check_PROGRAMS += many_sections_test
 many_sections_test_SOURCES = many_sections_test.cc
 many_sections_test_DEPENDENCIES = gcctestdir/ld
-many_sections_test_LDFLAGS = -Bgcctestdir/ -rdynamic
+many_sections_test_LDFLAGS = -rdynamic
 many_sections_test_LDADD =
 
 BUILT_SOURCES += many_sections_define.h
@@ -1433,7 +1438,7 @@ check_PROGRAMS += many_sections_r_test
 many_sections_r_test.o: many_sections_test.o gcctestdir/ld
  gcctestdir/ld -r -o $@ many_sections_test.o
 many_sections_r_test: many_sections_r_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ many_sections_r_test.o $(LIBS)
+ $(CXXLINK) many_sections_r_test.o $(LIBS)
 
 check_SCRIPTS += file_in_many_sections_test.sh
 check_DATA += file_in_many_sections.stdout
@@ -1441,26 +1446,24 @@ MOSTLYCLEANFILES += file_in_many_sections
 file_in_many_sections.o: file_in_many_sections.c many_sections_define.h
  $(COMPILE) -c -fdata-sections -o $@ $(srcdir)/file_in_many_sections.c
 file_in_many_sections: file_in_many_sections.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ file_in_many_sections.o -Wl,--gc-sections
+ $(LINK) file_in_many_sections.o -Wl,--gc-sections
 file_in_many_sections.stdout: file_in_many_sections
  $(TEST_READELF) -s $< > $@
 
 check_PROGRAMS += initpri1
 initpri1_SOURCES = initpri1.c
 initpri1_DEPENDENCIES = gcctestdir/ld
-initpri1_LDFLAGS = -Bgcctestdir/
 initpri1_LDADD =
 
 check_PROGRAMS += initpri2
 initpri2_SOURCES = initpri2.c
 initpri2_DEPENDENCIES = gcctestdir/ld
-initpri2_LDFLAGS = -Bgcctestdir/ -Wl,--ctors-in-init-array
+initpri2_LDFLAGS = -Wl,--ctors-in-init-array
 initpri2_LDADD =
 
 check_PROGRAMS += initpri3a
 initpri3a_SOURCES = initpri3.c
 initpri3a_DEPENDENCIES = gcctestdir/ld
-initpri3a_LDFLAGS = -Bgcctestdir/
 initpri3a_LDADD =
 
 # This test fails on targets not using .ctors and .dtors sections (e.g. ARM
@@ -1471,7 +1474,7 @@ initpri3a_LDADD =
 # check_PROGRAMS += initpri3b
 # initpri3b_SOURCES = initpri3.c
 # initpri3b_DEPENDENCIES = gcctestdir/ld
-# initpri3b_LDFLAGS = -Bgcctestdir/ -Wl,--no-ctors-in-init-array
+# initpri3b_LDFLAGS = -Wl,--no-ctors-in-init-array
 # initpri3b_LDADD =
 
 # Test --detect-odr-violations
@@ -1489,8 +1492,8 @@ odr_violation1.o: odr_violation1.cc
 odr_violation2.o: odr_violation2.cc
  $(CXXCOMPILE) -O2 -g -c -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg.err: debug_msg.o odr_violation1.o odr_violation2.o gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
+ @echo $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o "2>$@"
+ @if $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg debug_msg.o odr_violation1.o odr_violation2.o 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg should have failed"; \
   rm -f $@; \
@@ -1504,8 +1507,8 @@ 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>$@; \
+ @echo $(CXXLINK) -o missing_key_func missing_key_func.o "2>$@"
+ @if $(CXXLINK) -o missing_key_func missing_key_func.o 2>$@; \
  then \
   echo 1>&2 "Link of missing_key_func should have failed"; \
   rm -f $@; \
@@ -1516,14 +1519,14 @@ missing_key_func.err: missing_key_func.o gcctestdir/ld
 check_DATA += debug_msg_cdebug.err
 MOSTLYCLEANFILES += debug_msg_cdebug.err
 debug_msg_cdebug.o: debug_msg.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/debug_msg.cc
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/debug_msg.cc
 odr_violation1_cdebug.o: odr_violation1.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation1.cc
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation1.cc
 odr_violation2_cdebug.o: odr_violation2.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O2 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation2.cc
+ $(CXXCOMPILE) -O2 -g -Wa,--compress-debug-sections -c -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg_cdebug.err: debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o 2>$@; \
+ @echo $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o "2>$@"
+ @if $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_cdebug.o 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg_cdebug should have failed"; \
   rm -f $@; \
@@ -1532,14 +1535,14 @@ debug_msg_cdebug.err: debug_msg_cdebug.o odr_violation1_cdebug.o odr_violation2_
 check_DATA += debug_msg_cdebug_gabi.err
 MOSTLYCLEANFILES += debug_msg_cdebug_gabi.err
 debug_msg_cdebug_gabi.o: debug_msg.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/debug_msg.cc
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/debug_msg.cc
 odr_violation1_cdebug_gabi.o: odr_violation1.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/odr_violation1.cc
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/odr_violation1.cc
 odr_violation2_cdebug_gabi.o: odr_violation2.cc gcctestdir/as
- $(CXXCOMPILE) -Bgcctestdir/ -O2 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/odr_violation2.cc
+ $(CXXCOMPILE) -O2 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg_cdebug_gabi.err: debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_cdebug_gabi debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o 2>$@; \
+ @echo $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg_cdebug debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o "2>$@"
+ @if $(CXXLINK) -Wl,--detect-odr-violations -o debug_msg_cdebug_gabi debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o odr_violation2_cdebug_gabi.o 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg_cdebug_gabi should have failed"; \
   rm -f $@; \
@@ -1550,14 +1553,14 @@ debug_msg_cdebug_gabi.err: debug_msg_cdebug_gabi.o odr_violation1_cdebug_gabi.o
 check_DATA += debug_msg_so.err
 MOSTLYCLEANFILES += debug_msg_so.err
 debug_msg.so: debug_msg.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
+ $(CXXCOMPILE) -O0 -g -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
 odr_violation1.so: odr_violation1.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
+ $(CXXCOMPILE) -O0 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
 odr_violation2.so: odr_violation2.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O2 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
+ $(CXXCOMPILE) -O2 -g -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
- @echo $(CXXLINK_S) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
- @if $(CXXLINK_S) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
+ @echo $(CXXLINK_S) -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so "2>$@"
+ @if $(CXXLINK_S) -Wl,--detect-odr-violations -o debug_msg_so debug_msg.so odr_violation1.so odr_violation2.so 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg_so should have failed"; \
   rm -f $@; \
@@ -1569,14 +1572,14 @@ debug_msg_so.err: debug_msg.so odr_violation1.so odr_violation2.so gcctestdir/ld
 check_DATA += debug_msg_ndebug.err
 MOSTLYCLEANFILES += debug_msg_ndebug.err
 debug_msg_ndebug.so: debug_msg.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
+ $(CXXCOMPILE) -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/debug_msg.cc
 odr_violation1_ndebug.so: odr_violation1.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
+ $(CXXCOMPILE) -O0 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation1.cc
 odr_violation2_ndebug.so: odr_violation2.cc gcctestdir/ld
- $(CXXCOMPILE) -Bgcctestdir/ -O2 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
+ $(CXXCOMPILE) -O2 -g0 -shared -fPIC -w -o $@ $(srcdir)/odr_violation2.cc
 debug_msg_ndebug.err: debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so gcctestdir/ld
- @echo $(CXXLINK_S) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so -shared-libgcc -Bdynamic -lstdc++ "2>$@"
- @if $(CXXLINK_S) -Bgcctestdir/ -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so -shared-libgcc -Bdynamic -lstdc++ 2>$@; \
+ @echo $(CXXLINK_S) -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so -shared-libgcc -Bdynamic -lstdc++ "2>$@"
+ @if $(CXXLINK_S) -Wl,--detect-odr-violations -o debug_msg_ndebug debug_msg_ndebug.so odr_violation1_ndebug.so odr_violation2_ndebug.so -shared-libgcc -Bdynamic -lstdc++ 2>$@; \
  then \
   echo 1>&2 "Link of debug_msg_ndebug should have failed"; \
   rm -f $@; \
@@ -1591,10 +1594,10 @@ MOSTLYCLEANFILES += undef_symbol.err
 undef_symbol.o: undef_symbol.cc
  $(CXXCOMPILE) -O0 -g -c -fPIC $<
 undef_symbol.so: undef_symbol.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared undef_symbol.o
+ $(CXXLINK) -shared undef_symbol.o
 undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
+ @echo $(CXXLINK) -o undef_symbol_test undef_symbol_main.o undef_symbol.so "2>$@"
+ @if $(CXXLINK) -o undef_symbol_test undef_symbol_main.o undef_symbol.so 2>$@; \
  then \
   echo 1>&2 "Link of undef_symbol_test should have failed"; \
   rm -f $@; \
@@ -1605,7 +1608,7 @@ undef_symbol.err: undef_symbol_main.o undef_symbol.so gcctestdir/ld
 # Test -o when emitting to a special file (such as something in /dev).
 check_PROGRAMS += flagstest_o_specialfile
 flagstest_o_specialfile: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< 2>&1 | cat > $@
+ $(CXXLINK) -o /dev/stdout $< 2>&1 | cat > $@
  chmod a+x $@
  test -s $@
 
@@ -1613,7 +1616,7 @@ flagstest_o_specialfile: flagstest_debug.o gcctestdir/ld
 check_PROGRAMS += flagstest_compress_debug_sections_none
 check_DATA += flagstest_compress_debug_sections_none.stdout
 flagstest_compress_debug_sections_none: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=none
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=none
  test -s $@
 
 # Dump DWARF debug sections.
@@ -1628,13 +1631,13 @@ check_DATA += flagstest_compress_debug_sections.stdout \
 MOSTLYCLEANFILES += flagstest_compress_debug_sections.check \
     flagstest_compress_debug_sections.cmp
 flagstest_compress_debug_sections: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=zlib
  test -s $@
 
 # Test --compress-debug-sections with --build-id=tree.
 check_PROGRAMS += flagstest_compress_debug_sections_and_build_id_tree
 flagstest_compress_debug_sections_and_build_id_tree: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib \
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=zlib \
  -Wl,--build-id=tree \
  -Wl,--build-id-chunk-size-for-treehash=4096 \
  -Wl,--build-id-min-file-size-for-treehash=0
@@ -1664,7 +1667,7 @@ check_DATA += flagstest_compress_debug_sections_gnu.stdout \
 MOSTLYCLEANFILES += flagstest_compress_debug_sections_gnu.check \
     flagstest_compress_debug_sections_gnu.cmp
 flagstest_compress_debug_sections_gnu: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib-gnu
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=zlib-gnu
  test -s $@
 
 # Dump compressed DWARF debug sections.
@@ -1691,7 +1694,7 @@ check_DATA += flagstest_compress_debug_sections_gabi.stdout \
 MOSTLYCLEANFILES += flagstest_compress_debug_sections_gabi.cmp \
     flagstest_compress_debug_sections_gabi.check
 flagstest_compress_debug_sections_gabi: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,--compress-debug-sections=zlib-gabi
+ $(CXXLINK) -o $@ $< -Wl,--compress-debug-sections=zlib-gabi
  test -s $@
 
 # Dump compressed DWARF debug sections.
@@ -1716,7 +1719,7 @@ flagstest_compress_debug_sections_gabi.cmp: flagstest_compress_debug_sections_ga
 check_PROGRAMS += flagstest_o_specialfile_and_compress_debug_sections
 flagstest_o_specialfile_and_compress_debug_sections: flagstest_debug.o \
  gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o /dev/stdout $< -Wl,--compress-debug-sections=zlib 2>&1 | cat > $@
+ $(CXXLINK) -o /dev/stdout $< -Wl,--compress-debug-sections=zlib 2>&1 | cat > $@
  chmod a+x $@
  test -s $@
 
@@ -1734,12 +1737,12 @@ pr18689b.o: pr18689a.o ../ld-new
  ../ld-new -r -o $@ $<
 
 pr18689.o: pr18689.c gcctestdir/as
- $(COMPILE) -Bgcctestdir/ -ggdb3 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/pr18689.c
+ $(COMPILE) -ggdb3 -g -Wa,--compress-debug-sections=zlib-gabi -c -w -o $@ $(srcdir)/pr18689.c
 
 # Test -TText and -Tdata.
 check_PROGRAMS += flagstest_o_ttext_1
 flagstest_o_ttext_1: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,-Ttext,0x400000 -Wl,-Tdata,0x800000
+ $(CXXLINK) -o $@ $< -Wl,-Ttext,0x400000 -Wl,-Tdata,0x800000
 
 # 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
@@ -1747,20 +1750,20 @@ flagstest_o_ttext_1: flagstest_debug.o gcctestdir/ld
 check_DATA += flagstest_o_ttext_2
 MOSTLYCLEANFILES += flagstest_o_ttext_2
 flagstest_o_ttext_2: flagstest_debug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -o $@ $< -Wl,-Ttext,0x400010 -Wl,-Tdata,0x800010
+ $(CXXLINK) -o $@ $< -Wl,-Ttext,0x400010 -Wl,-Tdata,0x800010
 
 # Test symbol versioning.
 check_PROGRAMS += ver_test
 ver_test_SOURCES = ver_test_main.cc
 ver_test_DEPENDENCIES = gcctestdir/ld ver_test_1.so ver_test_2.so ver_test_4.so
-ver_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_LDFLAGS = -Wl,-R,.
 ver_test_LDADD = ver_test_1.so ver_test_2.so ver_test_4.so
 ver_test_1.so: ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so
+ $(CXXLINK) -shared ver_test_1.o ver_test_2.so ver_test_3.o ver_test_4.so
 ver_test_2.so: ver_test_2.o $(srcdir)/ver_test_2.script ver_test_4.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_2.script -Wl,-R,. ver_test_2.o ver_test_4.so
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_2.script -Wl,-R,. ver_test_2.o ver_test_4.so
 ver_test_4.so: ver_test_4.o $(srcdir)/ver_test_4.script gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o
 ver_test_1.o: ver_test_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 ver_test_2.o: ver_test_2.cc
@@ -1778,7 +1781,7 @@ ver_test_1.syms: ver_test_1.so
 check_PROGRAMS += ver_test_2
 ver_test_2_SOURCES = ver_test_main_2.cc
 ver_test_2_DEPENDENCIES = gcctestdir/ld ver_test_4.so ver_test_2.so
-ver_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_2_LDFLAGS = -Wl,-R,.
 ver_test_2_LDADD = ver_test_4.so ver_test_2.so
 
 check_SCRIPTS += ver_test_2.sh
@@ -1792,7 +1795,7 @@ ver_test_4.syms: ver_test_4.so
  $(TEST_READELF) -s $< >$@ 2>/dev/null
 
 ver_test_5.so: ver_test_5.o $(srcdir)/ver_test_5.script ver_test_4.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_5.script ver_test_5.o ver_test_4.so
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_5.script ver_test_5.o ver_test_4.so
 ver_test_5.o: ver_test_5.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 check_SCRIPTS += ver_test_5.sh
@@ -1803,11 +1806,11 @@ ver_test_5.syms: ver_test_5.so
 check_PROGRAMS += ver_test_6
 ver_test_6_SOURCES = ver_test_6.c
 ver_test_6_DEPENDENCIES = gcctestdir/ld ver_test_2.so
-ver_test_6_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_6_LDFLAGS = -Wl,-R,.
 ver_test_6_LDADD = ver_test_2.so
 
 ver_test_7.so: ver_test_4.o $(srcdir)/ver_test_4.script ver_test_7.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o ver_test_7.o
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_4.script ver_test_4.o ver_test_7.o
 ver_test_7.o: ver_test_7.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 check_SCRIPTS += ver_test_7.sh
@@ -1818,12 +1821,12 @@ ver_test_7.syms: ver_test_7.so
 check_PROGRAMS += ver_test_8
 ver_test_8_SOURCES = two_file_test_main.cc
 ver_test_8_DEPENDENCIES = gcctestdir/ld ver_test_8_1.so ver_test_8_2.so
-ver_test_8_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_8_LDFLAGS = -Wl,-R,.
 ver_test_8_LDADD = ver_test_8_1.so ver_test_8_2.so
 ver_test_8_1.so: two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so
+ $(CXXLINK) -shared two_file_test_1_pic.o two_file_test_1b_pic.o ver_test_8_2.so
 ver_test_8_2.so: two_file_test_2_pic.o $(srcdir)/ver_test_8.script gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_8.script two_file_test_2_pic.o
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_8.script two_file_test_2_pic.o
 
 check_SCRIPTS += ver_test_8.sh
 check_DATA += ver_test_8_2.so.syms
@@ -1833,10 +1836,10 @@ ver_test_8_2.so.syms: ver_test_8_2.so
 check_PROGRAMS += ver_test_9
 ver_test_9_SOURCES = ver_test_main.cc
 ver_test_9_DEPENDENCIES = gcctestdir/ld ver_test_9.so
-ver_test_9_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_9_LDFLAGS = -Wl,-R,.
 ver_test_9_LDADD = ver_test_9.so
 ver_test_9.so: ver_test_9.o ver_test_4.so ver_test_5.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-R,. ver_test_9.o ver_test_5.so ver_test_4.so
+ $(CXXLINK) -shared -Wl,-R,. ver_test_9.o ver_test_5.so ver_test_4.so
 ver_test_9.o: ver_test_9.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 
@@ -1845,13 +1848,13 @@ check_DATA += ver_test_10.syms
 ver_test_10.syms: ver_test_10.so
  $(TEST_READELF) -s $< >$@ 2>/dev/null
 ver_test_10.so: gcctestdir/ld ver_test_2.o ver_test_10.script
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_10.script ver_test_2.o
+ $(CXXLINK) -shared -Wl,--version-script,$(srcdir)/ver_test_10.script ver_test_2.o
 
 check_PROGRAMS += ver_test_11
 MOSTLYCLEANFILES += ver_test_11.a
 ver_test_11_SOURCES = ver_test_main_2.cc
 ver_test_11_DEPENDENCIES = gcctestdir/ld ver_test_11.a
-ver_test_11_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_11_LDFLAGS = -Wl,-R,.
 ver_test_11_LDADD = ver_test_11.a
 ver_test_11.a: ver_test_1.o ver_test_2.o ver_test_4.o
  $(TEST_AR) rc $@ $^
@@ -1859,7 +1862,7 @@ ver_test_11.a: ver_test_1.o ver_test_2.o ver_test_4.o
 check_PROGRAMS += ver_test_12
 ver_test_12_SOURCES = ver_test_main_2.cc
 ver_test_12_DEPENDENCIES = gcctestdir/ld ver_test_12.o
-ver_test_12_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ver_test_12_LDFLAGS = -Wl,-R,.
 ver_test_12_LDADD = ver_test_12.o
 ver_test_12.o: gcctestdir/ld ver_test_1.o ver_test_2.o ver_test_4.o
  gcctestdir/ld -r -o $@ ver_test_1.o ver_test_2.o ver_test_4.o
@@ -1869,7 +1872,7 @@ check_DATA += ver_test_13.syms
 ver_test_13.syms: ver_test_13.so
  $(TEST_READELF) -s $< >$@ 2>/dev/null
 ver_test_13.so: gcctestdir/ld ver_test_13.o ver_test_13.script
- $(LINK) -Bgcctestdir/ -shared -Wl,--version-script,$(srcdir)/ver_test_13.script ver_test_13.o
+ $(LINK) -shared -Wl,--version-script,$(srcdir)/ver_test_13.script ver_test_13.o
 ver_test_13.o: ver_test_13.c
  $(COMPILE) -c -fpic -o $@ $<
 
@@ -1879,7 +1882,7 @@ MOSTLYCLEANFILES += ver_test_14
 ver_test_14.syms: ver_test_14
  $(TEST_OBJDUMP) -T $< | $(TEST_CXXFILT) >$@
 ver_test_14: gcctestdir/ld ver_test_main.o ver_test_1.so ver_test_2.so ver_test_4.so ver_test_14.script
- $(CXXLINK) -Bgcctestdir/ -Wl,--version-script,$(srcdir)/ver_test_14.script -Wl,-E -Wl,-R,. ver_test_main.o ver_test_1.so ver_test_2.so ver_test_4.so
+ $(CXXLINK) -Wl,--version-script,$(srcdir)/ver_test_14.script -Wl,-E -Wl,-R,. ver_test_main.o ver_test_1.so ver_test_2.so ver_test_4.so
 
 check_SCRIPTS += ver_test_pr23409.sh
 check_DATA += ver_test_pr23409.syms
@@ -1911,11 +1914,11 @@ check_PROGRAMS += protected_1
 protected_1_SOURCES = \
  protected_main_1.cc protected_main_2.cc protected_main_3.cc
 protected_1_DEPENDENCIES = gcctestdir/ld protected_1.so
-protected_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+protected_1_LDFLAGS = -Wl,-R,.
 protected_1_LDADD = protected_1.so
 
 protected_1.so: gcctestdir/ld protected_1_pic.o protected_2_pic.o protected_3_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared protected_1_pic.o protected_2_pic.o protected_3_pic.o
+ $(CXXLINK) -shared protected_1_pic.o protected_2_pic.o protected_3_pic.o
 protected_1_pic.o: protected_1.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 protected_2_pic.o: protected_2.cc
@@ -1926,7 +1929,7 @@ protected_3_pic.o: protected_3.cc
 check_PROGRAMS += protected_2
 protected_2_SOURCES = protected_main_1.cc protected_3.cc
 protected_2_DEPENDENCIES = gcctestdir/ld protected_1.so
-protected_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+protected_2_LDFLAGS = -Wl,-R,.
 protected_2_LDADD = protected_1.so
 
 check_DATA += protected_3.err
@@ -1934,8 +1937,8 @@ MOSTLYCLEANFILES += protected_3.err
 protected_4_pic.o: protected_4.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 protected_3.err: protected_4_pic.o gcctestdir/ld
- @echo $(CXXLINK) -Bgcctestdir/ -shared -o protected_4.so protected_4_pic.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -shared -o protected_4.so protected_4_pic.o 2>$@; then \
+ @echo $(CXXLINK) -shared -o protected_4.so protected_4_pic.o "2>$@"
+ @if $(CXXLINK) -shared -o protected_4.so protected_4_pic.o 2>$@; then \
   echo 1>&2 "Link of protected_4.so should have failed"; \
   rm -f $@; \
   exit 1; \
@@ -1946,10 +1949,10 @@ check_SCRIPTS += relro_test.sh
 check_DATA += relro_test.stdout
 relro_test_SOURCES = relro_test_main.cc
 relro_test_DEPENDENCIES = gcctestdir/ld relro_test.so
-relro_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+relro_test_LDFLAGS = -Wl,-R,.
 relro_test_LDADD = relro_test.so
 relro_test.so: gcctestdir/ld relro_test_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro relro_test_pic.o
+ $(CXXLINK) -shared -Wl,-z,relro relro_test_pic.o
 relro_test_pic.o: relro_test.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 relro_test.stdout: relro_test.so
@@ -1958,15 +1961,15 @@ relro_test.stdout: relro_test.so
 check_PROGRAMS += relro_now_test
 relro_now_test_SOURCES = relro_test_main.cc
 relro_now_test_DEPENDENCIES = gcctestdir/ld relro_now_test.so
-relro_now_test_LDFLAGS = -Bgcctestdir -Wl,-R,. -Wl,-z,relro -Wl,-z,now
+relro_now_test_LDFLAGS = -Wl,-R,. -Wl,-z,relro -Wl,-z,now
 relro_now_test_LDADD = relro_now_test.so
 relro_now_test.so: gcctestdir/ld relro_test_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -Wl,-z,now relro_test_pic.o
+ $(CXXLINK) -shared -Wl,-z,relro -Wl,-z,now relro_test_pic.o
 
 check_PROGRAMS += relro_strip_test
 relro_strip_test_SOURCES = relro_test_main.cc
 relro_strip_test_DEPENDENCIES = gcctestdir/ld relro_strip_test.so
-relro_strip_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+relro_strip_test_LDFLAGS = -Wl,-R,.
 relro_strip_test_LDADD = relro_strip_test.so
 relro_strip_test.so: relro_test.so
  $(TEST_STRIP) -o $@ $<
@@ -1974,27 +1977,27 @@ relro_strip_test.so: relro_test.so
 check_PROGRAMS += relro_script_test
 relro_script_test_SOURCES = relro_test_main.cc
 relro_script_test_DEPENDENCIES = gcctestdir/ld relro_script_test.so
-relro_script_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+relro_script_test_LDFLAGS = -Wl,-R,.
 relro_script_test_LDADD = relro_script_test.so
 relro_script_test.so: gcctestdir/ld relro_script_test.t relro_test_pic.o
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-z,relro -Wl,-T,$(srcdir)/relro_script_test.t relro_test_pic.o
+ $(CXXLINK) -shared -Wl,-z,relro -Wl,-T,$(srcdir)/relro_script_test.t relro_test_pic.o
 
 check_PROGRAMS += script_test_1
 script_test_1_SOURCES = script_test_1a.cc script_test_1b.cc
 script_test_1_DEPENDENCIES = gcctestdir/ld script_test_1.t
-script_test_1_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -Wl,-T,$(srcdir)/script_test_1.t
+script_test_1_LDFLAGS = -Wl,-R,. -Wl,-T,$(srcdir)/script_test_1.t
 script_test_1_LDADD =
 
 check_PROGRAMS += script_test_2
 script_test_2_SOURCES = script_test_2.cc script_test_2a.cc script_test_2b.cc
 script_test_2_DEPENDENCIES = gcctestdir/ld script_test_2.t
-script_test_2_LDFLAGS = -Bgcctestdir/ -Wl,-R,. -Wl,-T,$(srcdir)/script_test_2.t
+script_test_2_LDFLAGS = -Wl,-R,. -Wl,-T,$(srcdir)/script_test_2.t
 script_test_2_LDADD =
 
 check_PROGRAMS += justsyms
 justsyms_SOURCES = justsyms_1.cc
 justsyms_DEPENDENCIES = gcctestdir/ld justsyms_2r.o
-justsyms_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_2r.o
+justsyms_LDFLAGS = -Wl,-R,justsyms_2r.o
 justsyms_LDADD =
 justsyms_2.o: justsyms_2.cc
  $(CXXCOMPILE) -c -o $@ $<
@@ -2004,7 +2007,7 @@ justsyms_2r.o: justsyms_2.o gcctestdir/ld $(srcdir)/justsyms.t
 check_PROGRAMS += justsyms_exec
 justsyms_exec_SOURCES = justsyms_exec.c
 justsyms_exec_DEPENDENCIES = gcctestdir/ld justsyms_lib
-justsyms_exec_LDFLAGS = -Bgcctestdir/ -Wl,-R,justsyms_lib
+justsyms_exec_LDFLAGS = -Wl,-R,justsyms_lib
 justsyms_exec_LDADD =
 MOSTLYCLEANFILES += justsyms_lib
 justsyms_lib.o: justsyms_lib.c
@@ -2016,7 +2019,7 @@ check_PROGRAMS += binary_test
 MOSTLYCLEANFILES += binary.txt
 binary_test_SOURCES = binary_test.cc
 binary_test_DEPENDENCIES = gcctestdir/ld binary.txt
-binary_test_LDFLAGS = -Bgcctestdir/ -Wl,--format,binary,binary.txt,--format,elf
+binary_test_LDFLAGS = -Wl,--format,binary,binary.txt,--format,elf
 binary_test_LDADD =
 # Copy the file to the build directory to avoid worrying about the
 # full pathname in the generated symbols.
@@ -2028,7 +2031,7 @@ check_SCRIPTS += ver_matching_test.sh
 check_DATA += ver_matching_test.stdout
 MOSTLYCLEANFILES += ver_matching_test.stdout
 ver_matching_def.so: ver_matching_def_pic.o $(srcdir)/version_script.map gcctestdir/ld
- $(CXXLINK) -O0 -Bgcctestdir/ -shared ver_matching_def_pic.o -Wl,--version-script=$(srcdir)/version_script.map
+ $(CXXLINK) -O0 -shared ver_matching_def_pic.o -Wl,--version-script=$(srcdir)/version_script.map
 ver_matching_def_pic.o: ver_matching_def.cc
  $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
 ver_matching_test.stdout: ver_matching_def.so
@@ -2039,7 +2042,7 @@ check_SCRIPTS += script_test_3.sh
 check_DATA += script_test_3.stdout
 MOSTLYCLEANFILES += script_test_3.stdout
 script_test_3: basic_test.o gcctestdir/ld script_test_3.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_3.t
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_3.t
 script_test_3.stdout: script_test_3
  $(TEST_READELF) -SlW script_test_3 > script_test_3.stdout
 
@@ -2053,7 +2056,7 @@ check_SCRIPTS += script_test_4.sh
 check_DATA += script_test_4.stdout
 MOSTLYCLEANFILES += script_test_4
 script_test_4: basic_test.o gcctestdir/ld $(srcdir)/script_test_4.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_4.t
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_4.t
 script_test_4.stdout: script_test_4
  $(TEST_READELF) -SlW script_test_4 > script_test_4.stdout
 
@@ -2067,7 +2070,7 @@ check_SCRIPTS += script_test_5.sh
 check_DATA += script_test_5.stdout
 MOSTLYCLEANFILES += script_test_5
 script_test_5: script_test_5.o gcctestdir/ld $(srcdir)/script_test_5.t
- $(CXXLINK) -Bgcctestdir/ script_test_5.o -Wl,-T,$(srcdir)/script_test_5.t
+ $(CXXLINK) script_test_5.o -Wl,-T,$(srcdir)/script_test_5.t
 script_test_5.stdout: script_test_5
  $(TEST_READELF) -SW script_test_5 > script_test_5.stdout
 
@@ -2075,7 +2078,7 @@ check_SCRIPTS += script_test_6.sh
 check_DATA += script_test_6.stdout
 MOSTLYCLEANFILES += script_test_6
 script_test_6: basic_test.o gcctestdir/ld $(srcdir)/script_test_6.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_6.t \
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_6.t \
  -Wl,-Ttext=0x10001000 -Wl,-Tdata=0x10200000 -Wl,-Tbss=0x10400000
 script_test_6.stdout: script_test_6
  $(TEST_READELF) -SlW script_test_6 > script_test_6.stdout
@@ -2084,7 +2087,7 @@ check_SCRIPTS += script_test_7.sh
 check_DATA += script_test_7.stdout
 MOSTLYCLEANFILES += script_test_7
 script_test_7: basic_test.o gcctestdir/ld $(srcdir)/script_test_7.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_7.t
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_7.t
 script_test_7.stdout: script_test_7
  $(TEST_READELF) -SlW script_test_7 > script_test_7.stdout
 
@@ -2092,7 +2095,7 @@ check_SCRIPTS += script_test_8.sh
 check_DATA += script_test_8.stdout
 MOSTLYCLEANFILES += script_test_8
 script_test_8: basic_test.o gcctestdir/ld $(srcdir)/script_test_7.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o -Wl,-T,$(srcdir)/script_test_7.t \
+ $(CXXLINK) basic_test.o -Wl,-T,$(srcdir)/script_test_7.t \
  -Wl,-Ttext=0x20001000 -Wl,-Tdata=0x20200000 -Wl,-Tbss=0x20400000
 script_test_8.stdout: script_test_8
  $(TEST_READELF) -SlW script_test_8 > script_test_8.stdout
@@ -2103,7 +2106,7 @@ MOSTLYCLEANFILES += script_test_9
 script_test_9.o: script_test_9.cc
  $(CXXCOMPILE) -O0 -c -o $@ $<
 script_test_9: gcctestdir/ld $(srcdir)/script_test_9.t script_test_9.o
- $(CXXLINK) -Bgcctestdir/ script_test_9.o -Wl,-T,$(srcdir)/script_test_9.t
+ $(CXXLINK) script_test_9.o -Wl,-T,$(srcdir)/script_test_9.t
 script_test_9.stdout: script_test_9
  $(TEST_READELF) -lW script_test_9 > script_test_9.stdout
 
@@ -2112,7 +2115,7 @@ script_test_9.stdout: script_test_9
 # 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
+ $(LINK) script_test_11_r.o
 script_test_11_r.o: gcctestdir/ld $(srcdir)/script_test_11.t script_test_11a.o script_test_11b.o
  gcctestdir/ld -r -o $@ -T $(srcdir)/script_test_11.t script_test_11a.o script_test_11b.o
 script_test_11a.o: script_test_11a.c
@@ -2123,11 +2126,11 @@ script_test_11b.o: script_test_11b.c
 # Test difference between "*(a b)" and "*(a) *(b)" in input section spec.
 check_PROGRAMS += script_test_12
 script_test_12: gcctestdir/ld $(srcdir)/script_test_12.t script_test_12a.o script_test_12b.o
- $(LINK) -Bgcctestdir/ -Wl,-T,$(srcdir)/script_test_12.t script_test_12a.o script_test_12b.o
+ $(LINK) -Wl,-T,$(srcdir)/script_test_12.t script_test_12a.o script_test_12b.o
 
 check_PROGRAMS += script_test_12i
 script_test_12i: gcctestdir/ld $(srcdir)/script_test_12i.t script_test_12a.o script_test_12b.o
- $(LINK) -Bgcctestdir/ -Wl,-T,$(srcdir)/script_test_12i.t script_test_12a.o script_test_12b.o
+ $(LINK) -Wl,-T,$(srcdir)/script_test_12i.t script_test_12a.o script_test_12b.o
 script_test_12a.o: script_test_12a.c
  $(COMPILE) -O0 -c -o $@ $<
 script_test_12b.o: script_test_12b.c
@@ -2189,7 +2192,7 @@ check_SCRIPTS += dynamic_list.sh
 check_DATA += dynamic_list.stdout
 MOSTLYCLEANFILES += dynamic_list dynamic_list.stdout
 dynamic_list: basic_test.o gcctestdir/ld $(srcdir)/dynamic_list.t
- $(CXXLINK) -Bgcctestdir/ basic_test.o \
+ $(CXXLINK) basic_test.o \
   -Wl,--dynamic-list $(srcdir)/dynamic_list.t \
   -Wl,--dynamic-list-data \
   -Wl,--dynamic-list-cpp-new \
@@ -2200,16 +2203,16 @@ dynamic_list.stdout: dynamic_list
 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_LDFLAGS = -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
+ $(CXXLINK) -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,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
+ $(CXXLINK) -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
 dynamic_list_lib2.o: dynamic_list_lib2.cc
  $(CXXCOMPILE) -c -fpic -o $@ $<
 
@@ -2219,13 +2222,13 @@ MOSTLYCLEANFILES += libthin1.a libthin3.a libthinall.a \
  alt/libthin2.a alt/libthin4.a
 thin_archive_test_1_SOURCES = thin_archive_main.cc
 thin_archive_test_1_DEPENDENCIES = gcctestdir/ld libthin1.a alt/libthin2.a
-thin_archive_test_1_LDFLAGS = -Bgcctestdir/ -Lalt
+thin_archive_test_1_LDFLAGS = -Lalt
 thin_archive_test_1_LDADD = libthin1.a -lthin2
 
 check_PROGRAMS += thin_archive_test_2
 thin_archive_test_2_SOURCES = thin_archive_main.cc
 thin_archive_test_2_DEPENDENCIES = gcctestdir/ld libthinall.a
-thin_archive_test_2_LDFLAGS = -Bgcctestdir/ -L.
+thin_archive_test_2_LDFLAGS = -L.
 thin_archive_test_2_LDADD = -lthinall
 
 libthin1.a: thin_archive_test_1.o alt/thin_archive_test_2.o
@@ -2257,7 +2260,7 @@ check_SCRIPTS += plugin_test_1.sh
 check_DATA += plugin_test_1.err
 MOSTLYCLEANFILES += plugin_test_1.err
 plugin_test_1: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--emit-relocs,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms 2>plugin_test_1.err
+ $(CXXLINK) -Wl,--no-demangle,--emit-relocs,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms 2>plugin_test_1.err
 plugin_test_1.err: plugin_test_1
  @touch plugin_test_1.err
 
@@ -2266,7 +2269,7 @@ check_SCRIPTS += plugin_test_2.sh
 check_DATA += plugin_test_2.err
 MOSTLYCLEANFILES += plugin_test_2.err
 plugin_test_2: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_shared_2.so gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,-R,.,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_shared_2.so 2>plugin_test_2.err
+ $(CXXLINK) -Wl,--no-demangle,-R,.,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_shared_2.so 2>plugin_test_2.err
 plugin_test_2.err: plugin_test_2
  @touch plugin_test_2.err
 
@@ -2275,7 +2278,7 @@ check_SCRIPTS += plugin_test_3.sh
 check_DATA += plugin_test_3.err
 MOSTLYCLEANFILES += plugin_test_3.err
 plugin_test_3: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--export-dynamic -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms 2>plugin_test_3.err
+ $(CXXLINK) -Wl,--export-dynamic -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms empty.o.syms 2>plugin_test_3.err
 plugin_test_3.err: plugin_test_3
  @touch plugin_test_3.err
 
@@ -2284,7 +2287,7 @@ check_SCRIPTS += plugin_test_4.sh
 check_DATA += plugin_test_4.err
 MOSTLYCLEANFILES += plugin_test_4.a plugin_test_4.err
 plugin_test_4: two_file_test_main.o plugin_test_4.a gcctestdir/ld plugin_test.so
- $(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
+ $(CXXLINK) -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
 plugin_test_4.err: plugin_test_4
  @touch plugin_test_4.err
 
@@ -2293,14 +2296,14 @@ plugin_test_4.a: two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.
 
 check_PROGRAMS += plugin_test_5
 plugin_test_5: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms unused.o.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv",--gc-sections two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms unused.o.syms
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv",--gc-sections two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms unused.o.syms
 
 check_PROGRAMS += plugin_test_6
 check_SCRIPTS += plugin_test_6.sh
 check_DATA += plugin_test_6.err
 MOSTLYCLEANFILES += plugin_test_6.err
 plugin_test_6: plugin_common_test_1.o.syms plugin_common_test_2.o.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.o.syms plugin_common_test_2.o.syms 2>plugin_test_6.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.o.syms plugin_common_test_2.o.syms 2>plugin_test_6.err
 plugin_test_6.err: plugin_test_6
  @touch plugin_test_6.err
 
@@ -2309,7 +2312,7 @@ check_SCRIPTS += plugin_test_7.sh
 check_DATA += plugin_test_7.err plugin_test_7.o.syms
 MOSTLYCLEANFILES += plugin_test_7.err
 plugin_test_7: plugin_test_7_1.o plugin_test_7_1.o.syms plugin_test_7_2.o gcctestdir/ld plugin_test.so
- $(LINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--gc-sections,--print-gc-sections plugin_test_7_1.o.syms plugin_test_7_2.o 2>plugin_test_7.err
+ $(LINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--gc-sections,--print-gc-sections plugin_test_7_1.o.syms plugin_test_7_2.o 2>plugin_test_7.err
 plugin_test_7.o.syms: plugin_test_7
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 plugin_test_7_1.o: plugin_test_7_1.c
@@ -2327,15 +2330,15 @@ check_PROGRAMS += plugin_test_8
 plugin_test_8.o: two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o ../ld-new plugin_test.so
  ../ld-new -r -o $@ --no-demangle --plugin "./plugin_test.so" two_file_test_main.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o
 plugin_test_8: plugin_test_8.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle plugin_test_8.o
+ $(CXXLINK) -Wl,--no-demangle plugin_test_8.o
 
 # Test that symbols known in the IR file but not in the replacement file
 # produce an unresolved symbol error.
 check_DATA += plugin_test_9.err
 MOSTLYCLEANFILES += plugin_test_9.err
 plugin_test_9.err: two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms gcctestdir/ld plugin_test.so
- @echo $(CXXLINK) -Bgcctestdir/ -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms 2>$@; then \
+ @echo $(CXXLINK) -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms "2>$@"
+ @if $(CXXLINK) -o plugin_test_9 -Wl,--no-demangle,--plugin,"./plugin_test.so" two_file_test_main.o two_file_test_1c.o.syms two_file_test_2.o.syms 2>$@; then \
   echo 1>&2 "Link of plugin_test_9 should have failed"; \
   rm -f $@; \
   exit 1; \
@@ -2355,8 +2358,8 @@ two_file_test_1c.o: two_file_test_1.o
 check_DATA += plugin_test_9b.err
 MOSTLYCLEANFILES += plugin_test_9b.err
 plugin_test_9b.err: plugin_test_9b_ir.o.syms plugin_test_9b_ir.o plugin_test_9b_elf.o gcctestdir/ld plugin_test.so
- @echo $(CXXLINK) -Bgcctestdir/ -o plugin_test_9b -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_ZN1A5printEv" plugin_test_9b_ir.o plugin_test_9b_elf.o "2>$@"
- @if $(CXXLINK) -Bgcctestdir/ -o plugin_test_9b -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_ZN1A5printEv" plugin_test_9b_ir.o plugin_test_9b_elf.o 2>$@; then \
+ @echo $(CXXLINK) -o plugin_test_9b -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_ZN1A5printEv" plugin_test_9b_ir.o plugin_test_9b_elf.o "2>$@"
+ @if $(CXXLINK) -o plugin_test_9b -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_ZN1A5printEv" plugin_test_9b_ir.o plugin_test_9b_elf.o 2>$@; then \
   echo 1>&2 "Link of plugin_test_9b should have failed"; \
   rm -f $@; \
   exit 1; \
@@ -2373,8 +2376,8 @@ check_PROGRAMS += plugin_test_10
 check_SCRIPTS += plugin_test_10.sh
 check_DATA += plugin_test_10.sections
 MOSTLYCLEANFILES += plugin_test_10.sections
-plugin_test_10: plugin_common_test_1.o.syms plugin_common_test_2.o  gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.o.syms plugin_common_test_2.o
+plugin_test_10: plugin_common_test_1.o.syms plugin_common_test_2.o gcctestdir/ld plugin_test.so
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_common_test_1.o.syms plugin_common_test_2.o
 plugin_test_10.sections: plugin_test_10
  $(TEST_READELF) -SW $< >$@ 2>/dev/null
 
@@ -2384,7 +2387,7 @@ check_DATA += plugin_test_11.err
 MOSTLYCLEANFILES += plugin_test_11.err plugin_test_thin.a
 PLUGIN_TEST_11_SYMS = two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2.o.syms
 plugin_test_11: two_file_test_main.o plugin_test_thin.a gcctestdir/ld plugin_test.so $(PLUGIN_TEST_11_SYMS)
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o plugin_test_thin.a 2>plugin_test_11.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_main.o plugin_test_thin.a 2>plugin_test_11.err
 plugin_test_11.err: plugin_test_11
  @touch plugin_test_11.err
 plugin_test_thin.a: two_file_test_1.o two_file_test_1b.o two_file_test_2.o
@@ -2400,7 +2403,7 @@ export_dynamic_plugin.o.syms: export_dynamic_plugin.o
 export_dynamic_plugin.o: export_dynamic_plugin.cc
  $(COMPILE) -c -o $@ $<
 plugin_test_12: export_dynamic_plugin.o gcctestdir/ld plugin_test.so export_dynamic_plugin.o.syms
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z3foov" -Wl,--export-dynamic-symbol,"_Z3foov" export_dynamic_plugin.o.syms 2>plugin_test_12.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z3foov" -Wl,--export-dynamic-symbol,"_Z3foov" export_dynamic_plugin.o.syms 2>plugin_test_12.err
 plugin_test_12.err: plugin_test_12
  @touch plugin_test_12.err
 
@@ -2413,7 +2416,7 @@ plugin_test_wrap_symbols_1.o: plugin_test_wrap_symbols_1.cc
 plugin_test_wrap_symbols_2.o: plugin_test_wrap_symbols_2.cc
  $(COMPILE) -c -o $@ $<
 plugin_test_wrap_symbols: plugin_test_wrap_symbols_1.o plugin_test_wrap_symbols_2.o gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_test.so" -Wl,--wrap=hello,--wrap=jello plugin_test_wrap_symbols_1.o plugin_test_wrap_symbols_2.o 2>plugin_test_wrap_symbols.err
+ $(CXXLINK) -Wl,--plugin,"./plugin_test.so" -Wl,--wrap=hello,--wrap=jello plugin_test_wrap_symbols_1.o plugin_test_wrap_symbols_2.o 2>plugin_test_wrap_symbols.err
 plugin_test_wrap_symbols.err: plugin_test_wrap_symbols
  @touch plugin_test_wrap_symbols.err
 
@@ -2422,7 +2425,7 @@ check_SCRIPTS += plugin_test_start_lib.sh
 check_DATA += plugin_test_start_lib.err
 MOSTLYCLEANFILES += plugin_test_start_lib.err
 plugin_test_start_lib: unused.o plugin_start_lib_test.o plugin_start_lib_test_2.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_start_lib_test.o \
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so" plugin_start_lib_test.o \
  -Wl,--start-lib plugin_start_lib_test_2.syms -Wl,--end-lib 2>plugin_test_start_lib.err
 plugin_test_start_lib.err: plugin_test_start_lib
  @touch plugin_test_start_lib.err
@@ -2436,7 +2439,7 @@ plugin_test_defsym.syms: plugin_test_defsym.o
 plugin_test_defsym.o: plugin_test_defsym.c
  $(COMPILE) -c -o $@ $<
 plugin_test_defsym: plugin_test_defsym.o plugin_test_defsym.syms gcctestdir/ld plugin_test.so
- $(CXXLINK) -Bgcctestdir/ -Wl,--no-demangle,--plugin,"./plugin_test.so" -Wl,--defsym,bar=foo plugin_test_defsym.syms 2>plugin_test_defsym.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so" -Wl,--defsym,bar=foo plugin_test_defsym.syms 2>plugin_test_defsym.err
 plugin_test_defsym.err: plugin_test_defsym
  @touch plugin_test_defsym.err
 
@@ -2444,7 +2447,7 @@ plugin_start_lib_test_2.syms: plugin_start_lib_test_2.o
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 
 plugin_test.so: plugin_test.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared plugin_test.o
+ $(LINK) -shared plugin_test.o
 plugin_test.o: plugin_test.c
  $(COMPILE) -O0 -c -fpic -o $@ $<
 
@@ -2472,7 +2475,7 @@ 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.o.syms two_file_test_1b.o.syms two_file_test_2_tls.o.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.o.syms two_file_test_1b.o.syms two_file_test_2_tls.o.syms 2>plugin_test_tls.err
+ $(CXXLINK) -Wl,--no-demangle,--plugin,"./plugin_test.so",--plugin-opt,"_Z4f13iv" two_file_test_tls.o two_file_test_1.o.syms two_file_test_1b.o.syms two_file_test_2_tls.o.syms 2>plugin_test_tls.err
 plugin_test_tls.err: plugin_test_tls
  @touch plugin_test_tls.err
 
@@ -2494,16 +2497,16 @@ check_SCRIPTS += plugin_final_layout.sh
 check_DATA += plugin_final_layout.stdout plugin_final_layout_readelf.stdout
 MOSTLYCLEANFILES += plugin_final_layout
 plugin_final_layout.o: plugin_final_layout.cc
- $(CXXCOMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
+ $(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
+ $(CXXLINK) -Wl,--plugin,"./plugin_section_order.so" plugin_final_layout.o
 plugin_final_layout.stdout: plugin_final_layout
  $(TEST_NM) -n --synthetic 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 gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared plugin_section_order.o
+ $(LINK) -shared plugin_section_order.o
 plugin_section_order.o: plugin_section_order.c
  $(COMPILE) -O0 -c -fpic -o $@ $<
 
@@ -2513,14 +2516,14 @@ MOSTLYCLEANFILES += plugin_layout_new_file
 plugin_final_layout.o.syms: plugin_final_layout.o
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 plugin_layout_new_file: plugin_final_layout.o.syms plugin_test.so plugin_new_section_layout.so gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_test.so"  -Wl,--plugin,"./plugin_new_section_layout.so" plugin_final_layout.o.syms
+ $(CXXLINK) -Wl,--plugin,"./plugin_test.so"  -Wl,--plugin,"./plugin_new_section_layout.so" plugin_final_layout.o.syms
 plugin_layout_new_file.stdout: plugin_layout_new_file
  $(TEST_NM) -n --synthetic plugin_layout_new_file > plugin_layout_new_file.stdout
 plugin_layout_new_file_readelf.stdout: plugin_layout_new_file
  $(TEST_READELF) -Wl plugin_layout_new_file > plugin_layout_new_file_readelf.stdout
 
 plugin_new_section_layout.so: plugin_new_section_layout.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared plugin_new_section_layout.o
+ $(LINK) -shared plugin_new_section_layout.o
 plugin_new_section_layout.o: plugin_new_section_layout.c
  $(COMPILE) -O0 -c -fpic -o $@ $<
 
@@ -2528,14 +2531,14 @@ check_SCRIPTS += plugin_layout_with_alignment.sh
 check_DATA += plugin_layout_with_alignment.stdout
 MOSTLYCLEANFILES += plugin_layout_with_alignment
 plugin_layout_with_alignment.o: plugin_layout_with_alignment.c
- $(COMPILE) -O0 -c -ffunction-sections  -fdata-sections -g -o $@ $<
+ $(COMPILE) -O0 -c -ffunction-sections -fdata-sections -g -o $@ $<
 plugin_layout_with_alignment: plugin_layout_with_alignment.o plugin_section_alignment.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,--plugin,"./plugin_section_alignment.so" plugin_layout_with_alignment.o
+ $(LINK) -Wl,--plugin,"./plugin_section_alignment.so" plugin_layout_with_alignment.o
 plugin_layout_with_alignment.stdout: plugin_layout_with_alignment
  $(TEST_NM) -n --synthetic plugin_layout_with_alignment > plugin_layout_with_alignment.stdout
 
 plugin_section_alignment.so: plugin_section_alignment.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -shared plugin_section_alignment.o
+ $(CXXLINK) -shared plugin_section_alignment.o
 plugin_section_alignment.o: plugin_section_alignment.cc
  $(CXXCOMPILE) -O0 -c -fpic -o $@ $<
 
@@ -2545,7 +2548,7 @@ MOSTLYCLEANFILES += plugin_pr22868.stdout
 plugin_pr22868.stdout: plugin_pr22868.so
  $(TEST_READELF) -W --dyn-syms $< >$@ 2>/dev/null
 plugin_pr22868.so: plugin_pr22868_a.o.syms plugin_pr22868_b.o.syms plugin_pr22868_b.o plugin_test.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared -Wl,--plugin,"./plugin_test.so" plugin_pr22868_a.o.syms plugin_pr22868_b.o.syms
+ $(LINK) -shared -Wl,--plugin,"./plugin_test.so" plugin_pr22868_a.o.syms plugin_pr22868_b.o.syms
 plugin_pr22868_a.o.syms: plugin_pr22868_a.o
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 # Generate the .syms file from an alternate version of the original source
@@ -2583,11 +2586,11 @@ check_PROGRAMS += exclude_libs_test
 check_SCRIPTS += exclude_libs_test.sh
 check_DATA += exclude_libs_test.syms
 MOSTLYCLEANFILES += exclude_libs_test.syms libexclude_libs_test_1.a \
-        libexclude_libs_test_2.a alt/libexclude_libs_test_3.a
+ libexclude_libs_test_2.a alt/libexclude_libs_test_3.a
 exclude_libs_test_SOURCES = exclude_libs_test.c
 exclude_libs_test_DEPENDENCIES = gcctestdir/ld libexclude_libs_test_1.a \
  libexclude_libs_test_2.a alt/libexclude_libs_test_3.a
-exclude_libs_test_LDFLAGS = -Bgcctestdir/ -L. -Lalt \
+exclude_libs_test_LDFLAGS = -L. -Lalt \
  -Wl,--exclude-libs,dummy:libexclude_libs_test_1 \
  -Wl,--exclude-libs,libexclude_libs_test_3
 exclude_libs_test_LDADD = -lexclude_libs_test_1 -lexclude_libs_test_2 \
@@ -2606,7 +2609,7 @@ check_PROGRAMS += local_labels_test
 local_labels_test.o: ver_test_6.c
  $(COMPILE) -g -c -Wa,-L -o $@ $<
 local_labels_test: local_labels_test.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ local_labels_test.o
+ $(LINK) local_labels_test.o
 
 check_PROGRAMS += discard_locals_test
 check_SCRIPTS += discard_locals_test.sh
@@ -2619,7 +2622,7 @@ MOSTLYCLEANFILES += discard_locals_test.syms \
  discard_locals_relocatable_test1.out \
  discard_locals_relocatable_test2.out
 discard_locals_test_SOURCES = discard_locals_test.c
-discard_locals_test_LDFLAGS = -Bgcctestdir/ -Wl,--discard-locals
+discard_locals_test_LDFLAGS = -Wl,--discard-locals
 discard_locals_test.syms: discard_locals_test
  $(TEST_READELF) -sW $< >$@ 2>/dev/null
 # '-Wa,-L' is required to preserve the local label used for testing.
@@ -2643,7 +2646,6 @@ check_PROGRAMS += large
 large_SOURCES = large.c
 large_CFLAGS = -mcmodel=medium
 large_DEPENDENCIES = gcctestdir/ld
-large_LDFLAGS = -Bgcctestdir/
 large_LDADD =
 endif MCMODEL_MEDIUM
 
@@ -2653,9 +2655,9 @@ check_SCRIPTS += hidden_test.sh
 check_DATA += hidden_test.err
 MOSTLYCLEANFILES += hidden_test hidden_test.err hidden_test.syms
 libhidden.so: hidden_test_1.c gcctestdir/ld
- $(COMPILE) -Bgcctestdir/ -g -shared -fPIC -w -o $@ $(srcdir)/hidden_test_1.c
+ $(COMPILE) -g -shared -fPIC -w -o $@ $(srcdir)/hidden_test_1.c
 hidden_test: hidden_test_main.o libhidden.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,-R,. hidden_test_main.o libhidden.so 2>hidden_test.err
+ $(LINK) -Wl,-R,. hidden_test_main.o libhidden.so 2>hidden_test.err
 hidden_test.syms: hidden_test
  $(TEST_NM) -D hidden_test > $@
 hidden_test.err: hidden_test
@@ -2665,14 +2667,14 @@ hidden_test.err: hidden_test
 check_SCRIPTS += retain_symbols_file_test.sh
 check_DATA += retain_symbols_file_test.stdout
 MOSTLYCLEANFILES += retain_symbols_file_test retain_symbols_file_test.in \
-                    retain_symbols_file_test.stdout
+    retain_symbols_file_test.stdout
 retain_symbols_file_test.so: basic_pic_test.o gcctestdir/ld
  echo 'main' > retain_symbols_file_test.in
  echo 't1' >> retain_symbols_file_test.in
  echo '_ZNK4t20a3getEv' >> retain_symbols_file_test.in
  echo '_Z3t18v' >> retain_symbols_file_test.in
  echo '__tcf_0' >> retain_symbols_file_test.in
- $(CXXLINK) -Bgcctestdir/ -shared -Wl,-retain-symbols-file,retain_symbols_file_test.in basic_pic_test.o
+ $(CXXLINK) -shared -Wl,-retain-symbols-file,retain_symbols_file_test.in basic_pic_test.o
 retain_symbols_file_test.stdout: retain_symbols_file_test.so
  $(TEST_NM) -C retain_symbols_file_test.so > $@
 
@@ -2685,15 +2687,15 @@ permission_test: basic_test.o gcctestdir/ld
  rm -f $@; \
  touch $@; \
  chmod 600 $@; \
- $(CXXLINK) -Bgcctestdir/ basic_test.o
+ $(CXXLINK) basic_test.o
 
 # Check -l:foo.a
 check_PROGRAMS += searched_file_test
 MOSTLYCLEANFILES += searched_file_test searched_file_test_lib.o \
-                    alt/searched_file_test_lib.a
+    alt/searched_file_test_lib.a
 searched_file_test_SOURCES = searched_file_test.cc
 searched_file_test_DEPENDENCIES = gcctestdir/ld alt/searched_file_test_lib.a
-searched_file_test_LDFLAGS = -Bgcctestdir/ -Lalt
+searched_file_test_LDFLAGS = -Lalt
 searched_file_test_LDADD = -l:searched_file_test_lib.a
 searched_file_test_lib.o: searched_file_test_lib.cc
  $(CXXCOMPILE) -c -o $@ $<
@@ -2721,7 +2723,7 @@ if IFUNC
 ifuncmod1.o: ifuncmod1.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmod1.so: ifuncmod1.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncmod1.o
+ $(LINK) -shared ifuncmod1.o
 
 ifuncdep1.o: ifuncmod1.c
  $(COMPILE) -c -o $@ $<
@@ -2736,12 +2738,12 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain1static
 ifuncmain1static_SOURCES = ifuncmain1.c
 ifuncmain1static_DEPENDENCIES = gcctestdir/ld ifuncdep1.o
-ifuncmain1static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain1static_LDFLAGS = -static
 ifuncmain1static_LDADD = ifuncdep1.o
 
 check_PROGRAMS += ifuncmain1picstatic
 ifuncmain1picstatic: ifuncmain1pic.o ifuncmod1.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain1pic.o ifuncmod1.o
+ $(LINK) -static ifuncmain1pic.o ifuncmod1.o
 
 check_SCRIPTS += ifuncmod1.sh
 check_DATA += ifuncmod1.so.stderr
@@ -2753,42 +2755,42 @@ endif
 check_PROGRAMS += ifuncmain1
 ifuncmain1_SOURCES = ifuncmain1.c
 ifuncmain1_DEPENDENCIES = gcctestdir/ld ifuncmod1.so
-ifuncmain1_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ifuncmain1_LDFLAGS = -Wl,-R,.
 ifuncmain1_LDADD = ifuncmod1.so
 
 check_PROGRAMS += ifuncmain1pic
 ifuncmain1pic: ifuncmain1pic.o ifuncmod1.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
+ $(LINK) ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain1vis
 ifuncmain1vis_SOURCES = ifuncmain1vis.c
 ifuncmain1vis_DEPENDENCIES = gcctestdir/ld ifuncmod1.so
-ifuncmain1vis_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ifuncmain1vis_LDFLAGS = -Wl,-R,.
 ifuncmain1vis_LDADD = ifuncmod1.so
 
 check_PROGRAMS += ifuncmain1vispic
 ifuncmain1vispic.o: ifuncmain1vis.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmain1vispic: ifuncmain1vispic.o ifuncmod1.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
+ $(LINK) ifuncmain1pic.o ifuncmod1.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain1staticpic
 ifuncmain1staticpic: ifuncmain1pic.o ifuncmod1.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain1pic.o ifuncmod1.o
+ $(LINK) ifuncmain1pic.o ifuncmod1.o
 
 check_PROGRAMS += ifuncmain1pie
 ifuncmain1pie: ifuncmain1pie.o ifuncmod1.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain1pie.o ifuncmod1.so -Wl,-R,.
+ $(LINK) -pie ifuncmain1pie.o ifuncmod1.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain1vispie
 ifuncmain1vispie.o: ifuncmain1vis.c
  $(COMPILE) -c -fPIE -o $@ $<
 ifuncmain1vispie: ifuncmain1vispie.o ifuncmod1.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain1vispie.o ifuncmod1.so -Wl,-R,.
+ $(LINK) -pie ifuncmain1vispie.o ifuncmod1.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain1staticpie
 ifuncmain1staticpie: ifuncmain1pie.o ifuncmod1.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain1pie.o ifuncmod1.o
+ $(LINK) -pie ifuncmain1pie.o ifuncmod1.o
 
 ifuncmain2pic.o: ifuncmain2.c
  $(COMPILE) -c -fPIC -o $@ $<
@@ -2801,34 +2803,33 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain2static
 ifuncmain2static_SOURCES = ifuncmain2.c ifuncdep2.c
 ifuncmain2static_DEPENDENCIES = gcctestdir/ld
-ifuncmain2static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain2static_LDFLAGS = -static
 ifuncmain2static_LDADD =
 
 check_PROGRAMS += ifuncmain2picstatic
 ifuncmain2picstatic: ifuncmain2pic.o ifuncdep2pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain2pic.o ifuncdep2pic.o
+ $(LINK) -static ifuncmain2pic.o ifuncdep2pic.o
 endif
 endif
 
 check_PROGRAMS += ifuncmain2
 ifuncmain2_SOURCES = ifuncmain2.c ifuncdep2.c
 ifuncmain2_DEPENDENCIES = gcctestdir/ld
-ifuncmain2_LDFLAGS = -Bgcctestdir/
 ifuncmain2_LDADD =
 
 check_PROGRAMS += ifuncmain2pic
 ifuncmain2pic: ifuncmain2pic.o ifuncdep2pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain2pic.o ifuncdep2pic.o
+ $(LINK) ifuncmain2pic.o ifuncdep2pic.o
 
 ifuncmod3.o: ifuncmod3.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmod3.so: ifuncmod3.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncmod3.o
+ $(LINK) -shared ifuncmod3.o
 
 check_PROGRAMS += ifuncmain3
 ifuncmain3_SOURCES = ifuncmain3.c
 ifuncmain3_DEPENDENCIES = gcctestdir/ld ifuncmod3.so
-ifuncmain3_LDFLAGS = -Bgcctestdir/ -Wl,--export-dynamic -Wl,-R,.
+ifuncmain3_LDFLAGS = -Wl,--export-dynamic -Wl,-R,.
 ifuncmain3_LDADD = -ldl
 
 ifuncmain4pic.o: ifuncmain4.c
@@ -2839,19 +2840,18 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain4static
 ifuncmain4static_SOURCES = ifuncmain4.c
 ifuncmain4static_DEPENDENCIES = gcctestdir/ld
-ifuncmain4static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain4static_LDFLAGS = -static
 ifuncmain4static_LDADD =
 
 check_PROGRAMS += ifuncmain4picstatic
 ifuncmain4picstatic: ifuncmain4pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain4pic.o
+ $(LINK) -static ifuncmain4pic.o
 endif
 endif
 
 check_PROGRAMS += ifuncmain4
 ifuncmain4_SOURCES = ifuncmain4.c
 ifuncmain4_DEPENDENCIES = gcctestdir/ld
-ifuncmain4_LDFLAGS = -Bgcctestdir/
 ifuncmain4_LDADD =
 
 ifuncmain5pic.o: ifuncmain5.c
@@ -2863,7 +2863,7 @@ ifuncmain5pie.o: ifuncmain5.c
 ifuncmod5.o: ifuncmod5.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmod5.so: ifuncmod5.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncmod5.o
+ $(LINK) -shared ifuncmod5.o
 
 ifuncdep5.o: ifuncmod5.c
  $(COMPILE) -c -o $@ $<
@@ -2873,32 +2873,32 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain5static
 ifuncmain5static_SOURCES = ifuncmain5.c
 ifuncmain5static_DEPENDENCIES = gcctestdir/ld ifuncdep5.o
-ifuncmain5static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain5static_LDFLAGS = -static
 ifuncmain5static_LDADD = ifuncdep5.o
 
 check_PROGRAMS += ifuncmain5picstatic
 ifuncmain5picstatic: ifuncmain5pic.o ifuncmod5.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain5pic.o ifuncmod5.o
+ $(LINK) -static ifuncmain5pic.o ifuncmod5.o
 endif
 endif
 
 check_PROGRAMS += ifuncmain5
 ifuncmain5_SOURCES = ifuncmain5.c
 ifuncmain5_DEPENDENCIES = gcctestdir/ld ifuncmod5.so
-ifuncmain5_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ifuncmain5_LDFLAGS = -Wl,-R,.
 ifuncmain5_LDADD = ifuncmod5.so
 
 check_PROGRAMS += ifuncmain5pic
 ifuncmain5pic: ifuncmain5pic.o ifuncmod5.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain5pic.o ifuncmod5.so -Wl,-R,.
+ $(LINK) ifuncmain5pic.o ifuncmod5.so -Wl,-R,.
 
 check_PROGRAMS += ifuncmain5staticpic
 ifuncmain5staticpic: ifuncmain5pic.o ifuncmod5.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain5pic.o ifuncmod5.o
+ $(LINK) ifuncmain5pic.o ifuncmod5.o
 
 check_PROGRAMS += ifuncmain5pie
 ifuncmain5pie: ifuncmain5pie.o ifuncmod5.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain5pie.o ifuncmod5.so -Wl,-R,.
+ $(LINK) -pie ifuncmain5pie.o ifuncmod5.so -Wl,-R,.
 
 ifuncmain6pie.o: ifuncmain6pie.c
  $(COMPILE) -c -fPIE -o $@ $<
@@ -2906,11 +2906,11 @@ ifuncmain6pie.o: ifuncmain6pie.c
 ifuncmod6.o: ifuncmod6.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncmod6.so: ifuncmod6.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncmod6.o
+ $(LINK) -shared ifuncmod6.o
 
 check_PROGRAMS += ifuncmain6pie
 ifuncmain6pie: ifuncmain6pie.o ifuncmod6.so gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain6pie.o ifuncmod6.so -Wl,-R,.
+ $(LINK) -pie ifuncmain6pie.o ifuncmod6.so -Wl,-R,.
 
 ifuncmain7pic.o: ifuncmain7.c
  $(COMPILE) -c -fPIC -o $@ $<
@@ -2923,28 +2923,27 @@ if IFUNC_STATIC
 check_PROGRAMS += ifuncmain7static
 ifuncmain7static_SOURCES = ifuncmain7.c
 ifuncmain7static_DEPENDENCIES = gcctestdir/ld
-ifuncmain7static_LDFLAGS = -Bgcctestdir/ -static
+ifuncmain7static_LDFLAGS = -static
 ifuncmain7static_LDADD =
 
 check_PROGRAMS += ifuncmain7picstatic
 ifuncmain7picstatic: ifuncmain7pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -static ifuncmain7pic.o
+ $(LINK) -static ifuncmain7pic.o
 endif
 endif
 
 check_PROGRAMS += ifuncmain7
 ifuncmain7_SOURCES = ifuncmain7.c
 ifuncmain7_DEPENDENCIES = gcctestdir/ld
-ifuncmain7_LDFLAGS = -Bgcctestdir/
 ifuncmain7_LDADD =
 
 check_PROGRAMS += ifuncmain7pic
 ifuncmain7pic: ifuncmain7pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ ifuncmain7pic.o
+ $(LINK) ifuncmain7pic.o
 
 check_PROGRAMS += ifuncmain7pie
 ifuncmain7pie: ifuncmain7pie.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -pie ifuncmain7pie.o
+ $(LINK) -pie ifuncmain7pie.o
 
 check_PROGRAMS += ifuncvar
 ifuncvar1_pic.o: ifuncvar1.c
@@ -2952,10 +2951,10 @@ ifuncvar1_pic.o: ifuncvar1.c
 ifuncvar2_pic.o: ifuncvar2.c
  $(COMPILE) -c -fPIC -o $@ $<
 ifuncvar.so: ifuncvar1_pic.o ifuncvar2_pic.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -shared ifuncvar1_pic.o ifuncvar2_pic.o
+ $(LINK) -shared ifuncvar1_pic.o ifuncvar2_pic.o
 ifuncvar_SOURCES = ifuncvar3.c
 ifuncvar_DEPENDENCIES = gcctestdir/ld ifuncvar.so
-ifuncvar_LDFLAGS = -Bgcctestdir/ -Wl,-R,.
+ifuncvar_LDFLAGS = -Wl,-R,.
 ifuncvar_LDADD = ifuncvar.so
 
 endif IFUNC
@@ -3003,7 +3002,7 @@ check_PROGRAMS += start_lib_test
 MOSTLYCLEANFILES += libstart_lib_test.a
 start_lib_test: start_lib_test_main.o libstart_lib_test.a start_lib_test_2.o start_lib_test_3.o \
  gcctestdir/ld
- $(LINK) -Bgcctestdir/ -o $@ start_lib_test_main.o -L. -lstart_lib_test \
+ $(LINK) -o $@ start_lib_test_main.o -L. -lstart_lib_test \
  -Wl,--start-lib start_lib_test_2.o start_lib_test_3.o -Wl,--end-lib
 libstart_lib_test.a: start_lib_test_1.o
  $(TEST_AR) rc $@ $^
@@ -3015,9 +3014,9 @@ MOSTLYCLEANFILES += memory_test.stdout memory_test memory_test.o
 memory_test.o: memory_test.s
  $(COMPILE) -o $@ -c $<
 memory_test: memory_test.o gcctestdir/ld $(srcdir)/memory_test.t
- $(LINK) -Bgcctestdir/ -nostartfiles -nostdlib -Wl,-z,max-page-size=0x1000 -Wl,-z,common-page-size=0x1000 -Wl,-T,$(srcdir)/memory_test.t -o $@ memory_test.o
+ $(LINK) -nostartfiles -nostdlib -Wl,-z,max-page-size=0x1000 -Wl,-z,common-page-size=0x1000 -Wl,-T,$(srcdir)/memory_test.t -o $@ memory_test.o
 memory_test.stdout: memory_test
- $(TEST_READELF) -lWS  $< > $@
+ $(TEST_READELF) -lWS $< > $@
 
 # Test INCLUDE directives in linker scripts.
 # The binary isn't runnable, so we just check that we can build it without errors.
@@ -3030,7 +3029,7 @@ memory_test_inc_2.t: $(srcdir)/memory_test_inc_2.t.src
 memory_test_inc_3.t: $(srcdir)/memory_test_inc_3.t.src
  cp $< $@
 memory_test_2: memory_test.o gcctestdir/ld $(srcdir)/memory_test.t memory_test_inc_1.t memory_test_inc_2.t memory_test_inc_3.t
- $(LINK) -Bgcctestdir/ -nostartfiles -nostdlib -Wl,-z,max-page-size=0x1000 -Wl,-z,common-page-size=0x1000 -Wl,-T,$(srcdir)/memory_test.t -o $@ memory_test.o
+ $(LINK) -nostartfiles -nostdlib -Wl,-z,max-page-size=0x1000 -Wl,-z,common-page-size=0x1000 -Wl,-T,$(srcdir)/memory_test.t -o $@ memory_test.o
 
 if HAVE_PUBNAMES
 
@@ -3041,7 +3040,7 @@ 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 $@ $<
 gdb_index_test_1: gdb_index_test.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+ $(CXXLINK) -Wl,--gdb-index $<
 gdb_index_test_1.stdout: gdb_index_test_1
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 
@@ -3050,18 +3049,18 @@ check_SCRIPTS += gdb_index_test_2.sh
 check_DATA += gdb_index_test_2.stdout
 MOSTLYCLEANFILES += gdb_index_test_2.stdout gdb_index_test_2 gdb_index_test_2_gabi
 gdb_index_test_cdebug.o: gdb_index_test.cc
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections -c -o $@ $<
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections -c -o $@ $<
 gdb_index_test_2: gdb_index_test_cdebug.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+ $(CXXLINK) -Wl,--gdb-index $<
 gdb_index_test_2.stdout: gdb_index_test_2
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 check_SCRIPTS += gdb_index_test_2_gabi.sh
 check_DATA += gdb_index_test_2_gabi.stdout
 MOSTLYCLEANFILES += gdb_index_test_2.stdout gdb_index_test_2
 gdb_index_test_cdebug_gabi.o: gdb_index_test.cc
- $(CXXCOMPILE) -Bgcctestdir/ -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -o $@ $<
+ $(CXXCOMPILE) -O0 -g -Wa,--compress-debug-sections=zlib-gabi -c -o $@ $<
 gdb_index_test_2_gabi: gdb_index_test_cdebug_gabi.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+ $(CXXLINK) -Wl,--gdb-index $<
 gdb_index_test_2_gabi.stdout: gdb_index_test_2_gabi
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 
@@ -3072,7 +3071,7 @@ MOSTLYCLEANFILES += gdb_index_test_3.stdout gdb_index_test_3
 gdb_index_test_3.o: gdb_index_test_3.c
  $(COMPILE) -O0 -g -c -o $@ $<
 gdb_index_test_3: gdb_index_test_3.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,--gdb-index,--fatal-warnings $<
+ $(LINK) -Wl,--gdb-index,--fatal-warnings $<
 gdb_index_test_3.stdout: gdb_index_test_3
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 
@@ -3083,7 +3082,7 @@ 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 $@ $<
 gdb_index_test_4: gdb_index_test_pub.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,--gdb-index $<
+ $(CXXLINK) -Wl,--gdb-index $<
 gdb_index_test_4.stdout: gdb_index_test_4
  $(TEST_READELF) --debug-dump=gdb_index $< > $@
 
@@ -3094,7 +3093,6 @@ check_PROGRAMS += ehdr_start_test_1
 ehdr_start_test_1_SOURCES = ehdr_start_test.cc
 ehdr_start_test_1_DEPENDENCIES = gcctestdir/ld
 ehdr_start_test_1_CXXFLAGS =
-ehdr_start_test_1_LDFLAGS = -Bgcctestdir/
 ehdr_start_test_1_LDADD =
 
 # Test that __ehdr_start is defined correctly with a weak reference.
@@ -3102,7 +3100,6 @@ check_PROGRAMS += ehdr_start_test_2
 ehdr_start_test_2_SOURCES = ehdr_start_test.cc
 ehdr_start_test_2_DEPENDENCIES = gcctestdir/ld
 ehdr_start_test_2_CXXFLAGS = -DEHDR_START_WEAK
-ehdr_start_test_2_LDFLAGS = -Bgcctestdir/
 ehdr_start_test_2_LDADD =
 
 # Test that __ehdr_start is defined correctly when used with a linker script.
@@ -3110,7 +3107,7 @@ check_PROGRAMS += ehdr_start_test_3
 ehdr_start_test_3_SOURCES = ehdr_start_test.cc
 ehdr_start_test_3_DEPENDENCIES = gcctestdir/ld $(srcdir)/ehdr_start_test.t
 ehdr_start_test_3_CXXFLAGS = -DEHDR_START_WEAK
-ehdr_start_test_3_LDFLAGS = -Bgcctestdir/ -Wl,-T,$(srcdir)/ehdr_start_test.t
+ehdr_start_test_3_LDFLAGS = -Wl,-T,$(srcdir)/ehdr_start_test.t
 ehdr_start_test_3_LDADD =
 
 # Test that __ehdr_start is left undefined when the text segment is not
@@ -3121,7 +3118,7 @@ MOSTLYCLEANFILES += ehdr_start_test_4
 ehdr_start_test_4.syms: ehdr_start_test_4
  $(TEST_NM) ehdr_start_test_4 > $@
 ehdr_start_test_4: ehdr_start_test_4.o gcctestdir/ld
- $(CXXLINK) -Bgcctestdir/ -Wl,-Ttext=0x100100 $<
+ $(CXXLINK) -Wl,-Ttext=0x100100 $<
 ehdr_start_test_4.o: ehdr_start_test.cc
  $(CXXCOMPILE) -c -DEHDR_START_WEAK -o $@ $<
 
@@ -3130,7 +3127,6 @@ check_PROGRAMS += ehdr_start_test_5
 ehdr_start_test_5_SOURCES = ehdr_start_test.cc ehdr_start_def.cc
 ehdr_start_test_5_DEPENDENCIES = gcctestdir/ld
 ehdr_start_test_5_CXXFLAGS = -DEHDR_START_USER_DEF
-ehdr_start_test_5_LDFLAGS = -Bgcctestdir/
 ehdr_start_test_5_LDADD =
 
 # Test that the --defsym option copies the symbol type and visibility.
@@ -3140,14 +3136,14 @@ MOSTLYCLEANFILES += defsym_test defsym_test.syms
 defsym_test.syms: defsym_test
  $(TEST_READELF) -sW $< > $@
 defsym_test: defsym_test.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ -Wl,--defsym=bar=foo defsym_test.o
+ $(LINK) -Wl,--defsym=bar=foo defsym_test.o
 defsym_test.o: defsym_test.c
  $(COMPILE) -c -o $@ $<
 
 # Test that the -d option (force common allocation) works correctly.
 check_PROGRAMS += pr20976
 pr20976: pr20976-d.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ pr20976-d.o
+ $(LINK) pr20976-d.o
 pr20976-d.o: pr20976.o gcctestdir/ld
  gcctestdir/ld -r -d -o $@ pr20976.o
 
@@ -3172,31 +3168,31 @@ MOSTLYCLEANFILES += two_file_test_tmp_2.o
 incremental_test_2: two_file_test_1_v1_ndebug.o two_file_test_1_ndebug.o two_file_test_1b_ndebug.o \
     two_file_test_2_ndebug.o two_file_test_main_ndebug.o gcctestdir/ld
  cp -f two_file_test_1_v1_ndebug.o two_file_test_tmp_2.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -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
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o
  @sleep 1
  cp -f two_file_test_1_ndebug.o two_file_test_tmp_2.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -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
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie two_file_test_tmp_2.o two_file_test_1b_ndebug.o two_file_test_2_ndebug.o two_file_test_main_ndebug.o
 
 check_PROGRAMS += incremental_test_3
 MOSTLYCLEANFILES += two_file_test_tmp_3.o
 incremental_test_3: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
     two_file_test_2.o two_file_test_main.o gcctestdir/ld
  cp -f two_file_test_1b_v1.o two_file_test_tmp_3.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
  @sleep 1
  cp -f two_file_test_1b.o two_file_test_tmp_3.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie two_file_test_1.o two_file_test_tmp_3.o two_file_test_2.o two_file_test_main.o
 
 check_PROGRAMS += incremental_test_4
 MOSTLYCLEANFILES += incremental_test_4.base two_file_test_tmp_4.o
 incremental_test_4: two_file_test_1.o two_file_test_1b.o two_file_test_2_v1.o \
     two_file_test_2.o two_file_test_main.o gcctestdir/ld
  cp -f two_file_test_2_v1.o two_file_test_tmp_4.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
  mv -f incremental_test_4 incremental_test_4.base
  @sleep 1
  cp -f two_file_test_2.o two_file_test_tmp_4.o
- $(CXXLINK) -Wl,--incremental-update,--incremental-base=incremental_test_4.base -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
+ $(CXXLINK) -Wl,--incremental-update,--incremental-base=incremental_test_4.base -Wl,-z,norelro,-no-pie two_file_test_1.o two_file_test_1b.o two_file_test_tmp_4.o two_file_test_main.o
 
 check_PROGRAMS += incremental_test_5
 MOSTLYCLEANFILES += two_file_test_5.a
@@ -3204,11 +3200,11 @@ incremental_test_5: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
     two_file_test_2.o two_file_test_main.o gcctestdir/ld
  cp -f two_file_test_1b_v1.o two_file_test_tmp_5.o
  $(TEST_AR) rc two_file_test_5.a two_file_test_1.o two_file_test_tmp_5.o two_file_test_2.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_main.o two_file_test_5.a
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_main.o two_file_test_5.a
  @sleep 1
  cp -f two_file_test_1b.o two_file_test_tmp_5.o
  $(TEST_AR) rc two_file_test_5.a two_file_test_1.o two_file_test_tmp_5.o two_file_test_2.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_main.o two_file_test_5.a
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie two_file_test_main.o two_file_test_5.a
 
 # Test the --incremental-unchanged flag with an archive library.
 # The second link should not update the library.
@@ -3218,38 +3214,38 @@ incremental_test_6: two_file_test_1.o two_file_test_1b_v1.o two_file_test_1b.o \
     two_file_test_2.o two_file_test_main.o gcctestdir/ld
  cp -f two_file_test_1b.o two_file_test_tmp_6.o
  $(TEST_AR) rc two_file_test_6.a two_file_test_1.o two_file_test_tmp_6.o two_file_test_2.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_main.o two_file_test_6.a
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie two_file_test_main.o two_file_test_6.a
  @sleep 1
  cp -f two_file_test_1b_v1.o two_file_test_tmp_6.o
  $(TEST_AR) rc two_file_test_6.a two_file_test_1.o two_file_test_tmp_6.o two_file_test_2.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ two_file_test_main.o -Wl,--incremental-unchanged two_file_test_6.a -Wl,--incremental-unknown
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie two_file_test_main.o -Wl,--incremental-unchanged two_file_test_6.a -Wl,--incremental-unknown
 
 check_PROGRAMS += incremental_copy_test
 incremental_copy_test: copy_test_v1.o copy_test.o copy_test_1.so copy_test_2.so
  cp -f copy_test_v1.o copy_test_tmp.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ -Wl,-R,. -Wl,--no-as-needed copy_test_tmp.o copy_test_1.so copy_test_2.so
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Wl,-R,. -Wl,--no-as-needed copy_test_tmp.o copy_test_1.so copy_test_2.so
  @sleep 1
  cp -f copy_test.o copy_test_tmp.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ -Wl,-R,. -Wl,--no-as-needed copy_test_tmp.o copy_test_1.so copy_test_2.so
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Wl,-R,. -Wl,--no-as-needed copy_test_tmp.o copy_test_1.so copy_test_2.so
 
 check_PROGRAMS += incremental_common_test_1
 incremental_common_test_1: common_test_1_v1.o common_test_1_v2.o gcctestdir/ld
  cp -f common_test_1_v1.o common_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ common_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie common_test_1_tmp.o
  @sleep 1
  cp -f common_test_1_v2.o common_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ common_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie common_test_1_tmp.o
 
 check_PROGRAMS += incremental_comdat_test_1
 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
  cp -f incr_comdat_test_2_v1.o incr_comdat_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-full,--incremental-patch=100 -Wl,-z,norelro,-no-pie incr_comdat_test_1.o incr_comdat_test_1_tmp.o
  @sleep 1
  cp -f incr_comdat_test_2_v2.o incr_comdat_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie incr_comdat_test_1.o incr_comdat_test_1_tmp.o
  @sleep 1
  cp -f incr_comdat_test_2_v3.o incr_comdat_test_1_tmp.o
- $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie -Bgcctestdir/ incr_comdat_test_1.o incr_comdat_test_1_tmp.o
+ $(CXXLINK) -Wl,--incremental-update -Wl,-z,norelro,-no-pie incr_comdat_test_1.o incr_comdat_test_1_tmp.o
 
 endif DEFAULT_TARGET_X86_64
 
@@ -3260,9 +3256,9 @@ exception_x86_64_bnd_test_DEPENDENCIES = gcctestdir/ld exception_x86_64_bnd_1.o
 exception_x86_64_bnd_test_LDFLAGS = $(exception_test_LDFLAGS) -Wl,-z,bndplt
 exception_x86_64_bnd_test_LDADD = exception_x86_64_bnd_1.o exception_x86_64_bnd_2.o
 exception_x86_64_bnd_1.o: exception_test_1.cc gcctestdir/as
- $(CXXCOMPILE) -c -fpic -Bgcctestdir/ -Wa,-madd-bnd-prefix -o $@ $<
+ $(CXXCOMPILE) -c -fpic -Wa,-madd-bnd-prefix -o $@ $<
 exception_x86_64_bnd_2.o: exception_test_2.cc gcctestdir/as
- $(CXXCOMPILE) -c -Bgcctestdir/ -Wa,-madd-bnd-prefix -o $@ $<
+ $(CXXCOMPILE) -c -Wa,-madd-bnd-prefix -o $@ $<
 endif DEFAULT_TARGET_X86_64
 
 if DEFAULT_TARGET_X86_64
@@ -3285,7 +3281,7 @@ endif DEFAULT_TARGET_X86_64
 
 check_PROGRAMS += pr22266
 pr22266: pr22266_main.o pr22266_ar.o gcctestdir/ld
- $(LINK) -Bgcctestdir/ pr22266_main.o pr22266_ar.o
+ $(LINK) pr22266_main.o pr22266_ar.o
 pr22266_ar.o: pr22266_a.o gcctestdir/ld
  gcctestdir/ld -r -T $(srcdir)/pr22266_script.t -o $@ pr22266_a.o
 

--
Alan Modra
Australia Development Lab, IBM
Reply | Threaded
Open this post in threaded view
|

Re: Make gold testsuite work with CC and CXX specifying -B

Cary Coutant-3
>         * Makefile.am (gcctestdir1/ld): Use $@ and absolute paths.
>         (gcctestdir1/collect-ld): New.
>         (ld1_DEPENDENCIES): Add gcctestdir1/collect-ld.
>         (ld1_LDFLAGS): Remove -Bgcctestdir1/.
>         (editcc1, ld1_LINK): Define.
>         (gcctestdir2/ld, gcctestdir2/collect-ld, ld2_DEPENDENCIES),
>         (ld2_LDFLAGS, editcc2, ld2_LINK),
>         (ld1_r_DEPENDENCIES, ld1_r_LDFLAGS, ld1_r_LINK),
>         (gcctestdir2-r/ld, gcctestdir2-r/collect-ld, ld2_r_DEPENDENCIES),
>         (ld2_r_LDFLAGS, editcc2r, ld2_r_LINK),
>         (gcctestdir3/ld, gcctestdir3/collect-ld, ld3_DEPENDENCIES),
>         (ld3_LDFLAGS, editcc3, ld3_LINK),
>         (gcctestdir4/ld, gcctestdir4/collect-ld, ld4_DEPENDENCIES),
>         (ld4_LDFLAGS, editcc4, ld4_LINK): Similarly.
>         * Makefile.in: Regenerate.
>         * testsuite/Makefile.am (editcc): Define sed command to put
>         our -B option first.  Remove other occurrences of -Bgcctestdir/
>         throughout file.
>         (editcc1): Define for -D_FORTIFY_SOURCE stripping.
>         (editcc2): Define for -static-libgcc/libstdc++ stripping.
>         (LINK1, CXXLINK1): Don't use CCLD or CXXLD.
>         (CCLD, CXXLD, COMPILE, LINK, CXXCOMPILE, CXXLINK, CXXLINK_S): Define
>         using editcc macros.
>         (gcctestdir/collect-ld): New rule, add as a dependency of..
>         (gcctestdir/ld): ..this.  Use $@ and abs_top_buildir.
>         (gcctestdir/as): Use $@.
>         * testsuite/Makefile.in: Regenerate.
>         * testsuite/incremental_test.sh (actual): Match collect-ld too.

Looks good. Thanks!

-cary