mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
f2c29a1692
Rename .plt.bnd to .plt.sec to indicate that this is used as the second PLT section. There is no change in run-time behavior. We also scan the .plt.sec section to synthesize PLT symbols. bfd/ * elf64-x86-64.c (elf_x86_64_link_hash_entry): Rename plt_bnd to plt_second. (elf_x86_64_link_hash_table): Rename plt_bnd/plt_bnd_eh_frame to plt_second/plt_second_eh_frame. (elf_x86_64_link_hash_newfunc): Updated. (elf_x86_64_allocate_dynrelocs): Likewise. (elf_x86_64_size_dynamic_sections): Likewise. (elf_x86_64_relocate_section): Likewise. (elf_x86_64_finish_dynamic_symbol): Likewise. (elf_x86_64_finish_dynamic_sections): Likewise. (elf_x86_64_plt_type): Rename plt_bnd to plt_second. (elf_x86_64_get_synthetic_symtab): Updated. Also scan the .plt.sec section. (elf_backend_setup_gnu_properties): Updated. Create the .plt.sec section instead of the .plt.sec section. ld/ * emulparams/elf_x86_64.sh (TINY_READONLY_SECTION): Replace .plt.bnd with .plt.sec. * testsuite/ld-x86-64/bnd-ifunc-1-now.d: Likewise. * testsuite/ld-x86-64/bnd-ifunc-2-now.d: Likewise. * testsuite/ld-x86-64/bnd-ifunc-2.d: Likewise. * testsuite/ld-x86-64/bnd-plt-1-now.d: Likewise. * testsuite/ld-x86-64/bnd-plt-1.d: Likewise. * testsuite/ld-x86-64/mpx3.dd: Likewise. * testsuite/ld-x86-64/mpx3n.dd: Likewise. * testsuite/ld-x86-64/mpx4.dd: Likewise. * testsuite/ld-x86-64/mpx4n.dd: Likewise. * testsuite/ld-x86-64/plt-main-bnd-now.rd: Likewise. * testsuite/ld-x86-64/pr21038b-now.d: Likewise. * testsuite/ld-x86-64/pr21038b.d: Likewise. * testsuite/ld-x86-64/pr21038c-now.d: Likewise. * testsuite/ld-x86-64/pr21038c.d: Likewise.
55 lines
2.1 KiB
Makefile
55 lines
2.1 KiB
Makefile
#as: --64 -madd-bnd-prefix
|
|
#ld: -shared -melf_x86_64 -z bndplt
|
|
#objdump: -dw
|
|
|
|
#...
|
|
0+2b0 <.plt>:
|
|
[ ]*[a-f0-9]+: ff 35 7a 01 20 00 pushq 0x20017a\(%rip\) # 200430 <_GLOBAL_OFFSET_TABLE_\+0x8>
|
|
[ ]*[a-f0-9]+: f2 ff 25 7b 01 20 00 bnd jmpq \*0x20017b\(%rip\) # 200438 <_GLOBAL_OFFSET_TABLE_\+0x10>
|
|
[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
|
|
[ ]*[a-f0-9]+: 68 03 00 00 00 pushq \$0x3
|
|
[ ]*[a-f0-9]+: f2 e9 e5 ff ff ff bnd jmpq 2b0 <.*>
|
|
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
|
|
[ ]*[a-f0-9]+: 68 00 00 00 00 pushq \$0x0
|
|
[ ]*[a-f0-9]+: f2 e9 d5 ff ff ff bnd jmpq 2b0 <.*>
|
|
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
|
|
[ ]*[a-f0-9]+: 68 01 00 00 00 pushq \$0x1
|
|
[ ]*[a-f0-9]+: f2 e9 c5 ff ff ff bnd jmpq 2b0 <.*>
|
|
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
|
|
[ ]*[a-f0-9]+: 68 02 00 00 00 pushq \$0x2
|
|
[ ]*[a-f0-9]+: f2 e9 b5 ff ff ff bnd jmpq 2b0 <.*>
|
|
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
|
|
|
|
Disassembly of section .plt.sec:
|
|
|
|
0+300 <\*ABS\*\+0x32c@plt>:
|
|
[ ]*[a-f0-9]+: f2 ff 25 39 01 20 00 bnd jmpq \*0x200139\(%rip\) # 200440 <_GLOBAL_OFFSET_TABLE_\+0x18>
|
|
[ ]*[a-f0-9]+: 90 nop
|
|
|
|
0+308 <func1@plt>:
|
|
[ ]*[a-f0-9]+: f2 ff 25 39 01 20 00 bnd jmpq \*0x200139\(%rip\) # 200448 <func1>
|
|
[ ]*[a-f0-9]+: 90 nop
|
|
|
|
0+310 <func2@plt>:
|
|
[ ]*[a-f0-9]+: f2 ff 25 39 01 20 00 bnd jmpq \*0x200139\(%rip\) # 200450 <func2>
|
|
[ ]*[a-f0-9]+: 90 nop
|
|
|
|
0+318 <\*ABS\*\+0x320@plt>:
|
|
[ ]*[a-f0-9]+: f2 ff 25 39 01 20 00 bnd jmpq \*0x200139\(%rip\) # 200458 <_GLOBAL_OFFSET_TABLE_\+0x30>
|
|
[ ]*[a-f0-9]+: 90 nop
|
|
|
|
Disassembly of section .text:
|
|
|
|
0+320 <resolve1>:
|
|
[ ]*[a-f0-9]+: f2 e8 e2 ff ff ff bnd callq 308 <func1@plt>
|
|
|
|
0+326 <g1>:
|
|
[ ]*[a-f0-9]+: f2 e9 ec ff ff ff bnd jmpq 318 <\*ABS\*\+0x320@plt>
|
|
|
|
0+32c <resolve2>:
|
|
[ ]*[a-f0-9]+: f2 e8 de ff ff ff bnd callq 310 <func2@plt>
|
|
|
|
0+332 <g2>:
|
|
[ ]*[a-f0-9]+: f2 e9 c8 ff ff ff bnd jmpq 300 <\*ABS\*\+0x32c@plt>
|
|
#pass
|