* write.c (subsegs_finish): For SEC_MERGE sections pad last fragment

to entsize.
This commit is contained in:
Jakub Jelinek 2002-11-28 14:13:51 +00:00
parent 947216bf8f
commit 381a1ab30c
2 changed files with 24 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2002-11-28 Jakub Jelinek <jakub@redhat.com>
* write.c (subsegs_finish): For SEC_MERGE sections pad last fragment
to entsize.
2002-11-26 DJ Delorie <dj@redhat.com.
* dwarf2dbg.c (scale_addr_delta): New.

View File

@ -1409,7 +1409,25 @@ subsegs_finish ()
any alignment is meaningless, and, moreover, will look weird
if we are generating a listing. */
if (!had_errors ())
alignment = SUB_SEGMENT_ALIGN (now_seg, frchainP);
{
alignment = SUB_SEGMENT_ALIGN (now_seg, frchainP);
#ifdef BFD_ASSEMBLER
if ((bfd_get_section_flags (now_seg->owner, now_seg) & SEC_MERGE)
&& now_seg->entsize)
{
unsigned int entsize = now_seg->entsize;
int entalign = 0;
while ((entsize & 1) == 0)
{
++entalign;
entsize >>= 1;
}
if (entalign > alignment)
alignment = entalign;
}
#endif
}
if (subseg_text_p (now_seg))
frag_align_code (alignment, 0);