aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2007-08-31 00:39:53 +0000
committerAlan Modra <amodra@gmail.com>2007-08-31 00:39:53 +0000
commite94425729cbce686e83117b6b008dd7860199910 (patch)
tree315c2dfe52b75acca90fb86b58dc9e9fed269282
parent848051c9fe70a692e2372c5b2addaa98fc92a9dd (diff)
downloadgdb-e94425729cbce686e83117b6b008dd7860199910.zip
gdb-e94425729cbce686e83117b6b008dd7860199910.tar.gz
gdb-e94425729cbce686e83117b6b008dd7860199910.tar.bz2
* ldlang.c (lang_record_phdrs): Give a fatal error if no sections
assigned to phdrs. Avoid multiple forward scans for a section with phdr assignment.
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/ldlang.c13
2 files changed, 14 insertions, 5 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index a2bee5f..8a94b2e 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-31 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (lang_record_phdrs): Give a fatal error if no sections
+ assigned to phdrs. Avoid multiple forward scans for a section
+ with phdr assignment.
+
2007-08-28 Mark Shinwell <shinwell@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 1fcb991..f247a17 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -6263,9 +6263,7 @@ lang_record_phdrs (void)
|| (os->bfd_section->flags & SEC_ALLOC) == 0)
continue;
- if (last)
- pl = last;
- else
+ if (last == NULL)
{
lang_output_section_statement_type * tmp_os;
@@ -6279,9 +6277,14 @@ lang_record_phdrs (void)
http://sourceware.org/ml/binutils/2007-02/msg00291.html */
for (tmp_os = os; tmp_os; tmp_os = tmp_os->next)
if (tmp_os->phdrs)
- break;
- pl = tmp_os->phdrs;
+ {
+ last = tmp_os->phdrs;
+ break;
+ }
+ if (last == NULL)
+ einfo (_("%F%P: no sections assigned to phdrs\n"));
}
+ pl = last;
}
if (os->bfd_section == NULL)