aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1994-04-15 18:37:05 +0000
committerIan Lance Taylor <ian@airs.com>1994-04-15 18:37:05 +0000
commit9d87af5697d373e07bd70190aff7f107e4a2665d (patch)
tree69471c091756d76c6e102e6ff6093efa0525d70b /ld
parentef79dba3c39b6edcf4d1e343457bfd29ec868069 (diff)
downloadgdb-9d87af5697d373e07bd70190aff7f107e4a2665d.zip
gdb-9d87af5697d373e07bd70190aff7f107e4a2665d.tar.gz
gdb-9d87af5697d373e07bd70190aff7f107e4a2665d.tar.bz2
* ldlang.c (lang_size_sections): When relaxing, adjust the
position of a padding statement, and adjust dot accordingly.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/ldlang.c14
2 files changed, 18 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index cbb3287..90b1377 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+Fri Apr 15 14:35:42 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
+
+ * ldlang.c (lang_size_sections): When relaxing, adjust the
+ position of a padding statement, and adjust dot accordingly.
+
Mon Apr 11 12:32:57 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* scripttempl/i386coff.sc: If relocating, don't put .init and
diff --git a/ld/ldlang.c b/ld/ldlang.c
index e49bf95..a7ae973 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -1873,11 +1873,23 @@ lang_size_sections (s, output_section_statement, prev, fill, dot, relax)
}
break;
+
+ case lang_padding_statement_enum:
+ /* If we are relaxing, and this is not the first pass, some
+ padding statements may have been inserted during previous
+ passes. We may have to move the padding statement to a new
+ location if dot has a different value at this point in this
+ pass than it did at this point in the previous pass. */
+ s->padding_statement.output_offset =
+ dot - output_section_statement->bfd_section->vma;
+ dot += s->padding_statement.size;
+ break;
+
default:
FAIL ();
break;
+
/* This can only get here when relaxing is turned on */
- case lang_padding_statement_enum:
case lang_address_statement_enum:
break;