mirror of
https://github.com/bminor/binutils-gdb.git
synced 2026-02-04 15:31:30 +00:00
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:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user