powerpc garbage collect test
authorAlan Modra <amodra@gmail.com>
Thu, 9 Jul 2020 13:18:10 +0000 (22:48 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 9 Jul 2020 13:28:16 +0000 (22:58 +0930)
ld's garbage collection test on powerpc64 catered for old compilers
(pre -mcmodel=medium support), setting options that caused the test to
fail.  Which meant the test wasn't really testing anything.  Get rid
of that old compiler support, and avoid -fPIE fails on ppc32.

* testsuite/ld-gc/gc.exp: Don't set -mminimal-toc for powerpc64,
and remove powerpc64 xfail.  Use -fno-PIE for ppc32.

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

index fa45f161ed2f3cc860cb81c858dfbb25d6bf843a..195731edc357596b6d7518dc4e8054061a433021 100644 (file)
@@ -1,3 +1,8 @@
+2020-07-09  Alan Modra  <amodra@gmail.com>
+
+       * testsuite/ld-gc/gc.exp: Don't set -mminimal-toc for powerpc64,
+       and remove powerpc64 xfail.  Use -fno-PIE for ppc32.
+
 2020-07-09  Alan Modra  <amodra@gmail.com>
 
        PR 18841
index ea3316887e3df0cb6b3d38db9eeab6b30b22292e..285e7d1cb576370a2b0756c8cacbe6df796906e2 100644 (file)
@@ -26,9 +26,9 @@ if ![check_gc_sections_available] {
 set cflags "-ffunction-sections -fdata-sections $NOSANTIZE_CFLAGS"
 set objfile "tmpdir/gc.o"
 
-if [istarget powerpc64*-*-*] {
-    # otherwise with -mcmodel=medium gcc we get XPASSes.
-    set cflags "$cflags -mminimal-toc"
+if { [istarget powerpc*-*-*] && ![istarget powerpc64*-*-*] } {
+    # Avoid using .got2 for powerpc -m32
+    set cflags "$cflags $NOPIE_CFLAGS"
 }
 
 if { [istarget m681*-*-*] || [istarget m68hc1*-*-*] } {
@@ -71,9 +71,6 @@ proc test_gc { testname filename linker ldflags} {
        fail $testname
        return
     }
-    #ppc64_elf_gc_mark_hook needs to be taught how to look through
-    #the .toc section to properly mark variable sections for gc.
-    setup_xfail "powerpc64*-*-*"
     if {[info exists nm_output(unused_func)] \
            || [info exists nm_output(unused_var)]} {
        send_log "unused section still here\n"