Subject: PR26882, --enable-textrel-check=warning test failures on powerpc
From: Alan Modra <[email-masked]>
Date: Mon, 16 Nov 2020 22:08:05 +0000 (+1030)

PR26882, --enable-textrel-check=warning test failures on powerpc

	PR 26882
	* testsuite/ld-powerpc/dotsym3.d: Add "-z notext" to ld options.
	* testsuite/ld-powerpc/dotsym4.d: Likewise.
	* testsuite/ld-powerpc/ppc476-shared.d: Likewise.
	* testsuite/ld-powerpc/ppc476-shared2.d: Likewise.
	* testsuite/ld-powerpc/powerpc.exp: Likewise for various tests.
	* testsuite/ld-undefined/weak-fundef.s: Add BLPLT variant.
	* testsuite/ld-undefined/weak-undef.exp: Define BLPLT for ppc32.
---

diff --git a/ld/testsuite/ld-powerpc/dotsym3.d b/ld/testsuite/ld-powerpc/dotsym3.d
index fac2f8ec732..215a9c2a6c1 100644
--- a/ld/testsuite/ld-powerpc/dotsym3.d
+++ b/ld/testsuite/ld-powerpc/dotsym3.d
@@ -1,7 +1,7 @@
 #source: nodotsym.s
 #source: dotsymref.s
 #as: -a64
-#ld: -melf64ppc -Ttext=0x1000 -shared
+#ld: -melf64ppc -Ttext=0x1000 -shared -z notext
 #objdump: -dR
 
 .*:     file format .*
diff --git a/ld/testsuite/ld-powerpc/dotsym4.d b/ld/testsuite/ld-powerpc/dotsym4.d
index fdd92f3da76..d774e83bcf6 100644
--- a/ld/testsuite/ld-powerpc/dotsym4.d
+++ b/ld/testsuite/ld-powerpc/dotsym4.d
@@ -1,7 +1,7 @@
 #source: dotsymref.s
 #source: nodotsym.s
 #as: -a64
-#ld: -melf64ppc -Ttext=0x1000 -shared
+#ld: -melf64ppc -Ttext=0x1000 -shared -z notext
 #objdump: -dR
 
 .*:     file format .*
diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
index 74af28d7421..2cbefb841c2 100644
--- a/ld/testsuite/ld-powerpc/powerpc.exp
+++ b/ld/testsuite/ld-powerpc/powerpc.exp
@@ -99,7 +99,7 @@ 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}
@@ -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"}
@@ -202,7 +202,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 +229,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"}
diff --git a/ld/testsuite/ld-powerpc/ppc476-shared.d b/ld/testsuite/ld-powerpc/ppc476-shared.d
index 7953cb44e25..3b2cc8a155c 100644
--- a/ld/testsuite/ld-powerpc/ppc476-shared.d
+++ b/ld/testsuite/ld-powerpc/ppc476-shared.d
@@ -1,6 +1,6 @@
 #source: ppc476-shared.s
 #as: -a32
-#ld: -melf32ppc -q -shared -z common-page-size=0x10000 --ppc476-workaround -T ppc476-shared.lnk
+#ld: -melf32ppc -q -shared -z common-page-size=0x10000 -z notext --ppc476-workaround -T ppc476-shared.lnk
 #objdump: -dr
 #target: powerpc*-*-*
 
diff --git a/ld/testsuite/ld-powerpc/ppc476-shared2.d b/ld/testsuite/ld-powerpc/ppc476-shared2.d
index 26a5c41f988..48917fd4d92 100644
--- a/ld/testsuite/ld-powerpc/ppc476-shared2.d
+++ b/ld/testsuite/ld-powerpc/ppc476-shared2.d
@@ -1,6 +1,6 @@
 #source: ppc476-shared.s
 #as: -a32
-#ld: -melf32ppc -shared -z common-page-size=0x10000 --ppc476-workaround -T ppc476-shared.lnk
+#ld: -melf32ppc -shared -z common-page-size=0x10000 -z notext --ppc476-workaround -T ppc476-shared.lnk
 #objdump: -R
 #target: powerpc*-*-*
 
diff --git a/ld/testsuite/ld-undefined/weak-fundef.s b/ld/testsuite/ld-undefined/weak-fundef.s
index 2c20f799417..de8f641b6c2 100644
--- a/ld/testsuite/ld-undefined/weak-fundef.s
+++ b/ld/testsuite/ld-undefined/weak-fundef.s
@@ -5,6 +5,9 @@
 	bl undef_weak_fun
 	nop
  .endif
+ .ifdef BLPLT
+	bl undef_weak_fun@plt
+ .endif
  .ifdef CALLPLT
 	call undef_weak_fun@plt
  .endif
diff --git a/ld/testsuite/ld-undefined/weak-undef.exp b/ld/testsuite/ld-undefined/weak-undef.exp
index 50c8e1483e3..14b6774c5bc 100644
--- a/ld/testsuite/ld-undefined/weak-undef.exp
+++ b/ld/testsuite/ld-undefined/weak-undef.exp
@@ -105,7 +105,8 @@ set asflags ""
 switch -glob $target_triplet {
     aarch64* -
     arm* -
-    powerpc* { set asflags "--defsym BL=1" }
+    powerpc64* { set asflags "--defsym BL=1" }
+    powerpc* { set asflags "--defsym BLPLT=1" }
     hppa* { set asflags "--defsym HPPA=1" }
     i\[3-7\]86* -
     x86_64* { set asflags "--defsym CALLPLT=1" }