* coffcode.h (coff_compute_section_file_positions): make it pad
authorSteve Chamberlain <steve@cygnus>
Mon, 21 Oct 1991 23:58:49 +0000 (23:58 +0000)
committerSteve Chamberlain <steve@cygnus>
Mon, 21 Oct 1991 23:58:49 +0000 (23:58 +0000)
section size out if there are alignment restrictions so that the
image will be ok on a system where section positions are worked
out by accumulating sizes rather than from the section headers.

bfd/ChangeLog
bfd/coffcode.h

index d29d44937b6c56a2dae334d1b6e9d9c6d128fcdf..cb2322d355fbb3d599d2583350df9c994c2935ce 100644 (file)
@@ -1,5 +1,9 @@
 Mon Oct 21 09:34:11 1991  Steve Chamberlain  (steve at rtl.cygnus.com)
 
+       * coffcode.h (coff_compute_section_file_positions): make it pad
+       section size out if there are alignment restrictions so that the
+       image will be ok on a system where section positions are worked
+       out by accumulating sizes rather than from the section headers.
        * targets.c (proto write_armap). Changed orl_count to unsigned.
        * opncls.c (bfd_close_all_done). Added so that generative
        programs like gas can close a bfd without causing bfd confusion.
index b359f51cfe1e090c1c6d9f1041926b27537a4569..bfa003649e25b968eff51691828ae57972cd308b 100644 (file)
@@ -2011,7 +2011,13 @@ DEFUN(coff_compute_section_file_positions,(abfd),
        do this (FIXME) so we can stay in sync with Intel.  960
        doesn't yet page from files... */
 #ifndef I960
+   {   
+     /* Whatever the alignment, make sure that the sections are big
+       enough to cover the gap */
+    bfd_vma old_sofar= sofar;
     sofar = ALIGN(sofar, 1 << current->alignment_power);
+    current->size += sofar - old_sofar;
+  }
 #endif
     /* FIXME, in demand paged files, the low order bits of the file
        offset must match the low order bits of the virtual address.