X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=inline;f=ld%2Ftestsuite%2Fld-gc%2Fgc.exp;h=ea3316887e3df0cb6b3d38db9eeab6b30b22292e;hb=348fe36b1d64f12c60e08f6313520b3191663063;hp=ba4f70b6228f40cf321eefeae6384816d90139d1;hpb=d98164028637041c5de99af0d057bde3f168a8a8;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/testsuite/ld-gc/gc.exp b/ld/testsuite/ld-gc/gc.exp index ba4f70b622..ea3316887e 100644 --- a/ld/testsuite/ld-gc/gc.exp +++ b/ld/testsuite/ld-gc/gc.exp @@ -1,5 +1,5 @@ # Expect script for ld-gc tests -# Copyright (C) 2008-2017 Free Software Foundation, Inc. +# Copyright (C) 2008-2020 Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # @@ -23,7 +23,7 @@ if ![check_gc_sections_available] { return } -set cflags "-ffunction-sections -fdata-sections" +set cflags "-ffunction-sections -fdata-sections $NOSANTIZE_CFLAGS" set objfile "tmpdir/gc.o" if [istarget powerpc64*-*-*] { @@ -36,7 +36,7 @@ if { [istarget m681*-*-*] || [istarget m68hc1*-*-*] } { set cflags "$cflags -fomit-frame-pointer -mshort" } -if { [is_remote host] || [which $CC] != 0 } { +if { [check_compiler_available] } { ld_compile "$CC -c $CFLAGS $cflags" $srcdir/$subdir/gc.c $objfile } @@ -56,21 +56,12 @@ proc test_gc { testname filename linker ldflags} { set options "-L$srcdir/$subdir" append options " " $ldflags " " [ld_link_defsyms] " " $objfile - # SH64 targets needs an extra ld option for this test. - if [istarget sh64*-*-*] { - if [istarget sh64*l*-*-*] { - set options "-mshlelf32 $options" - } else { - set options "-mshelf32 $options" - } - } - if ![ld_link $linker $outfile $options] { fail $testname return } if ![ld_nm $nm "" $outfile] { - unresolved $testname + fail $testname return } if {![info exists nm_output(used_func)] \ @@ -101,9 +92,11 @@ test_gc "Check --gc-section/-r/-u" "gcrel" $ld "-r --gc-sections -u used_func" run_dump_test "noent" run_dump_test "abi-note" run_dump_test "start" +run_dump_test "stop" run_dump_test "pr19167" if { [is_elf_format] } then { run_dump_test "all-debug-sections" + run_dump_test "pr20882" } if { [is_elf_format] && [check_shared_lib_support] } then { @@ -111,6 +104,13 @@ if { [is_elf_format] && [check_shared_lib_support] } then { if { [istarget tic6x-*] } then { set gasopt "-mpic -mpid=near" } + # These targets do not default to linking with shared libraries. + set old_ldflags $LDFLAGS + if { [istarget "mips*vr4100*-*-elf*"] \ + || [istarget "mips*vr4300*-*-elf*"] \ + || [istarget "mips*vr5000*-*-elf*"] } { + append LDFLAGS " -call_shared" + } if {![ld_assemble_flags $as $gasopt $srcdir/$subdir/libpersonality.s tmpdir/libpersonality.o] || ![ld_link $ld tmpdir/libpersonality.so "-shared tmpdir/libpersonality.o"] } then { fail libpersonality @@ -118,9 +118,16 @@ if { [is_elf_format] && [check_shared_lib_support] } then { run_dump_test "personality" } run_dump_test "pr18223" + if {![ld_assemble_flags $as $gasopt $srcdir/$subdir/pr20022a.s tmpdir/pr20022a.o] + || ![ld_link $ld tmpdir/pr20022.so "-shared --gc-sections tmpdir/pr20022a.o"] } then { + fail pr20022 + } else { + run_dump_test "pr20022" + } + set LDFLAGS $old_ldflags } -if { [is_remote host] || [which $CC] != 0 } { +if { [check_compiler_available] } { if { [istarget "*-*-linux*"] || [istarget "*-*-nacl*"] || [istarget "*-*-gnu*"] } { @@ -131,24 +138,29 @@ if { [is_remote host] || [which $CC] != 0 } { } } -if { [is_remote host] || [which $CC] != 0 } { +if { [check_compiler_available] } { ld_compile "$CC $CFLAGS $cflags" $srcdir/$subdir/pr13683.c tmpdir/pr13683.o run_dump_test "pr13683" } -if { [is_remote host] || [which $CC] != 0 } { - ld_compile "$CC $CFLAGS $cflags" $srcdir/$subdir/pr14265.c tmpdir/pr14265.o +if { [check_compiler_available] } { + ld_compile "$CC $CFLAGS $cflags $NOPIE_CFLAGS" $srcdir/$subdir/pr14265.c tmpdir/pr14265.o run_dump_test "pr14265" } -if { [is_remote host] || [which $CC] != 0 } { +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'" + } run_dump_test "pr19161" + set LDFLAGS "$saved_LDFLAGS" } if { [is_elf_format] && [check_shared_lib_support] \ - && ([is_remote host] || [which $CC] != 0) } { + && [check_compiler_available] } { run_cc_link_tests [list \ [list \ "Build libpr20306.so" \ @@ -161,3 +173,7 @@ if { [is_elf_format] && [check_shared_lib_support] \ ] run_dump_test "pr20306" } + +if { [is_elf_format] } then { + run_dump_test "skip-map-discarded" +}