aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2001-10-31 01:12:26 +0000
committerAlan Modra <amodra@gmail.com>2001-10-31 01:12:26 +0000
commit6e814ff88112f40fe06e09ef984caaf59b48884f (patch)
treeb568dbd4bd51c6465158207d7b6d67d155122e09 /ld
parent2d98304df3e9672b9386b4a6e7edd324973da61c (diff)
downloadfsf-binutils-gdb-6e814ff88112f40fe06e09ef984caaf59b48884f.zip
fsf-binutils-gdb-6e814ff88112f40fe06e09ef984caaf59b48884f.tar.gz
fsf-binutils-gdb-6e814ff88112f40fe06e09ef984caaf59b48884f.tar.bz2
* ldlang.c (lang_size_sections): Keep a valid output_offset field
for padding statements.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog9
-rw-r--r--ld/ldlang.c8
2 files changed, 15 insertions, 2 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 4fe4a54..e1dc132 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2001-10-31 David Heine <dlheine@tensilica.com>
+
+ * ldlang.c (lang_size_sections): Keep a valid output_offset field
+ for padding statements.
+
2001-10-30 Hans-Peter Nilsson <hp@bitrange.com>
* configure.tgt (mmix-*-*): New target.
@@ -8,7 +13,7 @@
scripttempl/mmo.sc: New files.
* gen-doc.texi: @set MMIX.
* ld.texinfo: Ditto.
- [MMIX] Add MMIX node.
+ [MMIX] Add MMIX node.
* Makefile.in: Regenerate.
2001-10-29 Kazu Hirata <kazu@hxi.com>
@@ -48,7 +53,7 @@
* pe-dll.c (autofilter_objectlist): Add startup objects
for profiling.
(auto-export): Constify char * p.
- Extract file basename and use strcmp rather than ststr
+ Extract file basename and use strcmp rather than ststr
for object lookup.
2001-10-18 Chris Demetriou <cgd@broadcom.com>
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 014c791..40f109a 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -3156,6 +3156,14 @@ lang_size_sections (s, output_section_statement, prev, fill, dot, relax)
padding to shrink. If padding is needed on this pass, it
will be added back in. */
s->padding_statement.size = 0;
+
+ /* Make sure output_offset is valid. If relaxation shrinks
+ the section and this pad isn't needed, it's possible to
+ have output_offset larger than the final size of the
+ section. bfd_set_section_contents will complain even for
+ a pad size of zero. */
+ s->padding_statement.output_offset
+ = dot - output_section_statement->bfd_section->vma;
break;
case lang_group_statement_enum: