From 2893311c839d2e9789c8d1a80ffa651b27a61f93 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 9 Feb 2011 08:18:54 +0000 Subject: [PATCH] * ld-elfvsb/elfvsb.exp: Don't run any non-PIC tests on powerpc*-linux. * ld-gc/gc.exp: Ensure powerpc64 test continues to fail. * ld-srec/srec.exp: Don't edit toc on powerpc64. --- ld/testsuite/ChangeLog | 6 ++++++ ld/testsuite/ld-elfvsb/elfvsb.exp | 15 +++++++++++++-- ld/testsuite/ld-gc/gc.exp | 5 +++++ ld/testsuite/ld-srec/srec.exp | 4 ++++ 4 files changed, 28 insertions(+), 2 deletions(-) diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 0054966e366..cc0432b5e0c 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-02-09 Alan Modra + + * ld-elfvsb/elfvsb.exp: Don't run any non-PIC tests on powerpc*-linux. + * ld-gc/gc.exp: Ensure powerpc64 test continues to fail. + * ld-srec/srec.exp: Don't edit toc on powerpc64. + 2011-01-23 Alan Modra * ld-scripts/sane1.d, * ld-scripts/sane1.t: New test. diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp index 9786f78e458..d288774adae 100644 --- a/ld/testsuite/ld-elfvsb/elfvsb.exp +++ b/ld/testsuite/ld-elfvsb/elfvsb.exp @@ -249,6 +249,14 @@ proc visibility_run {visibility} { set VSBCFLAG "" }}}}}}}}} + if { [istarget powerpc*-*-linux*] } { + # Testing non-PIC libraries is a waste of effort on any target. + # If you don't pass -fpic or -fPIC to gcc, gcc will assume quite + # reasonably that you are not compiling for a shared library. + # It can then make optimisations that result in shared library + # functions and variables not being overridable. Newer versions + # of gcc are more likely to do this. + } else { # Compile the main program. if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] { unresolved "visibility ($visibility) (non PIC)" @@ -369,8 +377,11 @@ proc visibility_run {visibility} { visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o elfvsb } } } - } + }} + if { [istarget powerpc*-*-linux*] } { + # Don't bother. + } else { # Now do the same tests again, but this time compile main.c PIC. if ![ld_compile "$CC -g $CFLAGS $SHCFLAG $VSBCFLAG -DSHARED $picflag" $srcdir/$subdir/main.c $tmpdir/mainp.o] { unresolved "visibility ($visibility) (PIC main, non PIC so)" @@ -433,7 +444,7 @@ proc visibility_run {visibility} { } else { unresolved "visibility ($visibility) (PIC main)" } - } + }} } if [istarget mips*-*-*] { diff --git a/ld/testsuite/ld-gc/gc.exp b/ld/testsuite/ld-gc/gc.exp index ee9c9750711..b7d6dffd90b 100644 --- a/ld/testsuite/ld-gc/gc.exp +++ b/ld/testsuite/ld-gc/gc.exp @@ -27,6 +27,11 @@ if ![check_gc_sections_available] { set cflags "-ffunction-sections -fdata-sections" set objfile "tmpdir/gc.o" +if [istarget powerpc64*-*-*] { + # otherwise with -mcmodel=medium gcc we get XPASSes. + set cflags "$cflags -mminimal-toc" +} + if { [is_remote host] || [which $CC] != 0 } { ld_compile "$CC -c $CFLAGS $cflags" $srcdir/$subdir/gc.c $objfile } diff --git a/ld/testsuite/ld-srec/srec.exp b/ld/testsuite/ld-srec/srec.exp index 0a3dc444081..cb01f3f8d97 100644 --- a/ld/testsuite/ld-srec/srec.exp +++ b/ld/testsuite/ld-srec/srec.exp @@ -271,6 +271,10 @@ proc run_srec_test { test objs } { set flags "$flags -no-relax" } + if [istarget powerpc64*-*-*] { + set flags "$flags --no-toc-optimize" + } + if { ![ld_simple_link $ld tmpdir/sr1 "$flags $objs"] \ || ![ld_simple_link $ld tmpdir/sr2.sr "$flags --oformat srec $objs"] } { fail $test -- 2.30.2