mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-07 13:39:43 +08:00
This was originally reported by Hau Hsu <hau.hsu@sifive.com>.
Similar to commit 51a8a7c2e3
We shouldn't use riscv_elf_append_rela to add dynamic relocs into .rela.iplt
in the riscv_elf_relocate_section when handling ifunc data reloc R_RISCV_32/64.
This just like what did in the riscv_elf_finish_dynamic_symbol.
bfd/
* elfnn-riscv.c (riscv_elf_relocate_section): We shouldn't use
riscv_elf_append_rela to add dynamic relocs into .rela.iplt in the
riscv_elf_relocate_section when handling ifunc data reloc.
ld/
* testsuite/ld-riscv-elf/ifunc-overwrite.s: Updated and renamed.
* testsuite/ld-riscv-elf/ifunc-overwrite-exe.rd: Likewise.
* testsuite/ld-riscv-elf/ifunc-overwrite-pic.rd: Likewise.
* testsuite/ld-riscv-elf/ifunc-overwrite-pie.rd: Likewise.
* testsuite/ld-riscv-elf/ifunc-overwrite.d: Renamed.
20 lines
555 B
Makefile
20 lines
555 B
Makefile
#...
|
|
Disassembly of section .plt:
|
|
#...
|
|
0+[0-9a-f]+ <(\*ABS\*\+0x[0-9a-f]+@plt|foo@plt|.plt)>:
|
|
#...
|
|
Disassembly of section .text:
|
|
#...
|
|
0+[0-9a-f]+ <foo_resolver>:
|
|
#...
|
|
0+[0-9a-f]+ <bar>:
|
|
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+.*
|
|
.*:[ ]+[0-9a-f]+[ ]+(lw|ld)[ ]+.*<(_GLOBAL_OFFSET_TABLE_.*|.*)>
|
|
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+.*
|
|
.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+.*<(.*plt.*)>
|
|
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+.*
|
|
.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+.*<(.*plt.*)>
|
|
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+.*
|
|
.*:[ ]+[0-9a-f]+[ ]+(lw|ld)[ ]+.*<(_GLOBAL_OFFSET_TABLE_.*|.*)>
|
|
#...
|