diff options
-rw-r--r-- | ld/ChangeLog | 4 | ||||
-rw-r--r-- | ld/ldlang.c | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 09204f2..f170102 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2002-06-10 Richard Sandiford <rsandifo@redhat.com> + + * ldlang.c (lang_size_sections_1): Skip removed output sections. + 2002-06-08 Alan Modra <amodra@bigpond.net.au> * ldexp.c: Replace CONST with const. diff --git a/ld/ldlang.c b/ld/ldlang.c index 6346a74..abe3834 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -2907,6 +2907,14 @@ lang_size_sections_1 (s, output_section_statement, prev, fill, dot, relax) /* This section was never actually created. */ break; + /* The section might have been removed after its statement was + added. For example, ldemul_before_allocation can remove + dynamic sections if they turn out not to be needed. */ + if (!link_info.relocateable + && (bfd_get_section_flags (output_bfd, os->bfd_section) + & SEC_EXCLUDE) != 0) + break; + /* If this is a COFF shared library section, use the size and address from the input section. FIXME: This is COFF specific; it would be cleaner if there were some other way |