Add padding to the last section when aligning it increases its size.
authorNick Clifton <nickc@redhat.com>
Wed, 12 Jul 2000 16:45:46 +0000 (16:45 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 12 Jul 2000 16:45:46 +0000 (16:45 +0000)
gas/ChangeLog
gas/config/obj-coff.c

index c7bf35b14090dad617ddf0190d9e10020c6eff94..87212d996eafa0b7ea82f6529c01ad1d2f891b57 100644 (file)
@@ -1,3 +1,8 @@
+2000-07-12  Mark Elbrecht  <snowball3@bigfoot.com>
+
+       * config/obj-coff.c (coff_frob_section): Add padding to the last
+         section when aligning it increases its size.
+
 2000-07-11  Kazu Hirata  <kazu@hxi.com>
 
        * config/tc-tic54x.c: Fix formatting.
index 018f32b5607ed35801bd56103a4da34e3028945b..41fc595eaf4a8d4cb6adc613043a5185a2cf0844 100644 (file)
@@ -1489,8 +1489,20 @@ coff_frob_section (sec)
 #if !defined(TICOFF)
   if (size & mask)
     {
-      size = (size + mask) & ~mask;
-      bfd_set_section_size (stdoutput, sec, size);
+      bfd_vma new_size;
+      fragS *last;
+      
+      new_size = (size + mask) & ~mask;
+      bfd_set_section_size (stdoutput, sec, new_size);
+
+      /* If the size had to be rounded up, add some padding in
+         the last non-empty frag.  */
+      fragp = seg_info (sec)->frchainP->frch_root;
+      last = seg_info (sec)->frchainP->frch_last;
+      while (fragp->fr_next != last)
+        fragp = fragp->fr_next;
+      last->fr_address = size;
+      fragp->fr_offset += new_size - size;
     }
 #endif