]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
RISC-V: Always generate R_RISCV_CALL_PLT reloc for call in assembler.
authorNelson Chu <nelson@rivosinc.com>
Wed, 14 Sep 2022 02:25:44 +0000 (10:25 +0800)
committerNelson Chu <nelson@rivosinc.com>
Wed, 21 Sep 2022 01:45:58 +0000 (09:45 +0800)
commit70f35d72ef04cd23771875c1661c9975044a749c
tree9e21e16588b2fe41a2dc718ad38df24892b1da2b
parente348122963d188295fcdd3758a112f1e089d1d14
RISC-V: Always generate R_RISCV_CALL_PLT reloc for call in assembler.

Since we have the same behaviors of CALL and CALL_PLT relocs in linker for now,
https://github.com/bminor/binutils-gdb/commit/3b1450b38c644f99aa2e211747b428b9f8d15cca

And the psabi already deprecate the CALL reloc,
https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/a0dced85018d7a0ec17023c9389cbd70b1dbc1b0

Therefore, we should always generate R_RISCV_CALL_PLT reloc for call, even if
it has @plt postfix.  I believe LLVM (https://reviews.llvm.org/D132530) already
support this, so GNU as should do the same thing.

gas/
* config/tc-riscv.c (riscv_ip): Always generate CALL_PLT reloc for
call, even if it has @plt postfix.
* testsuite/gas/riscv/no-relax-reloc.d: Updated CALL to CALL_PLT.
* testsuite/gas/riscv/relax-reloc.d: Likewise.
ld/
* testsuite/ld-riscv-elf/variant_cc-r.d: Updated CALL to CALL_PLT.
gas/config/tc-riscv.c
gas/testsuite/gas/riscv/no-relax-reloc.d
gas/testsuite/gas/riscv/relax-reloc.d
ld/testsuite/ld-riscv-elf/variant_cc-r.d