Subject: [PATCH] catch "new" gcc 3.4.0 sections

From: "Bradley D. LaRonde" <[email-masked]>
Date: Tue, 13 Apr 2004 15:20:48 -0400

Building with gcc 3.4.0 emits a couple new sections, .rodata.cst4 and
.rodata.str1.4, which the current ld.script doesn't contemplate.  Here is a
patch to catch them (and maybe some other latent ones).

Anyone know why or when these sections are emitted?

Regards,
Brad

diff -u -r1.1.1.1 ld.script.in
--- arch/mips/ld.script.in      10 Nov 2003 21:06:52 -0000      1.1.1.1
+++ arch/mips/ld.script.in      13 Apr 2004 19:18:25 -0000
@@ -11,6 +11,11 @@
     *(.text)
     *(.rodata)
     *(.rodata1)
+    *(.rodata.str1.1);
+    *(.rodata.str1.4);
+    *(.rodata.str1.32);
+    *(.rodata.cst4);
+    *(.rodata.cst8);
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
   } =0

---

From: Thiemo Seufer <[email-masked]>
Date: Tue, 13 Apr 2004 21:31:58 +0200

> Anyone know why or when these sections are emitted?

I'd guess to keep differently aligned strings in separate sections,
as a preliminary for improved string merging.

> +++ arch/mips/ld.script.in      13 Apr 2004 19:18:25 -0000

Why not just *(.rodata*); ?

Thiemo

---

From: "Bradley D. LaRonde" <[email-masked]>
Date: Tue, 13 Apr 2004 15:43:39 -0400

----- Original Message ----- 
From: "Thiemo Seufer" <[email-masked]>
To: <[email-masked]>
Sent: Tuesday, April 13, 2004 3:31 PM
Subject: Re: [PATCH] catch "new" gcc 3.4.0 sections

> Why not just *(.rodata*); ?

I dunno.  There is already a tradition with .rodata and .rodata1 being
listed separately.  Maybe to spy on future gcc behavior?

Regards,
Brad