From 9d87af5697d373e07bd70190aff7f107e4a2665d Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 15 Apr 1994 18:37:05 +0000 Subject: [PATCH] * ldlang.c (lang_size_sections): When relaxing, adjust the position of a padding statement, and adjust dot accordingly. --- ld/ChangeLog | 5 +++++ ld/ldlang.c | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) 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; -- 2.7.4