* ld-elfvsb/elfvsb.exp: Don't run any non-PIC tests on powerpc*-linux.
authorAlan Modra <amodra@gmail.com>
Wed, 9 Feb 2011 08:18:54 +0000 (08:18 +0000)
committerAlan Modra <amodra@gmail.com>
Wed, 9 Feb 2011 08:18:54 +0000 (08:18 +0000)
* ld-gc/gc.exp: Ensure powerpc64 test continues to fail.
* ld-srec/srec.exp: Don't edit toc on powerpc64.

ld/testsuite/ChangeLog
ld/testsuite/ld-elfvsb/elfvsb.exp
ld/testsuite/ld-gc/gc.exp
ld/testsuite/ld-srec/srec.exp

index 0054966e366a2f9f65a99ed6200be0b9aac0c596..cc0432b5e0ca4f4446b8a28d60fa67c3f76252e2 100644 (file)
@@ -1,3 +1,9 @@
+2011-02-09  Alan Modra  <amodra@gmail.com>
+
+       * 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  <amodra@gmail.com>
 
        * ld-scripts/sane1.d, * ld-scripts/sane1.t: New test.
index 9786f78e458c40bd54e6805a33b9ed4cc70437cb..d288774adae7d57afe6d983c1923e12664f128e2 100644 (file)
@@ -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*-*-*] {
index ee9c97507110db3938827bf8a68075395aaf6f78..b7d6dffd90bcb876a5ed78c121ee13318fd3be9b 100644 (file)
@@ -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
 }
index 0a3dc4440810dffe5c70c7e2611833a01c5fae91..cb01f3f8d97c35812d9eb54b7477544fb19c15db 100644 (file)
@@ -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