From: Alan Modra Date: Fri, 16 Feb 2018 22:51:17 +0000 (+1030) Subject: Ignore degenerate PT_LOAD segments X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=325ba6fb34be799c885fad9287d883e86b835c84;p=binutils-gdb.git Ignore degenerate PT_LOAD segments Fixes a failure triggered by -z separate-code. p_memsz is tested rather than p_filesz for objcopy --only-keep-debug where p_filesz is set to zero. PR 22845 * elf.c (assign_file_positions_for_non_load_sections): Ignore degenerate zero size PT_LOAD segments when finding one overlapping the PT_GNU_RELRO segment. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c314485b423..946c6bcd7b6 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2018-02-17 Alan Modra + + PR 22845 + * elf.c (assign_file_positions_for_non_load_sections): Ignore + degenerate zero size PT_LOAD segments when finding one overlapping + the PT_GNU_RELRO segment. + 2018-02-16 Alan Modra * libbfd.c (_bfd_bool_bfd_false_error): Rename from bfd_false. diff --git a/bfd/elf.c b/bfd/elf.c index 397fa62178f..b069b592652 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -5897,6 +5897,7 @@ assign_file_positions_for_non_load_sections (bfd *abfd, lm = lm->next, lp++) { if (lp->p_type == PT_LOAD + && lp->p_memsz != 0 && lm->count != 0 && lm->sections[lm->count - 1]->vma >= start && lm->sections[0]->vma < end)