From 231b7382c061721f291d850a7a075d47e97de13c Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 7 Jul 2020 12:58:12 +0930 Subject: [PATCH] Use is_pecoff_format in ld testsuite --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. --- ld/ChangeLog | 14 ++++++++++++++ ld/testsuite/ld-scripts/align.exp | 6 +++--- ld/testsuite/ld-scripts/defined.exp | 4 ++-- ld/testsuite/ld-scripts/empty-address.exp | 7 +++++-- ld/testsuite/ld-scripts/expr.exp | 15 +++++++++------ ld/testsuite/ld-scripts/include.exp | 4 +++- ld/testsuite/ld-scripts/provide.exp | 4 ++-- ld/testsuite/ld-scripts/script.exp | 13 ++++++------- ld/testsuite/ld-scripts/weak.exp | 4 ++-- 9 files changed, 46 insertions(+), 25 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 67bf035bdaa..ce29d72249a 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,17 @@ +2020-07-07 Alan Modra + + * 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. + 2020-07-07 Alan Modra * testsuite/ld-checks/checks.exp: Use is_xcoff_format. diff --git a/ld/testsuite/ld-scripts/align.exp b/ld/testsuite/ld-scripts/align.exp index 1520fa333d2..38172517302 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 6889f04c167..7a47030c70d 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 a505e57c78c..d71202a3036 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 08bf0ab2eb2..7b1c62751d0 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 d74f30e6d76..c7e2ee58a03 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 a4aee5205b1..34aed400a1e 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 42bd452d6a1..108e53989fb 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 b0ca4ab66e7..57986a31d4a 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 \ -- 2.30.2