From: Nick Clifton Date: Wed, 12 Jul 2000 16:45:46 +0000 (+0000) Subject: Add padding to the last section when aligning it increases its size. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7f7888218f38ff55bb5a4879e2cc4bd3bdaf7f51;p=binutils-gdb.git Add padding to the last section when aligning it increases its size. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index c7bf35b1409..87212d996ea 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2000-07-12 Mark Elbrecht + + * config/obj-coff.c (coff_frob_section): Add padding to the last + section when aligning it increases its size. + 2000-07-11 Kazu Hirata * config/tc-tic54x.c: Fix formatting. diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c index 018f32b5607..41fc595eaf4 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