aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-gc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2021-03-11 21:40:02 +1030
committerAlan Modra <amodra@gmail.com>2021-03-12 10:41:34 +1030
commit68cb21837f09fd9c12fe4ced7b14f892be929c4f (patch)
tree2aac19510c37a1f4cc14fca7a0be91f2a7091ac8 /ld/testsuite/ld-gc
parent1e1e17e5e2395bb94a9c0062c1cb991d1eecd04c (diff)
downloadgdb-68cb21837f09fd9c12fe4ced7b14f892be929c4f.zip
gdb-68cb21837f09fd9c12fe4ced7b14f892be929c4f.tar.gz
gdb-68cb21837f09fd9c12fe4ced7b14f892be929c4f.tar.bz2
PE image base fallout
Fixes x86_64-w64-mingw32 tests that failed with the recent diagnosis for out of range RVA, and a couple of other gc-sections tests that failed for other reasons. * testsuite/ld-gc/gc.exp: Pass "-image-base 0" to ld for PE, and arrange to define __main for some run_dump_test tests. * testsuite/ld-gc/pr13683.d: Accept more symbols. * testsuite/ld-gc/pr14265.d: Likewise, and ordering. * testsuite/ld-scripts/crossref.exp: Pass "-image-base 0" to ld for PE. * testsuite/ld-srec/srec.exp: Likewise. * testsuite/lib/ld-lib.exp (ld_link_defsyms): Use is_pecoff_format.
Diffstat (limited to 'ld/testsuite/ld-gc')
-rw-r--r--ld/testsuite/ld-gc/gc.exp31
-rw-r--r--ld/testsuite/ld-gc/pr13683.d1
-rw-r--r--ld/testsuite/ld-gc/pr14265.d15
3 files changed, 31 insertions, 16 deletions
diff --git a/ld/testsuite/ld-gc/gc.exp b/ld/testsuite/ld-gc/gc.exp
index cd5c6f7..298f2d4 100644
--- a/ld/testsuite/ld-gc/gc.exp
+++ b/ld/testsuite/ld-gc/gc.exp
@@ -54,6 +54,9 @@ proc test_gc { testname filename linker ldflags} {
set outfile "tmpdir/$filename"
set options "-L$srcdir/$subdir"
+ if [is_pecoff_format] {
+ append ldflags " --image-base 0"
+ }
append options " " $ldflags " " [ld_link_defsyms] " " $objfile
if ![ld_link $linker $outfile $options] {
@@ -86,9 +89,13 @@ test_gc "Check --gc-section/-q" "gcrexe" $ld "--gc-sections -q -e main"
test_gc "Check --gc-section/-r/-e" "gcrel" $ld "-r --gc-sections -e main"
test_gc "Check --gc-section/-r/-u" "gcrel" $ld "-r --gc-sections -u used_func"
+set old_ldflags $LDFLAGS
+if [is_pecoff_format] {
+ append LDFLAGS " --image-base 0"
+}
set old_asflags $ASFLAGS
if [is_underscore_target] {
- set ASFLAGS "$ASFLAGS --defsym UNDERSCORE=1"
+ append ASFLAGS " --defsym UNDERSCORE=1"
}
run_dump_test "noent"
@@ -111,7 +118,7 @@ if { [is_elf_format] && [check_shared_lib_support] } then {
set gasopt "-mpic -mpid=near"
}
# These targets do not default to linking with shared libraries.
- set old_ldflags $LDFLAGS
+ set save_ldflags $LDFLAGS
if { [istarget "mips*vr4100*-*-elf*"] \
|| [istarget "mips*vr4300*-*-elf*"] \
|| [istarget "mips*vr5000*-*-elf*"] } {
@@ -130,7 +137,7 @@ if { [is_elf_format] && [check_shared_lib_support] } then {
} else {
run_dump_test "pr20022"
}
- set LDFLAGS $old_ldflags
+ set LDFLAGS $save_ldflags
}
if { [check_compiler_available] } {
@@ -144,25 +151,28 @@ if { [check_compiler_available] } {
}
}
+set symdefs ""
+if [is_pecoff_format] {
+ set symdefs {{ld {--defsym __main=main --defsym ___main=main}}}
+}
+
if { [check_compiler_available] } {
- ld_compile "$CC $CFLAGS $cflags" $srcdir/$subdir/pr13683.c tmpdir/pr13683.o
- run_dump_test "pr13683"
+ ld_compile "$CC $CFLAGS $cflags" $srcdir/$subdir/pr13683.c tmpdir/pr13683.o
+ run_dump_test "pr13683" $symdefs
}
if { [check_compiler_available] } {
ld_compile "$CC $CFLAGS $cflags $NOPIE_CFLAGS" $srcdir/$subdir/pr14265.c tmpdir/pr14265.o
- run_dump_test "pr14265"
+ run_dump_test "pr14265" $symdefs
}
if { [check_compiler_available] } {
ld_compile "$CC $CFLAGS $cflags -O0" $srcdir/$subdir/pr19161-1.c tmpdir/pr19161-1.o
ld_compile "$CC $CFLAGS $cflags -O0" $srcdir/$subdir/pr19161-2.c tmpdir/pr19161-2.o
- set saved_LDFLAGS "$LDFLAGS"
if [istarget hppa*-*-linux*] {
- set LDFLAGS "$LDFLAGS --defsym '\$\$dyncall=0'"
+ set symdefs {{ld {--defsym '\$\$dyncall=0'}}}
}
- run_dump_test "pr19161"
- set LDFLAGS "$saved_LDFLAGS"
+ run_dump_test "pr19161" $symdefs
}
if { [is_elf_format] && [check_shared_lib_support] \
@@ -185,3 +195,4 @@ if { [is_elf_format] } then {
}
set ASFLAGS $old_asflags
+set LDFLAGS $old_ldflags
diff --git a/ld/testsuite/ld-gc/pr13683.d b/ld/testsuite/ld-gc/pr13683.d
index 5561484..2c4d424 100644
--- a/ld/testsuite/ld-gc/pr13683.d
+++ b/ld/testsuite/ld-gc/pr13683.d
@@ -8,5 +8,6 @@
#...
0*[1-9a-f]+[0-9a-f]*[ ](T|D)[ ]_*foo
+#...
0*[1-9a-f]+[0-9a-f]*[ ](T|D)[ ]_*foo2
#...
diff --git a/ld/testsuite/ld-gc/pr14265.d b/ld/testsuite/ld-gc/pr14265.d
index 9e77ef3..70896eb 100644
--- a/ld/testsuite/ld-gc/pr14265.d
+++ b/ld/testsuite/ld-gc/pr14265.d
@@ -4,12 +4,15 @@
#nm: --format=bsd --numeric-sort
#...
-[0-9a-f]+[ ][dD][ ]_*foo1_start
+[0-9a-f]+ ([dD] _*foo1_start|D _*foo1)
#...
-[0-9a-f]+[ ]D[ ]_*foo1
+[0-9a-f]+ (D _*foo1|[dD] _*foo1_start)
#...
-[0-9a-f]+[ ][dD][ ]_*foo1_end
-[0-9a-f]+[ ][dD][ ]_*foo2_start
-[0-9a-f]+[ ]D[ ]_*foo2
-[0-9a-f]+[ ][dD][ ]_*foo2_end
+[0-9a-f]+ [dD] _*foo1_end
+#...
+[0-9a-f]+ ([dD] _*foo2_start|D _*foo2)
+#...
+[0-9a-f]+ (D _*foo2|[dD] _*foo2_start)
+#...
+[0-9a-f]+ [dD] _*foo2_end
#...