From aea274d3a7cefa3f3a858ece7444ec49f9a108f0 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 8 Oct 2008 08:30:27 +0000 Subject: [PATCH] * 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. --- bfd/ChangeLog | 6 ++++++ bfd/elf.c | 23 ++++++++--------------- 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 + + * 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 * 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; -- 2.7.4