X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=ld%2Ftestsuite%2Fld-gc%2Fgc.exp;h=eaaa8e158ab29c78698a5084dc67c378762c5008;hb=219d1afa89d0d53ca93a684cac341f16470f3ca0;hp=b7d6dffd90bcb876a5ed78c121ee13318fd3be9b;hpb=2893311c839d2e9789c8d1a80ffa651b27a61f93;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/testsuite/ld-gc/gc.exp b/ld/testsuite/ld-gc/gc.exp index b7d6dffd90..eaaa8e158a 100644 --- a/ld/testsuite/ld-gc/gc.exp +++ b/ld/testsuite/ld-gc/gc.exp @@ -1,6 +1,5 @@ # Expect script for ld-gc tests -# Copyright 2008, 2009, 2010 -# Free Software Foundation, Inc. +# Copyright (C) 2008-2018 Free Software Foundation, Inc. # # This file is part of the GNU Binutils. # @@ -27,11 +26,19 @@ if ![check_gc_sections_available] { set cflags "-ffunction-sections -fdata-sections" set objfile "tmpdir/gc.o" +# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required. +global NOPIE_CFLAGS NOPIE_LDFLAGS + if [istarget powerpc64*-*-*] { # otherwise with -mcmodel=medium gcc we get XPASSes. set cflags "$cflags -mminimal-toc" } +if { [istarget m681*-*-*] || [istarget m68hc1*-*-*] } { + # Otherwise tests FAIL due to _.frame + set cflags "$cflags -fomit-frame-pointer -mshort" +} + if { [is_remote host] || [which $CC] != 0 } { ld_compile "$CC -c $CFLAGS $cflags" $srcdir/$subdir/gc.c $objfile } @@ -50,7 +57,7 @@ proc test_gc { testname filename linker ldflags} { set outfile "tmpdir/$filename" set options "-L$srcdir/$subdir" - append options " " $ldflags " " [ld_simple_link_defsyms] " " $objfile + append options " " $ldflags " " [ld_link_defsyms] " " $objfile # SH64 targets needs an extra ld option for this test. if [istarget sh64*-*-*] { @@ -61,7 +68,7 @@ proc test_gc { testname filename linker ldflags} { } } - if ![ld_simple_link $linker $outfile $options] { + if ![ld_link $linker $outfile $options] { fail $testname return } @@ -97,12 +104,70 @@ 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 "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 { + set gasopt "" + if { [istarget tic6x-*] } then { + set gasopt "-mpic -mpid=near" + } + 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 + } else { + 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" + } +} + if { [is_remote host] || [which $CC] != 0 } { if { [istarget "*-*-linux*"] + || [istarget "*-*-nacl*"] || [istarget "*-*-gnu*"] } { ld_compile "$CC -fPIC $CFLAGS $cflags" $srcdir/$subdir/pr11218-1.c tmpdir/pr11218-1.o - ld_simple_link $ld tmpdir/pr11218-1.so "-shared tmpdir/pr11218-1.o" + ld_link $ld tmpdir/pr11218-1.so "-shared tmpdir/pr11218-1.o" ld_compile "$CC -c $CFLAGS $cflags" $srcdir/$subdir/pr11218-2.c tmpdir/pr11218-2.o run_dump_test "pr11218" } } + +if { [is_remote host] || [which $CC] != 0 } { + 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 $NOPIE_CFLAGS" $srcdir/$subdir/pr14265.c tmpdir/pr14265.o + run_dump_test "pr14265" +} + +if { [is_remote host] || [which $CC] != 0 } { + 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 + run_dump_test "pr19161" +} + +if { [is_elf_format] && [check_shared_lib_support] \ + && ([is_remote host] || [which $CC] != 0) } { + run_cc_link_tests [list \ + [list \ + "Build libpr20306.so" \ + "-shared" \ + "-fPIC" \ + {pr20306.c} \ + {} \ + "libpr20306.so" \ + ] \ + ] + run_dump_test "pr20306" +}