Automatic date update in version.in
[deliverable/binutils-gdb.git] / ld / testsuite / ld-powerpc / powerpc.exp
index 48aec4ae4fc1f6b6043cfc4112f90dbd8d60f0d9..f15f64e38523c8fc931988e8a9b973340108b89d 100644 (file)
@@ -1,5 +1,5 @@
 # Expect script for ld-powerpc tests
-#   Copyright (C) 2002-2015 Free Software Foundation, Inc.
+#   Copyright (C) 2002-2021 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -29,35 +29,36 @@ if {[istarget "*-*-vxworks"]} {
         "-mregnames" {vxworks1-lib.s}
         {{readelf --segments vxworks1-lib.sd}}
         "libvxworks1.so"}
-       {"VxWorks shared library test 1" "-shared -Tvxworks1.ld" ""
+       {"VxWorks shared library test 1"
+        "-shared --hash-style=sysv -Tvxworks1.ld" ""
         "-mregnames" {vxworks1-lib.s}
-        {{readelf --relocs vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
+         {{readelf {--relocs -T} vxworks1-lib.rd} {objdump -dr vxworks1-lib.dd}
          {readelf --symbols vxworks1-lib.nd} {readelf -d vxworks1-lib.td}}
         "libvxworks1.so"}
        {"VxWorks executable test 1 (dynamic)" \
-        "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic" ""
+        "tmpdir/libvxworks1.so -Tvxworks1.ld -q --force-dynamic --hash-style=sysv" ""
         "-mregnames" {vxworks1.s}
-        {{readelf --relocs vxworks1.rd} {objdump -dr vxworks1.dd}}
+         {{readelf {--relocs -T} vxworks1.rd} {objdump -dr vxworks1.dd}}
         "vxworks1"}
        {"VxWorks executable test 2 (dynamic)" \
-        "-Tvxworks1.ld -q --force-dynamic" ""
+        "-Tvxworks1.ld -q --force-dynamic --hash-style=sysv" ""
         "-mregnames" {vxworks2.s}
         {{readelf --segments vxworks2.sd}}
         "vxworks2"}
        {"VxWorks executable test 2 (static)"
-        "-Tvxworks1.ld" ""
+        "-Tvxworks1.ld --hash-style=sysv" ""
         "-mregnames" {vxworks2.s}
         {{readelf --segments vxworks2-static.sd}}
         "vxworks2"}
        {"VxWorks relax test"
-        "-Tvxworks1.ld --relax -q" ""
+        "-Tvxworks1.ld --relax -q --hash-style=sysv" ""
         "-mregnames" {vxworks-relax.s}
         {{readelf --relocs vxworks-relax.rd}}
         "vxworks-relax"}
        {"VxWorks relocatable relax test"
-        "-Tvxworks1.ld -r --relax -q" ""
+        "-Tvxworks1.ld -r --relax -q --hash-style=sysv" ""
         "-mregnames" {vxworks-relax-2.s}
-        {{readelf --relocs vxworks-relax-2.rd}}
+         {{readelf {--relocs -T} vxworks-relax-2.rd}}
         "vxworks-relax-2"}
     }
     run_ld_link_tests $ppcvxtests
@@ -69,10 +70,10 @@ if {[istarget "*-*-vxworks"]} {
 # is ELF, because we pass -melf32ppc to ld and powerpc-nto-ld wants
 # -melf32ppcnto.
 
-if { [istarget "*-*-macos*"] || [istarget "*-*-netware*"]
+if { [is_xcoff_format]
      || [istarget "*-*-pe"] || [istarget "*-*-winnt*"]
-     || [istarget "*-*-cygwin*"] || [istarget "*-*-aix*"]
-     || [istarget "*-*-beos*"] || [istarget "*-*-lynxos*"]
+     || [istarget "*-*-cygwin*"]
+     || [istarget "*-*-lynxos*"]
      || [istarget "*-*-nto*"] } {
     return
 }
@@ -98,111 +99,200 @@ proc supports_ppc64 { } {
 # readelf: Apply readelf options on result.  Compare with regex (last arg).
 
 set ppcelftests {
-    {"Reloc section order" "-melf32ppc -shared -z nocombreloc" "" "-a32" {reloc.s}
+    {"Reloc section order" "-melf32ppc -shared -z nocombreloc -z notext" "" "-a32" {reloc.s}
      {{objdump -hw reloc.d}} "reloc.so"}
     {"APUinfo section processing" "-melf32ppc" ""
      "-a32 -me500" {apuinfo1.s apuinfo-nul.s apuinfo2.s}
-     {{readelf -x2 apuinfo.rd}} "apuinfo"}
+     {{readelf -x.PPC.EMB.apuinfo apuinfo.rd}} "apuinfo"}
     {"APUinfo VLE section processing" "-melf32ppc" ""
-     "-a32 -me500 -mvle" {apuinfo1.s apuinfo-vle.s apuinfo2.s}
-     {{readelf -x2 apuinfo-vle.rd}} "apuinfo-vle"}
+     "-a32 -me500 -mvle" {apuinfo1.s apuinfo-vle.s apuinfo-vle2.s}
+     {{readelf -x.PPC.EMB.apuinfo apuinfo-vle.rd}} "apuinfo-vle"}
     {"APUinfo NULL section processing" "-melf32ppc" ""
      "-a32 -me500" {apuinfo-nul1.s apuinfo-nul.s}
-     {{readelf -x2 apuinfo-nul.rd}} "apuinfo"}
+     {{readelf -x.PPC.EMB.apuinfo apuinfo-nul.rd}} "apuinfo"}
+    {"TLS32 static exec (markers)" "-melf32ppc" ""
+     "-a32 --defsym TLSMARK=1"  {tls32.s tlslib32.s}
+     {{objdump -dr tls32.d} {objdump -sj.got tls32.g}
+      {objdump -sj.tdata tls32.t}}
+     "tls32m"}
     {"TLS32 static exec" "-melf32ppc" "" "-a32"  {tls32.s tlslib32.s}
      {{objdump -dr tls32.d} {objdump -sj.got tls32.g}
       {objdump -sj.tdata tls32.t}}
      "tls32"}
+    {"TLS32 static exec (--no-tls-optimize)" "-melf32ppc --no-tls-optimize" ""
+     "-a32 --defsym TLSMARK=1"  {tls32.s tlslib32.s}
+     {{objdump -dr tls32no.d} {objdump -sj.got tls32no.g}
+      {objdump -sj.tdata tls32.t}}
+     "tls32no"}
     {"TLS32 helper shared library" "-shared -melf32ppc tmpdir/tlslib32.o" "" "" {}
      {} "libtlslib32.so"}
-    {"TLS32 dynamic exec" "-melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {}
+    {"TLS32 dynamic exec" "-melf32ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {}
      {{readelf -WSsrl tlsexe32.r} {objdump -dr tlsexe32.d}
       {objdump -sj.got tlsexe32.g} {objdump -sj.tdata tlsexe32.t}}
-      "tlsexe32"}
-    {"TLS32 shared" "-shared -melf32ppc --no-ld-generated-unwind-info tmpdir/tls32.o" "" "" {}
+     "tlsexe32"}
+    {"TLS32 dynamic exec (--no-tls-optimize)" "-melf32ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls32.o tmpdir/libtlslib32.so" "" "" {}
+     {{readelf -WSsrl tlsexe32no.r} {objdump -dr tlsexe32no.d}
+      {objdump -sj.got tlsexe32no.g} {objdump -sj.tdata tlsexe32.t}}
+     "tlsexe32no"}
+    {"TLS32 shared" "-shared -melf32ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tls32.o" "" "" {}
      {{readelf -WSsrl tlsso32.r} {objdump -dr tlsso32.d}
       {objdump -sj.got tlsso32.g} {objdump -sj.tdata tlsso32.t}}
-      "tls32.so"}
+     "tls32.so"}
     {"TLS32 markers" "-melf32ppc" "" "-a32"  {tlsmark32.s tlslib32.s}
      {{objdump -dr tlsmark32.d}}
-      "tlsmark32"}
+     "tlsmark32"}
     {"TLS32 opt 1" "-melf32ppc" "" "-a32"  {tlsopt1_32.s tlslib32.s}
      {{objdump -dr tlsopt1_32.d}}
-      "tlsopt1_32"}
+     "tlsopt1_32"}
     {"TLS32 opt 2" "-melf32ppc" "" "-a32"  {tlsopt2_32.s tlslib32.s}
      {{objdump -dr tlsopt2_32.d}}
-      "tlsopt2_32"}
+     "tlsopt2_32"}
     {"TLS32 opt 3" "-melf32ppc" "" "-a32"  {tlsopt3_32.s tlslib32.s}
      {{objdump -dr tlsopt3_32.d}}
       "tlsopt3_32"}
     {"TLS32 opt 4" "-melf32ppc" "" "-a32"  {tlsopt4_32.s tlslib32.s}
      {{objdump -dr tlsopt4_32.d}}
-      "tlsopt4_32"}
+     "tlsopt4_32"}
+    {"TLS32 DLL" "-shared -melf32ppc --version-script tlsdll.ver" ""
+     "-a32" {tlsdll_32.s}
+     {} "tlsdll32.so"}
+    {"TLS32 opt 5" "-melf32ppc -shared --gc-sections --secure-plt --no-plt-align tmpdir/tlsdll32.so" "" "-a32"  {tlsopt5_32.s}
+     {{objdump -dr tlsopt5_32.d}}
+     "tlsopt5_32"}
     {"Shared library with global symbol" "-shared -melf32ppc" "" "-a32" {sdalib.s}
      {} "sdalib.so"}
     {"Dynamic application with SDA" "-melf32ppc tmpdir/sdalib.so" "" "-a32" {sdadyn.s}
      {{objdump -R sdadyn.d}} "sdadyn"}
     {"relaxing" "-melf32ppc --relax -Ttext=0 --defsym far=0x80001234 --defsym near=0x00004320" "" "-a32" "relax.s"
      {{objdump -dr relax.d}}
-      "relax"}
+     "relax"}
     {"relocatable relaxing" "-melf32ppc -r --relax" "" "-a32" "relax.s"
      {{objdump -dr relaxr.d}}
-      "relax"}
+     "rrelax"}
+    {"relocatable relaxing large" "-melf32ppc -r --relax" "" "-a32" "relax.s big.s"
+     {{objdump -dr relaxrl.d}}
+     "rrelax"}
+    {"build empty shared library" "-shared" "" "" "empty.s" {} "empty.so"}
 }
 
 set ppc64elftests {
-    {"TLS static exec" "-melf64ppc" "" "-a64"  {tls.s tlslib.s}
+    {"TLS static exec (markers)" "-melf64ppc --no-plt-align" ""
+     "-a64 --defsym TLSMARK=1"  {tls.s tlslib.s}
+     {{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
+     "tlsm"}
+    {"TLS static exec" "-melf64ppc --no-plt-align" "" "-a64"  {tls.s tlslib.s}
      {{objdump -dr tls.d} {objdump -sj.got tls.g} {objdump -sj.tdata tls.t}}
-      "tls"}
+     "tls"}
+    {"TLS static exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align" ""
+     "-a64 --defsym TLSMARK=1"  {tls.s tlslib.s}
+     {{objdump -dr tlsno.d} {objdump -sj.got tlsno.g} {objdump -sj.tdata tls.t}}
+     "tlsno"}
     {"TLS helper shared library" "-shared -melf64ppc tmpdir/tlslib.o" "" "" {}
      {} "libtlslib.so"}
     {"TLS helper old shared lib" "-shared -melf64ppc" "" "-a64" {oldtlslib.s}
      {} "liboldlib.so"}
-    {"TLS dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
+    {"TLS dynamic exec" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
      {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
       {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
-      "tlsexe"}
-    {"TLS dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o tmpdir/liboldlib.so" "" "" {}
+     "tlsexe"}
+    {"TLS dynamic old" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/liboldlib.so" "" "" {}
      {{readelf -WSsrl tlsexe.r} {objdump -dr tlsexe.d}
       {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
-      "tlsexeold"}
-    {"TLS shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tls.o" "" "" {}
+     "tlsexeold"}
+    {"TLS dynamic exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
+     {{readelf -WSsrl tlsexeno.r} {objdump -dr tlsexeno.d}
+      {objdump -sj.got tlsexeno.g} {objdump -sj.tdata tlsexe.t}}
+     "tlsexeno"}
+    {"TLS shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tls.o" "" "" {}
      {{readelf -WSsrl tlsso.r} {objdump -dr tlsso.d}
       {objdump -sj.got tlsso.g} {objdump -sj.tdata tlsso.t}}
-      "tls.so"}
-    {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o " "" "-a64"  {tlstoc.s}
+     "tls.so"}
+    {"TLSTOC static exec" "-melf64ppc tmpdir/tlslib.o" "" "-a64"  {tlstoc.s}
      {{objdump -dr tlstoc.d} {objdump -sj.got tlstoc.g}
       {objdump -sj.tdata tlstoc.t}}
-      "tlstoc"}
-    {"TLSTOC dynamic exec" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
+     "tlstoc"}
+    {"TLSTOC static exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize tmpdir/tlslib.o tmpdir/tlstoc.o" "" ""  {}
+     {{objdump -dr tlstocno.d} {objdump -sj.got tlstocno.g}
+      {objdump -sj.tdata tlstoc.t}}
+     "tlstocno"}
+    {"TLSTOC dynamic exec" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
      "" {}
      {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
       {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
-      "tlsexetoc"}
-    {"TLSTOC dynamic old" "-melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o tmpdir/liboldlib.so" ""
+     "tlsexetoc"}
+    {"TLSTOC dynamic old" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/liboldlib.so" ""
      "" {}
      {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetoc.d}
       {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
-      "tlsexetocold"}
-    {"TLSTOC shared" "-shared -melf64ppc --no-ld-generated-unwind-info tmpdir/tlstoc.o" "" "" {}
+     "tlsexetocold"}
+    {"TLSTOC dynamic exec (--no-tls-optimize)" "-melf64ppc --no-tls-optimize --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
+     "" {}
+     {{readelf -WSsrl tlsexetoc.r} {objdump -dr tlsexetocno.d}
+      {objdump -sj.got tlsexetocno.g} {objdump -sj.tdata tlsexetoc.t}}
+     "tlsexetocno"}
+    {"TLSTOC shared" "-shared -melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv -z notext tmpdir/tlstoc.o" "" "" {}
      {{readelf -WSsrl tlstocso.r} {objdump -dr tlstocso.d}
       {objdump -sj.got tlstocso.g} {objdump -sj.tdata tlstocso.t}}
-      "tlstoc.so"}
+     "tlstoc.so"}
+    {"TLS dynamic exec (--tls-get-addr-regsave)" "-melf64ppc --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv --tls-get-addr-regsave tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
+     {{readelf -WSsrl tlsexers.r} {objdump -dr tlsexers.d}
+      {objdump -sj.got tlsexe.g} {objdump -sj.tdata tlsexe.t}}
+     "tlsexers"}
+    {"TLS dynamic exec (--no-tls-optimize --tls-get-addr-regsave)" "-melf64ppc --no-tls-optimize --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tls.o tmpdir/libtlslib.so" "" "" {}
+     {{readelf -WSsrl tlsexenors.r} {objdump -dr tlsexenors.d}
+      {objdump -sj.got tlsexeno.g} {objdump -sj.tdata tlsexe.t}}
+     "tlsexenors"}
+    {"TLSTOC dynamic exec (--tls-get-addr-regsave)" "-melf64ppc --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
+     "" {}
+     {{readelf -WSsrl tlsexetocrs.r} {objdump -dr tlsexetocrs.d}
+      {objdump -sj.got tlsexetoc.g} {objdump -sj.tdata tlsexetoc.t}}
+     "tlsexetocrs"}
+    {"TLSTOC dynamic exec (--no-tls-optimize --tls-get-addr-regsave)" "-melf64ppc --no-tls-optimize --tls-get-addr-regsave --no-plt-align --no-ld-generated-unwind-info --hash-style=sysv tmpdir/tlstoc.o tmpdir/libtlslib.so" ""
+     "" {}
+     {{readelf -WSsrl tlsexetocrs.r} {objdump -dr tlsexetocnors.d}
+      {objdump -sj.got tlsexetocno.g} {objdump -sj.tdata tlsexetoc.t}}
+     "tlsexetocnors"}
     {"TLS markers" "-melf64ppc" "" "-a64"  {tlsmark.s tlslib.s}
      {{objdump -dr tlsmark.d}}
-      "tlsmark"}
+     "tlsmark"}
     {"TLS opt 1" "-melf64ppc" "" "-a64"  {tlsopt1.s tlslib.s}
      {{objdump -dr tlsopt1.d}}
-      "tlsopt1"}
+     "tlsopt1"}
     {"TLS opt 2" "-melf64ppc" "" "-a64"  {tlsopt2.s tlslib.s}
      {{objdump -dr tlsopt2.d}}
-      "tlsopt2"}
+     "tlsopt2"}
     {"TLS opt 3" "-melf64ppc" "" "-a64"  {tlsopt3.s tlslib.s}
      {{objdump -dr tlsopt3.d}}
-      "tlsopt3"}
+     "tlsopt3"}
     {"TLS opt 4" "-melf64ppc" "" "-a64"  {tlsopt4.s tlslib.s}
      {{objdump -dr tlsopt4.d}}
-      "tlsopt4"}
+     "tlsopt4"}
+    {"TLS DLL" "-shared -melf64ppc --version-script tlsdll.ver" "" "-a64" {tlsdll.s}
+     {} "tlsdll.so"}
+    {"TLS opt 5" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64"  {tlsopt5.s}
+     {{objdump -dr tlsopt5.d} {readelf -wf tlsopt5.wf}}
+     "tlsopt5"}
+    {"TLS opt 6" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry --tls-get-addr-regsave tmpdir/tlsdll.so" "" "-a64"  {tlsopt5.s}
+     {{objdump -dr tlsopt6.d} {readelf -wf tlsopt6.wf}}
+     "tlsopt6"}
+    {"TLSdesc" "-melf64ppc -shared --hash-style=both --no-plt-localentry tmpdir/libtlslib.so" "" "-a64"  {tlsdesc.s}
+     {{objdump -dr tlsdesc.d} {readelf -wf tlsdesc.wf}}
+     "tlsdesc"}
+    {"TLSdesc2" "-melf64ppc -shared --hash-style=both --no-plt-localentry tmpdir/tlsdll.so" "" "-a64"  {tlsdesc.s}
+     {{objdump -dr tlsdesc2.d} {readelf -wf tlsdesc2.wf}}
+     "tlsdesc2"}
+    {"TLSdesc3" "-melf64ppc --no-tls-optimize tmpdir/tlsdll.o" "" "-a64"  {tlsdesc.s}
+     {{objdump -dr tlsdesc3.d} {readelf -wf tlsdesc3.wf}}
+     "tlsdesc3"}
+    {"TLSdesc4" "-melf64ppc --no-tls-optimize tmpdir/tlsdll.o" "" "-a64"  {tlsdesc4.s}
+     {{objdump -dr tlsdesc4.d} {readelf -wf tlsdesc4.wf}}
+     "tlsdesc4"}
+    {"tlsget" "-shared --hash-style=both -melf64ppc --plt-align=0" "tmpdir/tlsdll.so" "-a64 -mpower10"  {tlsget.s}
+     {{objdump -dr tlsget.d} {readelf -wf tlsget.wf}}
+     "tlsget.so"}
+    {"tlsget2" "-shared --hash-style=both -melf64ppc --plt-align=0 --power10-stubs=yes" "tmpdir/tlsdll.so" "-a64 -mpower10"  {tlsget.s}
+     {{objdump -dr tlsget2.d} {readelf -wf tlsget2.wf}}
+     "tlsget2.so"}
     {"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s}
        {{objdump -dj.data symtocbase.d}} "symtocbase.so"}
     {"TOC opt" "-melf64ppc" "" "-a64"  {tocopt.s}
@@ -215,34 +305,81 @@ set ppc64elftests {
         {tocopt4a.s tocopt4b.s} {{objdump -s tocopt4.d}} "tocopt4"}
     {"TOC opt5" "-melf64ppc" "" "-a64"  {tocopt5.s}
        {{objdump -s tocopt5.d}} "tocopt5"}
+    {"TOC opt6" "-melf64ppc" "" "-a64"  {tocopt6a.s tocopt6b.s tocopt6c.s}
+       {{objdump -d tocopt6.d}} "tocopt6"}
+    {"TOC opt7" "-melf64ppc" "" "-a64 -mpower9"  {tocopt7.s}
+       {{ld tocopt7.out} {objdump -s tocopt7.d}} "tocopt7"}
+    {"TOC opt8" "-melf64ppc" "" "-a64 -mpower9"  {tocopt8.s}
+       {{objdump -s tocopt8.d}} "tocopt8"}
+    {"tocsave lib" "-shared -melf64ppc" "" "-a64" {tocsavelib.s}
+       {} "tocsavelib.so"}
+    {"tocsave1 shared" "-melf64ppc" "tmpdir/tocsavelib.so" "-a64" {tocsave1.s}
+       {{objdump -dr tocsave1s.d}} "tocsave1s"}
+    {"tocsave1 static" "-melf64ppc" "tmpdir/tocsavelib.o" "-a64" {tocsave1.s}
+       {{objdump -dr tocsave1a.d}} "tocsave1a"}
+    {"tocsave2 shared" "-melf64ppc" "tmpdir/tocsavelib.so" "-a64" {tocsave2.s}
+       {{objdump -dr tocsave2s.d}} "tocsave2s"}
+    {"tocsave2 static" "-melf64ppc" "tmpdir/tocsavelib.o" "-a64" {tocsave2.s}
+       {{objdump -dr tocsave2a.d}} "tocsave2a"}
     {"ambig shared v1" "-shared -melf64ppc" "" "-a64" {funv1.s} {} "funv1.so"}
     {"ambig shared v2" "-shared -melf64ppc" "" "-a64" {funv2.s} {} "funv2.so"}
+    {"notoc ext" "" "" "-a64" {ext.s} {} ""}
+    {"notoc" "-melf64ppc --no-plt-localentry --no-power10-stubs -T ext.lnk"
+       "" "-a64" {notoc.s}
+       {{objdump -d notoc.d} {readelf {-wf -W} notoc.wf}} "notoc"}
+    {"notoc2" "-melf64ppc -shared" "" "-a64 -mpower10" {notoc2.s}
+       {{objdump {-d -Mpower10} notoc2.d}} "notoc2"}
+    {"notoc3" "-melf64ppc --no-plt-localentry -T ext.lnk" ""
+       "-a64 -mpower10" {notoc3.s}
+       {{objdump -d notoc3.d} {readelf {-wf -W} notoc3.wf}} "notoc3"}
+    {"pcrelopt" "-melf64ppc --hash-style=gnu" "tmpdir/symtocbase.so"
+       "-a64 -mpower10" {pcrelopt.s}
+       {{objdump {-d -Mpower10} pcrelopt.d}
+        {readelf {-S --wide} pcrelopt.sec}} "pcrelopt" }
+    {"group1" "-melf64ppc -e foo" "" "-a64" {group1.s group2.s group3.s}
+       {{objdump {-d} group1.d}
+        {readelf {-s} group1.sym}} "group1"}
+    {"group2" "-melf64ppc -e foo" "" "-a64" {group2.s group1.s group3.s}
+       {{objdump {-d} group2.d}
+        {readelf {-s} group2.sym}} "group2"}
+    {"group3" "-melf64ppc -e foo" "" "-a64" {group3.s group2.s group1.s}
+       {{objdump {-d} group2.d}
+        {readelf {-s} group3.sym}} "group3"}
+    {"weak1" "-melf64ppc --hash-style=both" ""
+       "-a64 -mpower10" {weak1.s}
+       {{objdump -d weak1.d} {readelf {-srW} weak1.r}} "weak1"}
+    {"weak1.so" "-shared -melf64ppc --hash-style=both" ""
+       "-a64 -mpower10" {weak1.s}
+       {{objdump -d weak1so.d} {readelf {-srW} weak1so.r}} "weak1.so"}
+    {"startstop" "-shared -melf64ppc --hash-style=sysv --gc-sections -z start-stop-gc" ""
+       "-a64 -mpower10" {startstop.s}
+       {{objdump -d startstop.d} {readelf {-rW} startstop.r}} "startstop.so"}
 }
 
 set ppceabitests {
-    {"VLE multiple segments 1" "-T vle-multiseg-1.ld" ""
-     "-mregnames -mvle" {vle-multiseg.s}
+    {"VLE multiple segments 1" "-melf32ppc -T vle-multiseg-1.ld" ""
+     "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-1.d}} "vle-multiseg-1"}
-    {"VLE multiple segments 2" "-T vle-multiseg-2.ld" ""
-     "-mregnames -mvle" {vle-multiseg.s}
+    {"VLE multiple segments 2" "-melf32ppc -T vle-multiseg-2.ld" ""
+     "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-2.d}} "vle-multiseg-2"}
-    {"VLE multiple segments 3" "-T vle-multiseg-3.ld" ""
-     "-mregnames -mvle" {vle-multiseg.s}
+    {"VLE multiple segments 3" "-melf32ppc -T vle-multiseg-3.ld" ""
+     "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-3.d}} "vle-multiseg-3"}
-    {"VLE multiple segments 4" "-T vle-multiseg-4.ld" ""
-     "-mregnames -mvle" {vle-multiseg.s}
+    {"VLE multiple segments 4" "-melf32ppc -T vle-multiseg-4.ld" ""
+     "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-4.d}} "vle-multiseg-4"}
-    {"VLE multiple segments 5" "-T vle-multiseg-5.ld" ""
-     "-mregnames -mvle" {vle-multiseg.s}
+    {"VLE multiple segments 5" "-melf32ppc -T vle-multiseg-5.ld" ""
+     "-a32 -mbig -mregnames -mvle" {vle-multiseg.s}
     {{readelf "-l" vle-multiseg-5.d}} "vle-multiseg-5"}
-    {"VLE relocations 1" "-T vle.ld" ""
-     "-mvle" {vle-reloc-1.s vle-reloc-def-1.s}
+    {"VLE relocations 1" "-melf32ppc -T vle.ld" ""
+     "-a32 -mbig -mvle" {vle-reloc-1.s vle-reloc-def-1.s}
     {{objdump "-Mvle -d" vle-reloc-1.d}} "vle-reloc-1"}
-    {"VLE relocations 2" "-T vle.ld" ""
-     "-mvle" {vle-reloc-2.s vle-reloc-def-2.s}
+    {"VLE relocations 2" "-melf32ppc -T vle.ld" ""
+     "-a32 -mbig -mvle" {vle-reloc-2.s vle-reloc-def-2.s}
     {{objdump "-Mvle -d" vle-reloc-2.d}} "vle-reloc-2"}
-    {"VLE relocations 3" "-T vle.ld" ""
-     "-mvle" {vle-reloc-3.s vle-reloc-def-3.s}
+    {"VLE relocations 3" "-melf32ppc -T vle.ld" ""
+     "-a32 -mbig -mvle" {vle-reloc-3.s vle-reloc-def-3.s}
     {{objdump "-Mvle -d" vle-reloc-3.d}} "vle-reloc-3"}
 }
 
@@ -284,14 +421,36 @@ if [ supports_ppc64 ] then {
     run_dump_test "defsym"
     run_dump_test "tocvar"
     run_dump_test "tocnovar"
+    run_dump_test "tlsldopt"
+    run_dump_test "relocsort"
+    run_dump_test "addpcis"
+    run_dump_test "dotsym1"
+    run_dump_test "dotsym2"
+    run_dump_test "dotsym3"
+    run_dump_test "dotsym4"
+    run_dump_test "pr23937"
+    run_dump_test "callstub-1"
+    run_dump_test "callstub-2"
+    run_dump_test "callstub-3"
+    run_dump_test "callstub-4"
+    run_dump_test "inline-1"
+    run_dump_test "inline-2"
+    run_dump_test "inline-3"
+    run_dump_test "inline-4"
+    run_dump_test "inlinepcrel-1"
+    run_dump_test "inlinepcrel-2"
+    run_dump_test "inlinepcrel-3"
+    run_dump_test "tlsgd"
     run_dump_test "tlsld"
+    run_dump_test "tlsie"
+    run_dump_test "non-contiguous-powerpc64"
+    run_dump_test "tprel"
 }
 
-run_dump_test "tlsld32"
+run_dump_test "localgot"
+run_dump_test "tlsldopt32"
 
-if { [istarget "powerpc*-eabi*"] } {
-    run_ld_link_tests $ppceabitests
-}
+run_ld_link_tests $ppceabitests
 
 run_dump_test "plt1"
 run_dump_test "sdabase"
@@ -305,17 +464,13 @@ run_dump_test "attr-gnu-4-10"
 run_dump_test "attr-gnu-4-11"
 run_dump_test "attr-gnu-4-12"
 run_dump_test "attr-gnu-4-13"
-run_dump_test "attr-gnu-4-14"
 run_dump_test "attr-gnu-4-20"
 run_dump_test "attr-gnu-4-21"
 run_dump_test "attr-gnu-4-22"
 run_dump_test "attr-gnu-4-23"
-run_dump_test "attr-gnu-4-24"
 run_dump_test "attr-gnu-4-31"
 run_dump_test "attr-gnu-4-32"
 run_dump_test "attr-gnu-4-33"
-run_dump_test "attr-gnu-4-34"
-run_dump_test "attr-gnu-4-41"
 
 run_dump_test "attr-gnu-8-11"
 run_dump_test "attr-gnu-8-23"
@@ -325,3 +480,13 @@ run_dump_test "attr-gnu-12-11"
 run_dump_test "attr-gnu-12-21"
 
 run_dump_test "vle-multiseg-6"
+
+run_dump_test "ppc476-shared"
+run_dump_test "ppc476-shared2"
+
+run_dump_test "non-contiguous-powerpc"
+
+run_dump_test "tprel32"
+run_dump_test "tprelbad"
+
+run_dump_test "undefweak"
This page took 0.031579 seconds and 4 git commands to generate.