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.
This commit is contained in:
Alan Modra
2020-07-07 12:58:12 +09:30
parent 7193487fa8
commit 231b7382c0
9 changed files with 46 additions and 25 deletions

View File

@ -1,3 +1,17 @@
2020-07-07 Alan Modra <amodra@gmail.com>
* 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 <amodra@gmail.com> 2020-07-07 Alan Modra <amodra@gmail.com>
* testsuite/ld-checks/checks.exp: Use is_xcoff_format. * testsuite/ld-checks/checks.exp: Use is_xcoff_format.

View File

@ -31,10 +31,10 @@ if ![ld_assemble $as $srcdir/$subdir/align.s tmpdir/align.o] {
return 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" set saved_LDFLAGS "$LDFLAGS"
if [istarget "x86_64-*-mingw*"] then { if { [is_pecoff_format] } then {
set LDFLAGS "$LDFLAGS --image-base 0" set LDFLAGS "$LDFLAGS --image-base 0"
} }
if ![ld_link $ld tmpdir/align "$LDFLAGS -T $srcdir/$subdir/align.t tmpdir/align.o"] { if ![ld_link $ld tmpdir/align "$LDFLAGS -T $srcdir/$subdir/align.t tmpdir/align.o"] {

View File

@ -28,8 +28,8 @@ if ![ld_assemble $as $srcdir/$subdir/defined.s tmpdir/def.o] {
} }
set saved_LDFLAGS "$LDFLAGS" set saved_LDFLAGS "$LDFLAGS"
if [istarget "x86_64-*-mingw*"] then { if { [is_pecoff_format] } then {
set LDFLAGS "$LDFLAGS --image-base 0" set LDFLAGS "$LDFLAGS --image-base 0"
} }
if { ![ld_link $ld tmpdir/def "$LDFLAGS -T $srcdir/$subdir/defined.t tmpdir/def.o"] } { if { ![ld_link $ld tmpdir/def "$LDFLAGS -T $srcdir/$subdir/defined.t tmpdir/def.o"] } {

View File

@ -19,8 +19,9 @@
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA. # MA 02110-1301, USA.
if [istarget "x86_64-*-mingw*"] then { set old_LDFLAGS $LDFLAGS
set LDFLAGS "$LDFLAGS --image-base 0" if { [is_pecoff_format] } then {
set LDFLAGS "$LDFLAGS --image-base 0"
} }
run_dump_test empty-address-1 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-3a
run_dump_test empty-address-3b run_dump_test empty-address-3b
run_dump_test empty-address-3c run_dump_test empty-address-3c
set LDFLAGS $old_LDFLAGS

View File

@ -19,17 +19,20 @@
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA. # 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 expr1
run_dump_test expr2 run_dump_test expr2
run_dump_test sane1 run_dump_test sane1
run_dump_test assign-loc run_dump_test assign-loc
run_dump_test pr14962 run_dump_test pr14962
run_dump_test pr14962-2 run_dump_test pr14962-2
run_dump_test pr18963
run_dump_test pr22267 run_dump_test pr22267
set old_ldflags $LDFLAGS set LDFLAGS $old_LDFLAGS
if { [istarget spu*-*-*] } {
set LDFLAGS "$LDFLAGS --no-overlays --local-store 0:0"
}
run_dump_test pr18963
set LDFLAGS $old_ldflags

View File

@ -23,8 +23,10 @@ if [is_aout_format] {
} }
set old_ldflags $LDFLAGS set old_ldflags $LDFLAGS
if { [istarget spu*-*-*] } { if { [istarget spu*-*-*] } then {
set LDFLAGS "$LDFLAGS --local-store 0:0 --no-overlays" 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]] set test_list [lsort [glob -nocomplain $srcdir/$subdir/include*.d]]

View File

@ -31,8 +31,8 @@ if {[istarget "powerpc*-*-aix*"] || [istarget "rs6000-*-aix*"] || [is_aout_forma
} }
set saved_LDFLAGS "$LDFLAGS" set saved_LDFLAGS "$LDFLAGS"
if [istarget "x86_64-*-mingw*"] then { if { [is_pecoff_format] } then {
set LDFLAGS "$LDFLAGS --image-base 0" set LDFLAGS "$LDFLAGS --image-base 0"
} }
set test_list [lsort [glob -nocomplain $srcdir/$subdir/provide-*.d]] set test_list [lsort [glob -nocomplain $srcdir/$subdir/provide-*.d]]

View File

@ -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. # PE targets need to set the image base to 0 to avoid complications from nm.
set flags "" set flags ""
if {[istarget "*-*-pe*"] \ set old_LDFLAGS $LDFLAGS
|| [istarget "*-*-cygwin*"] \ if { [is_pecoff_format] } then {
|| [istarget "*-*-mingw*"] \ set flags "--image-base 0"
|| [istarget "*-*-winnt*"] \ set LDFLAGS "$LDFLAGS --image-base 0"
|| [istarget "*-*-nt"] \
|| [istarget "*-*-interix*"] } then {
set flags "--image-base 0"
} }
if ![ld_link $ld tmpdir/script "$flags -T $srcdir/$subdir/script.t tmpdir/script.o"] { 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 (default)}}
run_dump_test "segment-start" {{name (overridden)} \ run_dump_test "segment-start" {{name (overridden)} \
{ld -Ttext-segment=0x10000000}} {ld -Ttext-segment=0x10000000}}
set LDFLAGS $old_LDFLAGS

View File

@ -44,8 +44,8 @@ if {! [ld_assemble $as $srcdir/$subdir/weak1.s tmpdir/weak1.o]
} }
set saved_LDFLAGS "$LDFLAGS" set saved_LDFLAGS "$LDFLAGS"
if [istarget "x86_64-*-mingw*"] then { if { [is_pecoff_format] } then {
set LDFLAGS "$LDFLAGS --image-base 0" set LDFLAGS "$LDFLAGS --image-base 0"
} }
set weak_regexp_big \ set weak_regexp_big \