aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/elf.c23
2 files changed, 14 insertions, 15 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 031c67d..d0b27f5 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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.
diff --git a/bfd/elf.c b/bfd/elf.c
index e9d0af3..ea44f72 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -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;