From: Nelson Chu Date: Mon, 24 Oct 2022 10:26:36 +0000 (+0800) Subject: RISC-V: Should reset `again' flag for _bfd_riscv_relax_pc. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=845652b78412a98226c321aade16920d06e552ca;p=binutils-gdb.git RISC-V: Should reset `again' flag for _bfd_riscv_relax_pc. The R_RISCV_DELETE relocations are no longer deleted at another relax pass, so we should reset 'again' flag to true for _bfd_riscv_relax_pc, while the deleted bytes are marked as R_RISCV_DELETE. bfd/ * elfnn-riscv.c (_bfd_riscv_relax_pc): Set `again' to true while the deleted bytes are marked as R_RISCV_DELETE. --- diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index e4064313724..cf852636c9c 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -4586,7 +4586,7 @@ _bfd_riscv_relax_pc (bfd *abfd ATTRIBUTE_UNUSED, bfd_vma symval, bfd_vma max_alignment, bfd_vma reserve_size, - bool *again ATTRIBUTE_UNUSED, + bool *again, riscv_pcgp_relocs *pcgp_relocs, bool undefined_weak) { @@ -4715,6 +4715,7 @@ _bfd_riscv_relax_pc (bfd *abfd ATTRIBUTE_UNUSED, sym_sec, undefined_weak); /* Delete unnecessary AUIPC and reuse the reloc. */ + *again = true; riscv_relax_delete_bytes (abfd, sec, rel->r_offset, 4, link_info, pcgp_relocs, rel); return true;