| commit | 70f35d72ef04cd23771875c1661c9975044a749c | [log] [tgz] |
|---|---|---|
| author | Nelson Chu <nelson@rivosinc.com> | Wed Sep 14 10:25:44 2022 +0800 |
| committer | Nelson Chu <nelson@rivosinc.com> | Wed Sep 21 09:45:58 2022 +0800 |
| tree | 9e21e16588b2fe41a2dc718ad38df24892b1da2b | |
| parent | e348122963d188295fcdd3758a112f1e089d1d14 [diff] |
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.