diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/obj-coff.c | 16 |
2 files changed, 19 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index c7bf35b..87212d9 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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. diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c index 018f32b..41fc595 100644 --- a/gas/config/obj-coff.c +++ b/gas/config/obj-coff.c @@ -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 |