From: Jim Wilson Date: Thu, 15 Feb 2018 21:48:38 +0000 (-0800) Subject: RISC-V: Fix relocation failure with zero address sections. X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=09ca4b9d9bd61ecb779386a6cc7796cb05dde1af;p=deliverable%2Fbinutils-gdb.git RISC-V: Fix relocation failure with zero address sections. bfd/ * elfnn-riscv.c (_bfd_riscv_relax_section): Ifdef out check to ignore symbols whose section address is zero. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cab828b466..b48afd67bf 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,8 @@ 2018-02-15 Jim Wilson + * elfnn-riscv.c (_bfd_riscv_relax_section): Ifdef out check to ignore + symbols whose section address is zero. + * elfnn-riscv.c (riscv_elf_relocate_section): Use bfd_reloc_dangerous when pcrel_lo reloc has an addend. Use reloc_dangerous callback for bfd_reloc_dangerous. Use einfo instead of warning callback for errors. diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index 931bd1d89d..0530532eec 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -3399,8 +3399,14 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec, { BFD_ASSERT (isym->st_shndx < elf_numsections (abfd)); sym_sec = elf_elfsections (abfd)[isym->st_shndx]->bfd_section; +#if 0 + /* The purpose of this code is unknown. It breaks linker scripts + for embedded development that place sections at address zero. + This code is believed to be unnecessary. Disabling it but not + yet removing it, in case something breaks. */ if (sec_addr (sym_sec) == 0) continue; +#endif symval = sec_addr (sym_sec) + isym->st_value; } }