diff -Nrup a/bfd/elf.c b/bfd/elf.c --- a/bfd/elf.c 2015-05-26 16:15:38.169585374 -0600 +++ b/bfd/elf.c 2015-05-26 16:16:07.571947059 -0600 @@ -3912,6 +3912,11 @@ _bfd_elf_map_sections_to_segments (bfd * last_size = 0; phdr_index = 0; maxpagesize = bed->maxpagesize; + /* PR 17512: file: c8455299. + Avoid divide-by-zero errors later on. + FIXME: Should we abort if the maxpagesize is zero ? */ + if (maxpagesize == 0) + maxpagesize = 1; writable = FALSE; dynsec = bfd_get_section_by_name (abfd, ".dynamic"); if (dynsec != NULL