]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
aarch64: Use section names for empty stub symbols
authorRichard Earnshaw <rearnsha@arm.com>
Tue, 16 Dec 2025 14:04:10 +0000 (14:04 +0000)
committerRichard Earnshaw <rearnsha@arm.com>
Fri, 9 Jan 2026 10:21:09 +0000 (10:21 +0000)
If the target symbol for a stub was empty we would previously end up
using an anonymous stub name of the form ___veneer.  To make things a
little clearer use the section symbol for the target section in this
case.  We now end up with veneer symbols like __.text_veneer.

Adjusted the tests accordingly.

bfd/elfnn-aarch64.c
ld/testsuite/ld-aarch64/farcall-b-section.d
ld/testsuite/ld-aarch64/farcall-bl-section.d
ld/testsuite/ld-aarch64/protections/bti-far-1.d
ld/testsuite/ld-aarch64/protections/bti-far-2.d
ld/testsuite/ld-aarch64/protections/bti-far-opt.d

index 0e0200a47db75511a915c07c4af81e59af2948e5..a3fd1dd75614ab63362f841251474abd51f99f1f 100644 (file)
@@ -4494,6 +4494,8 @@ _bfd_aarch64_add_call_stub_entries (bool *stub_changed, bfd *output_bfd,
                    = bfd_elf_string_from_elf_section (input_bfd,
                                                       symtab_hdr->sh_link,
                                                       sym->st_name);
+                 if (sym_name == NULL || sym_name[0] == 0)
+                   sym_name = bfd_section_name (sym_sec);
                }
              else
                {
@@ -4629,8 +4631,9 @@ _bfd_aarch64_add_call_stub_entries (bool *stub_changed, bfd *output_bfd,
              stub_entry->h = hash;
              stub_entry->st_type = st_type;
 
-             if (sym_name == NULL)
-               sym_name = "unnamed";
+             if (sym_name == NULL || sym_name[0] == 0)
+               sym_name = bfd_section_name (section);
+
              len = sizeof (STUB_ENTRY_NAME) + strlen (sym_name);
              stub_entry->output_name = bfd_alloc (htab->stub_bfd, len);
              if (stub_entry->output_name == NULL)
index 40b10720953f5b0ec93bebcb8a190fb01cbe540c..fd83c25d00ea08448768636f399cc61776972c1e 100644 (file)
@@ -8,20 +8,20 @@
 Disassembly of section .text:
 
 .* <_start>:
-    1000:      1400000a        b       1028 <___veneer>
-    1004:      14000005        b       1018 <___veneer>
+    1000:      1400000a        b       1028 <__\.foo_veneer>
+    1004:      14000005        b       1018 <__\.foo_veneer>
     1008:      d65f03c0        ret
     100c:      d503201f        nop
-    1010:      1400000e        b       1048 <___veneer\+0x20>
+    1010:      1400000e        b       1048 <__\.foo_veneer\+0x20>
     1014:      d503201f        nop
 
-.* <___veneer>:
+.* <__\.foo_veneer>:
     1018:      90040010        adrp    x16, 8001000 <bar>
     101c:      91001210        add     x16, x16, #0x4
     1020:      d61f0200        br      x16
     1024:      00000000        udf     #0
 
-.* <___veneer>:
+.* <__\.foo_veneer>:
     1028:      90040010        adrp    x16, 8001000 <bar>
     102c:      91000210        add     x16, x16, #0x0
     1030:      d61f0200        br      x16
index b3ed36fbb9477b60fe9e4fd65e781d494061c726..665d9a4ef7ece167beba9d185a3bae6ca36d6dfd 100644 (file)
@@ -8,20 +8,20 @@
 Disassembly of section .text:
 
 .* <_start>:
-    1000:      9400000a        bl      1028 <___veneer>
-    1004:      94000005        bl      1018 <___veneer>
+    1000:      9400000a        bl      1028 <__\.foo_veneer>
+    1004:      94000005        bl      1018 <__\.foo_veneer>
     1008:      d65f03c0        ret
     100c:      d503201f        nop
-    1010:      1400000e        b       1048 <___veneer\+0x20>
+    1010:      1400000e        b       1048 <__\.foo_veneer\+0x20>
     1014:      d503201f        nop
 
-.* <___veneer>:
+.* <__\.foo_veneer>:
     1018:      90040010        adrp    x16, 8001000 <bar>
     101c:      91001210        add     x16, x16, #0x4
     1020:      d61f0200        br      x16
     1024:      00000000        udf     #0
 
-.* <___veneer>:
+.* <__\.foo_veneer>:
     1028:      90040010        adrp    x16, 8001000 <bar>
     102c:      91000210        add     x16, x16, #0x0
     1030:      d61f0200        br      x16
index eb295cffbe8514beebf4505af69d312a32caf147..8ee266143851c781dba448adf515ccc0dac684b5 100644 (file)
@@ -36,19 +36,19 @@ Disassembly of section \.text:
 
 0000000000020000 <_start>:
    20000:      97ffe008        bl      18020 <foo@plt>
-   20004:      94000007        bl      20020 <___veneer>
+   20004:      94000007        bl      20020 <__\.far_veneer>
    20008:      94000001        bl      2000c <baz>
 
 000000000002000c <baz>:
    2000c:      d65f03c0        ret
-   20010:      1400000a        b       20038 <___veneer\+0x18>
+   20010:      1400000a        b       20038 <__\.far_veneer\+0x18>
    20014:      d503201f        nop
 
-0000000000020018 <___bti_veneer>:
+0000000000020018 <__\.text_bti_veneer>:
    20018:      d503245f        bti     c
    2001c:      17fffffc        b       2000c <baz>
 
-0000000000020020 <___veneer>:
+0000000000020020 <__\.far_veneer>:
    20020:      90091910        adrp    x16, 12340000 <foo>
    20024:      9100c210        add     x16, x16, #0x30
    20028:      d61f0200        br      x16
@@ -57,13 +57,13 @@ Disassembly of section \.text:
 Disassembly of section \.far:
 
 0000000012340000 <foo>:
-    12340000:  9400000e        bl      12340038 <___veneer>
+    12340000:  9400000e        bl      12340038 <__\.text_veneer>
 
 0000000012340004 <bar>:
-    12340004:  9400000d        bl      12340038 <___veneer>
+    12340004:  9400000d        bl      12340038 <__\.text_veneer>
     12340008:  94000004        bl      12340018 <__foo_veneer>
     1234000c:  00000000        udf     #0
-    12340010:  14000010        b       12340050 <___veneer\+0x18>
+    12340010:  14000010        b       12340050 <__\.text_veneer\+0x18>
     12340014:  d503201f        nop
 
 0000000012340018 <__foo_veneer>:
@@ -72,11 +72,11 @@ Disassembly of section \.far:
     12340020:  d61f0200        br      x16
        \.\.\.
 
-0000000012340030 <___bti_veneer>:
+0000000012340030 <__\.far_bti_veneer>:
     12340030:  d503245f        bti     c
     12340034:  17fffff4        b       12340004 <bar>
 
-0000000012340038 <___veneer>:
+0000000012340038 <__\.text_veneer>:
     12340038:  90f6e710        adrp    x16, 20000 <_start>
     1234003c:  91006210        add     x16, x16, #0x18
     12340040:  d61f0200        br      x16
index cb59b372fe8e3b6d0a2007a3f8479df9e6080d1e..db5dcab5c4d651b2d0193b20a51976f769490a3b 100644 (file)
@@ -11,7 +11,7 @@ Disassembly of section \.text:
 
 0000000000020000 <_start>:
    20000:      9400000e        bl      20038 <__foo_veneer>
-   20004:      94000007        bl      20020 <___veneer>
+   20004:      94000007        bl      20020 <__\.far_veneer>
    20008:      94000001        bl      2000c <baz>
 
 000000000002000c <baz>:
@@ -19,11 +19,11 @@ Disassembly of section \.text:
    20010:      14000010        b       20050 <__foo_veneer\+0x18>
    20014:      d503201f        nop
 
-0000000000020018 <___bti_veneer>:
+0000000000020018 <__\.text_bti_veneer>:
    20018:      d503245f        bti     c
    2001c:      17fffffc        b       2000c <baz>
 
-0000000000020020 <___veneer>:
+0000000000020020 <__\.far_veneer>:
    20020:      90091910        adrp    x16, 12340000 <foo>
    20024:      91008210        add     x16, x16, #0x20
    20028:      d61f0200        br      x16
@@ -38,24 +38,24 @@ Disassembly of section \.text:
 Disassembly of section \.far:
 
 0000000012340000 <foo>:
-    12340000:  9400000a        bl      12340028 <___veneer>
+    12340000:  9400000a        bl      12340028 <__\.text_veneer>
 
 0000000012340004 <bar>:
-    12340004:  94000009        bl      12340028 <___veneer>
+    12340004:  94000009        bl      12340028 <__\.text_veneer>
     12340008:  97fffffe        bl      12340000 <foo>
     1234000c:  00000000        udf     #0
-    12340010:  1400000c        b       12340040 <___veneer\+0x18>
+    12340010:  1400000c        b       12340040 <__\.text_veneer\+0x18>
     12340014:  d503201f        nop
 
 0000000012340018 <__foo_bti_veneer>:
     12340018:  d503245f        bti     c
     1234001c:  17fffff9        b       12340000 <foo>
 
-0000000012340020 <___bti_veneer>:
+0000000012340020 <__\.far_bti_veneer>:
     12340020:  d503245f        bti     c
     12340024:  17fffff8        b       12340004 <bar>
 
-0000000012340028 <___veneer>:
+0000000012340028 <__\.text_veneer>:
     12340028:  90f6e710        adrp    x16, 20000 <_start>
     1234002c:  91006210        add     x16, x16, #0x18
     12340030:  d61f0200        br      x16
index ce202815c9a794108dd26d1b6a848ff696823cd0..433d705b2ac4cc8f0b37b1cfba2151fb6529f95d 100644 (file)
@@ -36,7 +36,7 @@ Disassembly of section \.text:
 
 0000000000020000 <_start>:
    20000:      97ffe008        bl      18020 <foo@plt>
-   20004:      9400000d        bl      20038 <___veneer>
+   20004:      9400000d        bl      20038 <__\.far_veneer>
    20008:      94000001        bl      2000c <baz>
 
 000000000002000c <baz>:
@@ -59,45 +59,45 @@ Disassembly of section \.text:
 
 0000000000020024 <baz_pacibsp>:
    20024:      d503237f        pacibsp
-   20028:      1400000c        b       20058 <___bti_veneer\+0x8>
+   20028:      1400000c        b       20058 <__\.text_bti_veneer\+0x8>
    2002c:      d503201f        nop
 
-0000000000020030 <___bti_veneer>:
+0000000000020030 <__\.text_bti_veneer>:
    20030:      d503245f        bti     c
    20034:      17fffff6        b       2000c <baz>
 
-0000000000020038 <___veneer>:
+0000000000020038 <__\.far_veneer>:
    20038:      90091910        adrp    x16, 12340000 <foo>
    2003c:      9102a210        add     x16, x16, #0xa8
    20040:      d61f0200        br      x16
        \.\.\.
 
-0000000000020050 <___bti_veneer>:
+0000000000020050 <__\.text_bti_veneer>:
    20050:      d503245f        bti     c
    20054:      17ffffef        b       20010 <baz_bti_>
 
 Disassembly of section \.far:
 
 0000000012340000 <foo>:
-    12340000:  94000032        bl      123400c8 <___veneer>
-    12340004:  9400001d        bl      12340078 <___veneer>
-    12340008:  94000022        bl      12340090 <___veneer>
-    1234000c:  94000035        bl      123400e0 <___veneer>
-    12340010:  9400003a        bl      123400f8 <___veneer>
-    12340014:  94000013        bl      12340060 <___veneer>
-    12340018:  94000026        bl      123400b0 <___veneer>
+    12340000:  94000032        bl      123400c8 <__\.text_veneer>
+    12340004:  9400001d        bl      12340078 <__\.text_veneer>
+    12340008:  94000022        bl      12340090 <__\.text_veneer>
+    1234000c:  94000035        bl      123400e0 <__\.text_veneer>
+    12340010:  9400003a        bl      123400f8 <__\.text_veneer>
+    12340014:  94000013        bl      12340060 <__\.text_veneer>
+    12340018:  94000026        bl      123400b0 <__\.text_veneer>
 
 000000001234001c <bar>:
     1234001c:  1400000b        b       12340048 <__foo_veneer>
-    12340020:  1400002a        b       123400c8 <___veneer>
-    12340024:  14000015        b       12340078 <___veneer>
-    12340028:  1400001a        b       12340090 <___veneer>
-    1234002c:  1400002d        b       123400e0 <___veneer>
-    12340030:  14000032        b       123400f8 <___veneer>
-    12340034:  1400000b        b       12340060 <___veneer>
-    12340038:  1400001e        b       123400b0 <___veneer>
+    12340020:  1400002a        b       123400c8 <__\.text_veneer>
+    12340024:  14000015        b       12340078 <__\.text_veneer>
+    12340028:  1400001a        b       12340090 <__\.text_veneer>
+    1234002c:  1400002d        b       123400e0 <__\.text_veneer>
+    12340030:  14000032        b       123400f8 <__\.text_veneer>
+    12340034:  1400000b        b       12340060 <__\.text_veneer>
+    12340038:  1400001e        b       123400b0 <__\.text_veneer>
     1234003c:  00000000        udf     #0
-    12340040:  14000034        b       12340110 <___veneer\+0x18>
+    12340040:  14000034        b       12340110 <__\.text_veneer\+0x18>
     12340044:  d503201f        nop
 
 0000000012340048 <__foo_veneer>:
@@ -106,47 +106,47 @@ Disassembly of section \.far:
     12340050:  d61f0200        br      x16
        \.\.\.
 
-0000000012340060 <___veneer>:
+0000000012340060 <__\.text_veneer>:
     12340060:  90f6e710        adrp    x16, 20000 <_start>
     12340064:  91008210        add     x16, x16, #0x20
     12340068:  d61f0200        br      x16
        \.\.\.
 
-0000000012340078 <___veneer>:
+0000000012340078 <__\.text_veneer>:
     12340078:  90f6e710        adrp    x16, 20000 <_start>
     1234007c:  91014210        add     x16, x16, #0x50
     12340080:  d61f0200        br      x16
        \.\.\.
 
-0000000012340090 <___veneer>:
+0000000012340090 <__\.text_veneer>:
     12340090:  90f6e710        adrp    x16, 20000 <_start>
     12340094:  91005210        add     x16, x16, #0x14
     12340098:  d61f0200        br      x16
        \.\.\.
 
-00000000123400a8 <___bti_veneer>:
+00000000123400a8 <__\.far_bti_veneer>:
     123400a8:  d503245f        bti     c
     123400ac:  17ffffdc        b       1234001c <bar>
 
-00000000123400b0 <___veneer>:
+00000000123400b0 <__\.text_veneer>:
     123400b0:  90f6e710        adrp    x16, 20000 <_start>
     123400b4:  91009210        add     x16, x16, #0x24
     123400b8:  d61f0200        br      x16
        \.\.\.
 
-00000000123400c8 <___veneer>:
+00000000123400c8 <__\.text_veneer>:
     123400c8:  90f6e710        adrp    x16, 20000 <_start>
     123400cc:  9100c210        add     x16, x16, #0x30
     123400d0:  d61f0200        br      x16
        \.\.\.
 
-00000000123400e0 <___veneer>:
+00000000123400e0 <__\.text_veneer>:
     123400e0:  90f6e710        adrp    x16, 20000 <_start>
     123400e4:  91006210        add     x16, x16, #0x18
     123400e8:  d61f0200        br      x16
        \.\.\.
 
-00000000123400f8 <___veneer>:
+00000000123400f8 <__\.text_veneer>:
     123400f8:  90f6e710        adrp    x16, 20000 <_start>
     123400fc:  91007210        add     x16, x16, #0x1c
     12340100:  d61f0200        br      x16