summaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2002-06-10 16:12:04 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2002-06-10 16:12:04 +0000
commite052cfbe6898f57a9f63055c9e02b116ce69b41b (patch)
treeb5f44acce4346cdf931790054ff9fc551e8a7b91 /ld
parent0ebaf18527d124cb0cde59192c5fd7c352b22cd4 (diff)
downloadbinutils-e052cfbe6898f57a9f63055c9e02b116ce69b41b.tar.gz
binutils-e052cfbe6898f57a9f63055c9e02b116ce69b41b.tar.bz2
binutils-e052cfbe6898f57a9f63055c9e02b116ce69b41b.zip
* ldlang.c (lang_size_sections_1): Skip removed output sections.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog4
-rw-r--r--ld/ldlang.c8
2 files changed, 12 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 09204f27ee4..f1701025b48 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 6346a747b13..abe38345fcc 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