summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch34
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);