From 7f7888218f38ff55bb5a4879e2cc4bd3bdaf7f51 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 12 Jul 2000 16:45:46 +0000 Subject: [PATCH] Add padding to the last section when aligning it increases its size. --- gas/ChangeLog | 5 +++++ 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 + + * 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 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 -- 2.7.4