aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog6
-rw-r--r--ld/testsuite/ld-elfvsb/elfvsb.exp15
-rw-r--r--ld/testsuite/ld-gc/gc.exp5
-rw-r--r--ld/testsuite/ld-srec/srec.exp4
4 files changed, 28 insertions, 2 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 0054966..cc0432b 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -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.
diff --git a/ld/testsuite/ld-elfvsb/elfvsb.exp b/ld/testsuite/ld-elfvsb/elfvsb.exp
index 9786f78..d288774 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 ee9c975..b7d6dff 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 0a3dc44..cb01f3f 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