mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 02:24:17 +08:00
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.
This commit is contained in:
@ -1,5 +1,8 @@
|
|||||||
2018-02-15 Jim Wilson <jimw@sifive.com>
|
2018-02-15 Jim Wilson <jimw@sifive.com>
|
||||||
|
|
||||||
|
* 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
|
* elfnn-riscv.c (riscv_elf_relocate_section): Use bfd_reloc_dangerous
|
||||||
when pcrel_lo reloc has an addend. Use reloc_dangerous callback for
|
when pcrel_lo reloc has an addend. Use reloc_dangerous callback for
|
||||||
bfd_reloc_dangerous. Use einfo instead of warning callback for errors.
|
bfd_reloc_dangerous. Use einfo instead of warning callback for errors.
|
||||||
|
@ -3399,8 +3399,14 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
|
|||||||
{
|
{
|
||||||
BFD_ASSERT (isym->st_shndx < elf_numsections (abfd));
|
BFD_ASSERT (isym->st_shndx < elf_numsections (abfd));
|
||||||
sym_sec = elf_elfsections (abfd)[isym->st_shndx]->bfd_section;
|
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)
|
if (sec_addr (sym_sec) == 0)
|
||||||
continue;
|
continue;
|
||||||
|
#endif
|
||||||
symval = sec_addr (sym_sec) + isym->st_value;
|
symval = sec_addr (sym_sec) + isym->st_value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user