diff options
author | Alan Modra <amodra@gmail.com> | 2007-08-31 00:39:53 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2007-08-31 00:39:53 +0000 |
commit | e94425729cbce686e83117b6b008dd7860199910 (patch) | |
tree | 315c2dfe52b75acca90fb86b58dc9e9fed269282 | |
parent | 848051c9fe70a692e2372c5b2addaa98fc92a9dd (diff) | |
download | gdb-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/ChangeLog | 6 | ||||
-rw-r--r-- | ld/ldlang.c | 13 |
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) |