Use is_pecoff_format in ld testsuite
Alan Modra
amodra@gmail.com
Tue Jul 7 08:54:34 GMT 2020
--image-base 0 is not just for x86_64 mingw. This patch fixes that,
and a case where a changed LDFLAGS leaked out of one script to the next.
* testsuite/ld-scripts/align.exp: Use is_pecoff_format.
* testsuite/ld-scripts/defined.exp: Likewise.
* testsuite/ld-scripts/provide.exp: Likewise.
* testsuite/ld-scripts/weak.exp: Likewise.
* testsuite/ld-scripts/empty-address.exp: Likewise. Reset LDFLAGS
on exit.
* testsuite/ld-scripts/expr.exp: Set LDFLAGS earlier, and with
--image-base for PE.
* testsuite/ld-scripts/include.exp: Set LDFLAGS for PE.
* testsuite/ld-scripts/script.exp: Use is_pecoff_format, and
set LDFLAGS as well as flags.
diff --git a/ld/testsuite/ld-scripts/align.exp b/ld/testsuite/ld-scripts/align.exp
index 1520fa333d..3817251730 100644
--- a/ld/testsuite/ld-scripts/align.exp
+++ b/ld/testsuite/ld-scripts/align.exp
@@ -31,10 +31,10 @@ if ![ld_assemble $as $srcdir/$subdir/align.s tmpdir/align.o] {
return
}
-# mingw on x86_64 targets need to set the image base to 0 to avoid auto image-basing.
+# Avoid auto image-basing.
set saved_LDFLAGS "$LDFLAGS"
-if [istarget "x86_64-*-mingw*"] then {
- set LDFLAGS "$LDFLAGS --image-base 0"
+if { [is_pecoff_format] } then {
+ set LDFLAGS "$LDFLAGS --image-base 0"
}
if ![ld_link $ld tmpdir/align "$LDFLAGS -T $srcdir/$subdir/align.t tmpdir/align.o"] {
diff --git a/ld/testsuite/ld-scripts/defined.exp b/ld/testsuite/ld-scripts/defined.exp
index 6889f04c16..7a47030c70 100644
--- a/ld/testsuite/ld-scripts/defined.exp
+++ b/ld/testsuite/ld-scripts/defined.exp
@@ -28,8 +28,8 @@ if ![ld_assemble $as $srcdir/$subdir/defined.s tmpdir/def.o] {
}
set saved_LDFLAGS "$LDFLAGS"
-if [istarget "x86_64-*-mingw*"] then {
- set LDFLAGS "$LDFLAGS --image-base 0"
+if { [is_pecoff_format] } then {
+ set LDFLAGS "$LDFLAGS --image-base 0"
}
if { ![ld_link $ld tmpdir/def "$LDFLAGS -T $srcdir/$subdir/defined.t tmpdir/def.o"] } {
diff --git a/ld/testsuite/ld-scripts/empty-address.exp b/ld/testsuite/ld-scripts/empty-address.exp
index a505e57c78..d71202a303 100644
--- a/ld/testsuite/ld-scripts/empty-address.exp
+++ b/ld/testsuite/ld-scripts/empty-address.exp
@@ -19,8 +19,9 @@
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
-if [istarget "x86_64-*-mingw*"] then {
- set LDFLAGS "$LDFLAGS --image-base 0"
+set old_LDFLAGS $LDFLAGS
+if { [is_pecoff_format] } then {
+ set LDFLAGS "$LDFLAGS --image-base 0"
}
run_dump_test empty-address-1
@@ -29,3 +30,5 @@ run_dump_test empty-address-2b
run_dump_test empty-address-3a
run_dump_test empty-address-3b
run_dump_test empty-address-3c
+
+set LDFLAGS $old_LDFLAGS
diff --git a/ld/testsuite/ld-scripts/expr.exp b/ld/testsuite/ld-scripts/expr.exp
index 08bf0ab2eb..7b1c62751d 100644
--- a/ld/testsuite/ld-scripts/expr.exp
+++ b/ld/testsuite/ld-scripts/expr.exp
@@ -19,17 +19,20 @@
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
+set old_LDFLAGS $LDFLAGS
+if { [istarget spu*-*-*] } then {
+ set LDFLAGS "$LDFLAGS --no-overlays --local-store 0:0"
+} elseif { [is_pecoff_format] } then {
+ set LDFLAGS "$LDFLAGS --image-base 0"
+}
+
run_dump_test expr1
run_dump_test expr2
run_dump_test sane1
run_dump_test assign-loc
run_dump_test pr14962
run_dump_test pr14962-2
+run_dump_test pr18963
run_dump_test pr22267
-set old_ldflags $LDFLAGS
-if { [istarget spu*-*-*] } {
- set LDFLAGS "$LDFLAGS --no-overlays --local-store 0:0"
-}
-run_dump_test pr18963
-set LDFLAGS $old_ldflags
+set LDFLAGS $old_LDFLAGS
diff --git a/ld/testsuite/ld-scripts/include.exp b/ld/testsuite/ld-scripts/include.exp
index d74f30e6d7..c7e2ee58a0 100644
--- a/ld/testsuite/ld-scripts/include.exp
+++ b/ld/testsuite/ld-scripts/include.exp
@@ -23,8 +23,10 @@ if [is_aout_format] {
}
set old_ldflags $LDFLAGS
-if { [istarget spu*-*-*] } {
+if { [istarget spu*-*-*] } then {
set LDFLAGS "$LDFLAGS --local-store 0:0 --no-overlays"
+} elseif { [is_pecoff_format] } then {
+ set LDFLAGS "$LDFLAGS --image-base 0"
}
set test_list [lsort [glob -nocomplain $srcdir/$subdir/include*.d]]
diff --git a/ld/testsuite/ld-scripts/provide.exp b/ld/testsuite/ld-scripts/provide.exp
index a4aee5205b..34aed400a1 100644
--- a/ld/testsuite/ld-scripts/provide.exp
+++ b/ld/testsuite/ld-scripts/provide.exp
@@ -31,8 +31,8 @@ if {[istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"] || [is_aout_forma
}
set saved_LDFLAGS "$LDFLAGS"
-if [istarget "x86_64-*-mingw*"] then {
- set LDFLAGS "$LDFLAGS --image-base 0"
+if { [is_pecoff_format] } then {
+ set LDFLAGS "$LDFLAGS --image-base 0"
}
set test_list [lsort [glob -nocomplain $srcdir/$subdir/provide-*.d]]
diff --git a/ld/testsuite/ld-scripts/script.exp b/ld/testsuite/ld-scripts/script.exp
index 42bd452d6a..108e53989f 100644
--- a/ld/testsuite/ld-scripts/script.exp
+++ b/ld/testsuite/ld-scripts/script.exp
@@ -183,13 +183,10 @@ proc extract_symbol_test { testfile testname } {
# PE targets need to set the image base to 0 to avoid complications from nm.
set flags ""
-if {[istarget "*-*-pe*"] \
- || [istarget "*-*-cygwin*"] \
- || [istarget "*-*-mingw*"] \
- || [istarget "*-*-winnt*"] \
- || [istarget "*-*-nt"] \
- || [istarget "*-*-interix*"] } then {
- set flags "--image-base 0"
+set old_LDFLAGS $LDFLAGS
+if { [is_pecoff_format] } then {
+ set flags "--image-base 0"
+ set LDFLAGS "$LDFLAGS --image-base 0"
}
if ![ld_link $ld tmpdir/script "$flags -T $srcdir/$subdir/script.t tmpdir/script.o"] {
@@ -235,3 +232,5 @@ run_dump_test "pr20302"
run_dump_test "segment-start" {{name (default)}}
run_dump_test "segment-start" {{name (overridden)} \
{ld -Ttext-segment=0x10000000}}
+
+set LDFLAGS $old_LDFLAGS
diff --git a/ld/testsuite/ld-scripts/weak.exp b/ld/testsuite/ld-scripts/weak.exp
index b0ca4ab66e..57986a31d4 100644
--- a/ld/testsuite/ld-scripts/weak.exp
+++ b/ld/testsuite/ld-scripts/weak.exp
@@ -44,8 +44,8 @@ if {! [ld_assemble $as $srcdir/$subdir/weak1.s tmpdir/weak1.o]
}
set saved_LDFLAGS "$LDFLAGS"
-if [istarget "x86_64-*-mingw*"] then {
- set LDFLAGS "$LDFLAGS --image-base 0"
+if { [is_pecoff_format] } then {
+ set LDFLAGS "$LDFLAGS --image-base 0"
}
set weak_regexp_big \
--
Alan Modra
Australia Development Lab, IBM
More information about the Binutils
mailing list