* elf.c (assign_file_positions_for_load_sections): When checking

a segment for contents, don't assume that a non-TLS nobits section
	must only be followed by nobits sections.
This commit is contained in:
Alan Modra 2008-10-08 08:30:27 +00:00
parent a90e4d49cb
commit aea274d3a7
2 changed files with 14 additions and 15 deletions

View File

@ -1,3 +1,9 @@
2008-10-08 Alan Modra <amodra@bigpond.net.au>
* elf.c (assign_file_positions_for_load_sections): When checking
a segment for contents, don't assume that a non-TLS nobits section
must only be followed by nobits sections.
2008-10-04 Hans-Peter Nilsson <hp@axis.com>
* elf32-cris.c (TLSHOWTO32, TLSHOWTO16): New macros.

View File

@ -4288,21 +4288,14 @@ assign_file_positions_for_load_sections (bfd *abfd,
elf_section_type (m->sections[i]) = SHT_NOBITS;
/* Find out whether this segment contains any loadable
sections. If the first section isn't loadable, the same
holds for any other sections. */
i = 0;
while (elf_section_type (m->sections[i]) == SHT_NOBITS)
{
/* If a segment starts with .tbss, we need to look
at the next section to decide whether the segment
has any loadable sections. */
if ((elf_section_flags (m->sections[i]) & SHF_TLS) == 0
|| ++i >= m->count)
{
no_contents = TRUE;
break;
}
}
sections. */
no_contents = TRUE;
for (i = 0; i < m->count; i++)
if (elf_section_type (m->sections[i]) != SHT_NOBITS)
{
no_contents = FALSE;
break;
}
off_adjust = vma_page_aligned_bias (m->sections[0]->vma, off, align);
off += off_adjust;