diff options
Diffstat (limited to 'sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-rodata-cst.patch')
-rw-r--r-- | sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-rodata-cst.patch | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-rodata-cst.patch b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-rodata-cst.patch new file mode 100644 index 000000000000..e3931a2b19e7 --- /dev/null +++ b/sys-devel/binutils/files/2.13/binutils-2.13.90.0.16-rodata-cst.patch @@ -0,0 +1,34 @@ +2002-11-24 Jakub Jelinek <jakub@redhat.com> + + * write.c (subsegs_finish): For SEC_MERGE sections pad last fragment + to entsize. + +--- gas/write.c.jj 2002-11-21 15:58:39.000000000 +0100 ++++ gas/write.c 2002-11-24 23:54:58.000000000 +0100 +@@ -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); |