aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2006-09-15 09:48:58 +0000
committerNick Clifton <nickc@redhat.com>2006-09-15 09:48:58 +0000
commit99643f697ed692215488dd72f36eb3d82fd2c2ac (patch)
treefe5aa43caf03ccf95c998a504c4b554c6533240d
parent7d3d6bd5c1bb432075af20a5838f192728f7c3ff (diff)
downloadbinutils-99643f697ed692215488dd72f36eb3d82fd2c2ac.zip
binutils-99643f697ed692215488dd72f36eb3d82fd2c2ac.tar.gz
binutils-99643f697ed692215488dd72f36eb3d82fd2c2ac.tar.bz2
PR ld/3107
* ldlang.c (lang_size_sections_1): Do not abort when encountering a non-empty section that is ignored. Instead produce a warning message.
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/ldlang.c13
2 files changed, 19 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 8151912..dab4692 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2006-09-15 Nick Clifton <nickc@redhat.com>
+
+ PR ld/3107
+ * ldlang.c (lang_size_sections_1): Do not abort when encountering
+ a non-empty section that is ignored. Instead produce a warning
+ message.
+
2006-09-08 H.J. Lu <hongjiu.lu@intel.com>
* ld.texinfo: Document --dynamic-list-cpp-typeinfo.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index bd9fd89..8b6cbd2 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -4367,7 +4367,18 @@ lang_size_sections_1
os->processed_vma = TRUE;
if (bfd_is_abs_section (os->bfd_section) || os->ignored)
- ASSERT (os->bfd_section->size == 0);
+ {
+ if (os->bfd_section->size > 0)
+ {
+ /* PR ld/3107: Do not abort when a buggy linker script
+ causes a non-empty section to be discarded. */
+ if (bfd_is_abs_section (os->bfd_section))
+ einfo (_("%P%X: internal error: attempting to take the size of the non-section *ABS*\n"));
+ else
+ einfo (_("%P: warning: discarding non-empty, well known section %A\n"),
+ os->bfd_section);
+ }
+ }
else
{
dot = os->bfd_section->vma;