PowerPC64: remove empty .rela.dyn (.rela.branch_lt)

Alan Modra amodra@gmail.com
Sun Apr 19 22:47:52 GMT 2020


Stripping .rela.branch_lt is easy enough but messes with the
testsuite due to stub symbols (that use section id) changing.  Tests
that run on more than one target variant can be tricky to fix, this
renaming happened to work.

bfd/
	* elf64-ppc.c (ppc64_elf_size_stubs): Strip relbrlt too.
ld/
	* testsuite/ld-powerpc/tlsopt5.s: Rename foo to aaaaa.
	* testsuite/ld-powerpc/tlsopt5.d: Adjust to suit.
	* testsuite/ld-powerpc/tlsopt6.d: Likewise.

diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 63de3aba59..53e5d913e5 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -13772,6 +13772,8 @@ ppc64_elf_size_stubs (struct bfd_link_info *info)
     }
 
   maybe_strip_output (info, htab->brlt);
+  if (htab->relbrlt != NULL)
+    maybe_strip_output (info, htab->relbrlt);
   if (htab->glink_eh_frame != NULL)
     maybe_strip_output (info, htab->glink_eh_frame);
 
diff --git a/ld/testsuite/ld-powerpc/tlsopt5.d b/ld/testsuite/ld-powerpc/tlsopt5.d
index 596c426bd7..0fcb79821b 100644
--- a/ld/testsuite/ld-powerpc/tlsopt5.d
+++ b/ld/testsuite/ld-powerpc/tlsopt5.d
@@ -8,9 +8,9 @@
 
 Disassembly of section \.text:
 
-.* <.*\.plt_call\.foo>:
+.* <.*\.plt_call\.aaaaa>:
 .*:	(18 00 41 f8|f8 41 00 18) 	std     r2,24\(r1\)
-.*:	(28 80 82 e9|e9 82 80 28) 	ld      r12,-32728\(r2\)
+.*:	(30 80 82 e9|e9 82 80 30) 	ld      r12,-32720\(r2\)
 .*:	(a6 03 89 7d|7d 89 03 a6) 	mtctr   r12
 .*:	(20 04 80 4e|4e 80 04 20) 	bctr
 	\.\.\.
@@ -26,7 +26,7 @@ Disassembly of section \.text:
 .*:	(a6 02 08 7c|7c 08 02 a6) 	mflr    r0
 .*:	(08 00 01 f8|f8 01 00 08) 	std     r0,8\(r1\)
 .*:	(18 00 41 f8|f8 41 00 18) 	std     r2,24\(r1\)
-.*:	(30 80 82 e9|e9 82 80 30) 	ld      r12,-32720\(r2\)
+.*:	(28 80 82 e9|e9 82 80 28) 	ld      r12,-32728\(r2\)
 .*:	(a6 03 89 7d|7d 89 03 a6) 	mtctr   r12
 .*:	(21 04 80 4e|4e 80 04 21) 	bctrl
 .*:	(18 00 41 e8|e8 41 00 18) 	ld      r2,24\(r1\)
@@ -39,7 +39,7 @@ Disassembly of section \.text:
 .*:	(08 80 62 38|38 62 80 08) 	addi    r3,r2,-32760
 .*:	(9d ff ff 4b|4b ff ff 9d) 	bl      .* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>
 .*:	(00 00 00 60|60 00 00 00) 	nop
-.*:	(75 ff ff 4b|4b ff ff 75) 	bl      .* <.*\.plt_call\.foo>
+.*:	(75 ff ff 4b|4b ff ff 75) 	bl      .* <.*\.plt_call\.aaaaa>
 .*:	(18 00 41 e8|e8 41 00 18) 	ld      r2,24\(r1\)
 .*:	(00 00 00 60|60 00 00 00) 	nop
 .*
@@ -61,8 +61,8 @@ Disassembly of section \.text:
 .*:	(08 00 6b e9|e9 6b 00 08) 	ld      r11,8\(r11\)
 .*:	(20 04 80 4e|4e 80 04 20) 	bctr
 
-.* <foo@plt>:
+.* <__tls_get_addr_opt@plt>:
 .*	(c8 ff ff 4b|4b ff ff c8) 	b       .*
 
