Automatic date update in version.in
[deliverable/binutils-gdb.git] / ld / testsuite / ld-powerpc / powerpc.exp
index 3e458e47e864f2d6f6b773b0e8eb1b276eb3d26b..f15f64e38523c8fc931988e8a9b973340108b89d 100644 (file)
@@ -1,5 +1,5 @@
 # Expect script for ld-powerpc tests
-#   Copyright (C) 2002-2020 Free Software Foundation, Inc.
+#   Copyright (C) 2002-2021 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -70,10 +70,10 @@ if {[istarget "*-*-vxworks"]} {
 # is ELF, because we pass -melf32ppc to ld and powerpc-nto-ld wants
 # -melf32ppcnto.
 
-if { [istarget "*-*-macos*"]
+if { [is_xcoff_format]
      || [istarget "*-*-pe"] || [istarget "*-*-winnt*"]
-     || [istarget "*-*-cygwin*"] || [istarget "*-*-aix*"]
-     || [istarget "*-*-beos*"] || [istarget "*-*-lynxos*"]
+     || [istarget "*-*-cygwin*"]
+     || [istarget "*-*-lynxos*"]
      || [istarget "*-*-nto*"] } {
     return
 }
@@ -99,17 +99,17 @@ 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 apuinfo-vle2.s}
-     {{readelf -x2 apuinfo-vle.rd}} "apuinfo-vle"}
+     {{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}
@@ -134,7 +134,7 @@ set ppcelftests {
      {{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 tmpdir/tls32.o" "" "" {}
+    {"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"}
@@ -172,6 +172,7 @@ set ppcelftests {
     {"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 {
@@ -202,7 +203,7 @@ set ppc64elftests {
      {{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 tmpdir/tls.o" "" "" {}
+    {"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"}
@@ -229,7 +230,7 @@ set ppc64elftests {
      {{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 tmpdir/tlstoc.o" "" "" {}
+    {"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"}
@@ -286,6 +287,12 @@ set ppc64elftests {
     {"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}
@@ -317,14 +324,36 @@ set ppc64elftests {
     {"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 -T ext.lnk" "" "-a64" {notoc.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 {
@@ -402,10 +431,20 @@ if [ supports_ppc64 ] then {
     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 "localgot"
@@ -446,3 +485,8 @@ 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.032645 seconds and 4 git commands to generate.