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.
This commit is contained in:
parent
c2596c4a72
commit
325ba6fb34
|
@ -1,3 +1,10 @@
|
||||||
|
2018-02-17 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
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 <amodra@gmail.com>
|
2018-02-16 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* libbfd.c (_bfd_bool_bfd_false_error): Rename from bfd_false.
|
* libbfd.c (_bfd_bool_bfd_false_error): Rename from bfd_false.
|
||||||
|
|
|
@ -5897,6 +5897,7 @@ assign_file_positions_for_non_load_sections (bfd *abfd,
|
||||||
lm = lm->next, lp++)
|
lm = lm->next, lp++)
|
||||||
{
|
{
|
||||||
if (lp->p_type == PT_LOAD
|
if (lp->p_type == PT_LOAD
|
||||||
|
&& lp->p_memsz != 0
|
||||||
&& lm->count != 0
|
&& lm->count != 0
|
||||||
&& lm->sections[lm->count - 1]->vma >= start
|
&& lm->sections[lm->count - 1]->vma >= start
|
||||||
&& lm->sections[0]->vma < end)
|
&& lm->sections[0]->vma < end)
|
||||||
|
|
Loading…
Reference in New Issue