-.* <__tls_get_addr_opt@plt>:
+.* <aaaaa@plt>:
 .*:	(c4 ff ff 4b|4b ff ff c4) 	b       .*
diff --git a/ld/testsuite/ld-powerpc/tlsopt5.s b/ld/testsuite/ld-powerpc/tlsopt5.s
index 7cb82db1f6..004279a5bd 100644
--- a/ld/testsuite/ld-powerpc/tlsopt5.s
+++ b/ld/testsuite/ld-powerpc/tlsopt5.s
@@ -1,10 +1,10 @@
  .globl _start
- .weak foo
+ .weak aaaaa
 _start:
  .cfi_startproc
  addi 3,2,gd@got@tlsgd
  bl __tls_get_addr(gd@tlsgd)
  nop
- bl foo
+ bl aaaaa
  nop
  .cfi_endproc
diff --git a/ld/testsuite/ld-powerpc/tlsopt6.d b/ld/testsuite/ld-powerpc/tlsopt6.d
index 4100302a42..4ca64092c1 100644
--- a/ld/testsuite/ld-powerpc/tlsopt6.d
+++ b/ld/testsuite/ld-powerpc/tlsopt6.d
@@ -8,9 +8,9 @@
 
 Disassembly of section \.text:
 
-.* <.*\.plt_call\.foo>:
+.* <.*\.plt_call\.aaaaa>:
 .*:	(18 00 41 f8|f8 41 00 18) 	std     r2,24\(r1\)
-.*:	(28 80 82 e9|e9 82 80 28) 	ld      r12,-32728\(r2\)
+.*:	(30 80 82 e9|e9 82 80 30) 	ld      r12,-32720\(r2\)
 .*:	(a6 03 89 7d|7d 89 03 a6) 	mtctr   r12
 .*:	(20 04 80 4e|4e 80 04 20) 	bctr
 	\.\.\.
@@ -35,7 +35,7 @@ Disassembly of section \.text:
 .*:	(f8 ff 61 f9|f9 61 ff f8) 	std     r11,-8\(r1\)
 .*:	(a1 ff 21 f8|f8 21 ff a1) 	stdu    r1,-96\(r1\)
 .*:	(18 00 41 f8|f8 41 00 18) 	std     r2,24\(r1\)
-.*:	(30 80 82 e9|e9 82 80 30) 	ld      r12,-32720\(r2\)
+.*:	(28 80 82 e9|e9 82 80 28) 	ld      r12,-32728\(r2\)
 .*:	(a6 03 89 7d|7d 89 03 a6) 	mtctr   r12
 .*:	(21 04 80 4e|4e 80 04 21) 	bctrl
 .*:	(18 00 41 e8|e8 41 00 18) 	ld      r2,24\(r1\)
@@ -57,7 +57,7 @@ Disassembly of section \.text:
 .*:	(08 80 62 38|38 62 80 08) 	addi    r3,r2,-32760
 .*:	(5d ff ff 4b|4b ff ff 5d) 	bl      .* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>
 .*:	(00 00 00 60|60 00 00 00) 	nop
-.*:	(35 ff ff 4b|4b ff ff 35) 	bl      .* <.*\.plt_call\.foo>
+.*:	(35 ff ff 4b|4b ff ff 35) 	bl      .* <.*\.plt_call\.aaaaa>
 .*:	(18 00 41 e8|e8 41 00 18) 	ld      r2,24\(r1\)
 .*:	(00 00 00 60|60 00 00 00) 	nop
 .*
@@ -79,8 +79,8 @@ Disassembly of section \.text:
 .*:	(08 00 6b e9|e9 6b 00 08) 	ld      r11,8\(r11\)
 .*:	(20 04 80 4e|4e 80 04 20) 	bctr
 
-.* <foo@plt>:
+.* <__tls_get_addr_opt@plt>:
 .*	(c8 ff ff 4b|4b ff ff c8) 	b       .*
 
-.* <__tls_get_addr_opt@plt>:
+.* <aaaaa@plt>:
 .*:	(c4 ff ff 4b|4b ff ff c4) 	b       .*

-- 
Alan Modra
Australia Development Lab, IBM


More information about the Binutils mailing list