aarch64: Use section names for empty stub symbols

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.
This commit is contained in:
Richard Earnshaw
2025-12-16 14:04:10 +00:00
parent 141a040023
commit 8b908f3199
6 changed files with 60 additions and 57 deletions

View 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)

View 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

View 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

View 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

View 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

View 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