diff options
Diffstat (limited to 'bfd/elf32-arc.c')
-rw-r--r-- | bfd/elf32-arc.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index 0a6e665..ebfe4dc 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -1947,6 +1947,18 @@ elf_arc_relocate_section (bfd * output_bfd, return false; } + if (wrel != rel) + { + Elf_Internal_Shdr *rel_hdr; + size_t deleted = rel - wrel; + + rel_hdr = _bfd_elf_single_rel_hdr (input_section->output_section); + rel_hdr->sh_size -= rel_hdr->sh_entsize * deleted; + rel_hdr = _bfd_elf_single_rel_hdr (input_section); + rel_hdr->sh_size -= rel_hdr->sh_entsize * deleted; + input_section->reloc_count -= deleted; + } + return true; } @@ -2731,7 +2743,7 @@ elf_arc_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED, interpreter. */ if (bfd_link_executable (info) && !info->nointerp) { - s = bfd_get_section_by_name (dynobj, ".interp"); + s = htab->interp; BFD_ASSERT (s != NULL); s->size = sizeof (ELF_DYNAMIC_INTERPRETER); s->contents = (unsigned char *) ELF_DYNAMIC_INTERPRETER; |