diff options
author | Jakub Jelinek <jakub@redhat.com> | 2002-11-28 14:13:51 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2002-11-28 14:13:51 +0000 |
commit | 381a1ab30c060addb84bcd45ae1fbe1abd8c8f4d (patch) | |
tree | c7e39f8782ff6425aa0c2506fd8508cbed18ef11 | |
parent | 947216bf8f343c1440e85633b5bf2f2394f87bc4 (diff) | |
download | gdb-381a1ab30c060addb84bcd45ae1fbe1abd8c8f4d.zip gdb-381a1ab30c060addb84bcd45ae1fbe1abd8c8f4d.tar.gz gdb-381a1ab30c060addb84bcd45ae1fbe1abd8c8f4d.tar.bz2 |
* write.c (subsegs_finish): For SEC_MERGE sections pad last fragment
to entsize.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/write.c | 20 |
2 files changed, 24 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index cdf5c9e..588c39d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -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. diff --git a/gas/write.c b/gas/write.c index b1c27d7..40c18f8 100644 --- a/gas/write.c +++ b/gas/write.c @@ -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); |