public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb/binutils-2_41-branch] aarch64-elf: FAIL: indirect call stub to BTI stub relaxation
@ 2023-12-20 16:00 Szabolcs Nagy
  0 siblings, 0 replies; only message in thread
From: Szabolcs Nagy @ 2023-12-20 16:00 UTC (permalink / raw)
  To: bfd-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5f41ff2d2cddd6d477351b36353ba1cf89bdafe7

commit 5f41ff2d2cddd6d477351b36353ba1cf89bdafe7
Author: Alan Modra <amodra@gmail.com>
Date:   Mon Dec 4 08:48:34 2023 +1030

    aarch64-elf: FAIL: indirect call stub to BTI stub relaxation
    
    aarch64-elf fails the ld-aarch64/bfd-far-3.d test, due to the stubs
    being emitted in a different order to that of aarch64-linux.  They are
    emitted in a different order due to stub names for local symbols
    having the section id in the stub name.  aarch64-linux-ld generates
    one more section than aarch64-elf-ld.  That section is .gnu.hash.  So
    the stub names differ and are hashed to different slots in
    stub_hash_table.
    
    Fix this by running the test with --hash-style=sysv, and adjust
    expected output.  I've also changed the branch over stubs emitted at
    the start of a group of stubs to not care about the symbol, for all
    groups not just the one that needed changing.
    
            * ld-aarch64/bti-far-3.d: Add --hash-style=sysv.  Adjust
            expected output.
    
    (cherry picked from commit 21a2a3d567a2af583768b5f614403e65611c58a5)

Diff:
---
 ld/testsuite/ld-aarch64/bti-far-3.d | 51 ++++++++++++++++++-------------------
 1 file changed, 25 insertions(+), 26 deletions(-)

diff --git a/ld/testsuite/ld-aarch64/bti-far-3.d b/ld/testsuite/ld-aarch64/bti-far-3.d
index b27d8b56548..f04ce94f0ac 100644
--- a/ld/testsuite/ld-aarch64/bti-far-3.d
+++ b/ld/testsuite/ld-aarch64/bti-far-3.d
@@ -2,7 +2,7 @@
 #source: bti-far-3a.s
 #source: bti-far-3b.s
 #source: bti-far-3c.s
-#ld: -shared -T bti-far-3.ld
+#ld: -shared --hash-style=sysv -T bti-far-3.ld
 #objdump: -dr
 
 [^:]*: *file format elf64-.*aarch64
@@ -25,7 +25,7 @@ Disassembly of section \.plt:
    20024:	f9401211 	ldr	x17, \[x16, #32\]
    20028:	91008210 	add	x16, x16, #0x20
    2002c:	d61f0220 	br	x17
-   20030:	14000004 	b	20040 <__extern_func_bti_veneer\+0x8>
+   20030:	14000004 	b	20040 .*
    20034:	d503201f 	nop
 
 0000000000020038 <__extern_func_bti_veneer>:
@@ -38,12 +38,12 @@ Disassembly of section \.text:
        30000:	15c00004 	b	7030010 <__b_func_veneer>
        30004:	17ffc007 	b	20020 <extern_func@plt>
 	\.\.\.
-     7030008:	1400000a 	b	7030030 <__a_func_bti_veneer\+0x8>
+     7030008:	1400000a 	b	7030030 .*
      703000c:	d503201f 	nop
 
 0000000007030010 <__b_func_veneer>:
      7030010:	90040010 	adrp	x16, f030000 <b_func\+0x6ffffd0>
-     7030014:	9101e210 	add	x16, x16, #0x78
+     7030014:	91018210 	add	x16, x16, #0x60
      7030018:	d61f0200 	br	x16
 	\.\.\.
 
@@ -53,34 +53,33 @@ Disassembly of section \.text:
 	\.\.\.
 
 0000000008030030 <b_func>:
-     8030030:	15c00004 	b	f030040 <__c_func_veneer>
-     8030034:	15c00005 	b	f030048 <__a_func_veneer>
+     8030030:	15c0000a 	b	f030058 <__c_func_veneer>
+     8030034:	15c00003 	b	f030040 <__a_func_veneer>
 	\.\.\.
-     f030038:	14000012 	b	f030080 <__b_func_bti_veneer\+0x8>
+     f030038:	14000012 	b	f030080 .*
      f03003c:	d503201f 	nop
 
-000000000f030040 <__c_func_veneer>:
-     f030040:	d503245f 	bti	c
-     f030044:	1440000f 	b	10030080 <c_func>
-
-000000000f030048 <__a_func_veneer>:
-     f030048:	90fc0010 	adrp	x16, 7030000 <a_func\+0x7000000>
-     f03004c:	9100a210 	add	x16, x16, #0x28
-     f030050:	d61f0200 	br	x16
+000000000f030040 <__a_func_veneer>:
+     f030040:	90fc0010 	adrp	x16, 7030000 <a_func\+0x7000000>
+     f030044:	9100a210 	add	x16, x16, #0x28
+     f030048:	d61f0200 	br	x16
 	\.\.\.
 
-000000000f030060 <__extern_func_veneer>:
-     f030060:	90f87f90 	adrp	x16, 20000 <\.plt>
-     f030064:	9100e210 	add	x16, x16, #0x38
-     f030068:	d61f0200 	br	x16
-	\.\.\.
+000000000f030058 <__c_func_veneer>:
+     f030058:	d503245f 	bti	c
+     f03005c:	14400009 	b	10030080 <c_func>
+
+000000000f030060 <__b_func_bti_veneer>:
+     f030060:	d503245f 	bti	c
+     f030064:	163ffff3 	b	8030030 <b_func>
 
-000000000f030078 <__b_func_bti_veneer>:
-     f030078:	d503245f 	bti	c
-     f03007c:	163fffed 	b	8030030 <b_func>
+000000000f030068 <__extern_func_veneer>:
+     f030068:	90f87f90 	adrp	x16, 20000 <\.plt>
+     f03006c:	9100e210 	add	x16, x16, #0x38
+     f030070:	d61f0200 	br	x16
 	\.\.\.
 
 0000000010030080 <c_func>:
-    10030080:	17bffff2 	b	f030048 <__a_func_veneer>
-    10030084:	17bffffd 	b	f030078 <__b_func_bti_veneer>
-    10030088:	17bffff6 	b	f030060 <__extern_func_veneer>
+    10030080:	17bffff0 	b	f030040 <__a_func_veneer>
+    10030084:	17bffff7 	b	f030060 <__b_func_bti_veneer>
+    10030088:	17bffff8 	b	f030068 <__extern_func_veneer>

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-12-20 16:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-20 16:00 [binutils-gdb/binutils-2_41-branch] aarch64-elf: FAIL: indirect call stub to BTI stub relaxation Szabolcs Nagy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).