* ldlang.c (lang_size_sections): When relaxing, adjust the
authorIan Lance Taylor <ian@airs.com>
Fri, 15 Apr 1994 18:37:05 +0000 (18:37 +0000)
committerIan Lance Taylor <ian@airs.com>
Fri, 15 Apr 1994 18:37:05 +0000 (18:37 +0000)
position of a padding statement, and adjust dot accordingly.

ld/ChangeLog
ld/ldlang.c

index cbb3287..90b1377 100644 (file)
@@ -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
index e49bf95..a7ae973 100644 (file)
@@ -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;