public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@redhat.com>
To: torvalds@transmeta.com
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH] Fix kernel linker scripts
Date: Mon, 2 Jul 2001 11:53:51 -0400	[thread overview]
Message-ID: <20010702115351.B11623@devserv.devel.redhat.com> (raw)

Hi!

Apparently all kernel scripts only have .rodata and not also .rodata.* input
sections in it.
This has been no problem so far, but since binutils and gcc support SHF_MERGE
sections (so that string constant (and other constant too) duplicates can be
removed at link time) the compiler creates sections like .rodata.str1.1
and they really should be merged into the rodata output section
(or whatever else) during linking (the default binutils linker scripts are
doing this for ages).
On some architectures it creates no problems, just one more section in
section table (like i386), on others it causes the kernel not to boot at all
(e.g. on ia64).
Please apply.

--- linux/arch/alpha/boot/bootloader.lds.jj	Sun Sep  6 13:34:33 1998
+++ linux/arch/alpha/boot/bootloader.lds	Tue Jun 26 11:05:14 2001
@@ -6,7 +6,7 @@ SECTIONS
   .text : { *(.text) }
   _etext = .;
   PROVIDE (etext = .);
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .data : { *(.data) CONSTRUCTORS }
   .got : { *(.got) }
   .sdata : { *(.sdata) }
--- linux/arch/alpha/vmlinux.lds.in.jj	Mon Jun 26 14:26:56 2000
+++ linux/arch/alpha/vmlinux.lds.in	Tue Jun 26 11:05:24 2001
@@ -53,7 +53,7 @@ SECTIONS
   /* Global data */
   _data = .;
   .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .data : { *(.data) CONSTRUCTORS }
   .got : { *(.got) }
   .sdata : { *(.sdata) }
--- linux/arch/arm/boot/compressed/vmlinux.lds.in.jj	Thu Feb  8 19:32:44 2001
+++ linux/arch/arm/boot/compressed/vmlinux.lds.in	Tue Jun 26 11:05:35 2001
@@ -24,6 +24,7 @@ SECTIONS
     *(.fixup)
     *(.gnu.warning)
     *(.rodata)
+    *(.rodata.*)
     *(.glue_7)
     *(.glue_7t)
     input_data = .;
--- linux/arch/arm/vmlinux-armo.lds.in.jj	Thu Feb  8 19:32:44 2001
+++ linux/arch/arm/vmlinux-armo.lds.in	Tue Jun 26 11:05:49 2001
@@ -47,6 +47,7 @@ SECTIONS
 			*(.gnu.warning)
 			*(.text.lock)	/* out-of-line lock text */
 			*(.rodata)
+			*(.rodata.*)
 			*(.glue_7)
 			*(.glue_7t)
 			*(.kstrtab)
--- linux/arch/arm/vmlinux-armv.lds.in.jj	Wed May 16 18:25:16 2001
+++ linux/arch/arm/vmlinux-armv.lds.in	Tue Jun 26 11:05:57 2001
@@ -42,6 +42,7 @@ SECTIONS
 			*(.gnu.warning)
 			*(.text.lock)	/* out-of-line lock text */
 			*(.rodata)
+			*(.rodata.*)
 			*(.glue_7)
 			*(.glue_7t)
 		*(.got)			/* Global offset table		*/
--- linux/arch/cris/boot/compressed/decompress.ld.jj	Fri Apr  6 13:42:55 2001
+++ linux/arch/cris/boot/compressed/decompress.ld	Tue Jun 26 11:06:04 2001
@@ -13,6 +13,7 @@ SECTIONS
 		_stext = . ;
 		*(.text)
 		*(.rodata)
+		*(.rodata.*)
 		_etext = . ;
 	} > dram
 	.data :
--- linux/arch/cris/cris.ld.jj	Tue May  1 19:04:56 2001
+++ linux/arch/cris/cris.ld	Tue Jun 26 11:06:23 2001
@@ -24,7 +24,7 @@ SECTIONS
 		*(.fixup)
 		*(.text.__*)
 		*(.rodata)
-		*(.rodata.__*)
+		*(.rodata.*)
 	}
 
 	. = ALIGN(4);                /* Exception table */
--- linux/arch/i386/vmlinux.lds.jj	Wed Jan  3 23:45:26 2001
+++ linux/arch/i386/vmlinux.lds	Tue Jun 26 11:06:33 2001
@@ -17,7 +17,7 @@ SECTIONS
 
   _etext = .;			/* End of text section */
 
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .kstrtab : { *(.kstrtab) }
 
   . = ALIGN(16);		/* Exception table */
--- linux/arch/ia64/boot/bootloader.lds.jj	Sun Feb  6 21:42:40 2000
+++ linux/arch/ia64/boot/bootloader.lds	Tue Jun 26 11:06:42 2001
@@ -12,7 +12,7 @@ SECTIONS
 
   /* Global data */
   _data = .;
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .data    : { *(.data) *(.gnu.linkonce.d*) CONSTRUCTORS }
   __gp = ALIGN (8) + 0x200000;
   .got           : { *(.got.plt) *(.got) }
--- linux/arch/ia64/sn/fprom/fprom.lds.jj	Thu Jan  4 16:00:15 2001
+++ linux/arch/ia64/sn/fprom/fprom.lds	Tue Jun 26 11:07:02 2001
@@ -24,7 +24,7 @@ SECTIONS
   _data = .;
 
   .rodata : AT(ADDR(.rodata) - 0x0000000000000000 )
-	{ *(.rodata) }
+	{ *(.rodata) *(.rodata.*) }
   .opd : AT(ADDR(.opd) - 0x0000000000000000 )
 	{ *(.opd) }
   .data : AT(ADDR(.data) - 0x0000000000000000 )
--- linux/arch/ia64/vmlinux.lds.S.jj	Thu Apr  5 15:51:47 2001
+++ linux/arch/ia64/vmlinux.lds.S	Tue Jun 26 11:07:15 2001
@@ -83,7 +83,7 @@ SECTIONS
   ia64_unw_end = .;
 
   .rodata : AT(ADDR(.rodata) - PAGE_OFFSET)
-	{ *(.rodata) }
+	{ *(.rodata) *(.rodata.*) }
   .kstrtab : AT(ADDR(.kstrtab) - PAGE_OFFSET)
 	{ *(.kstrtab) }
   .opd : AT(ADDR(.opd) - PAGE_OFFSET)
--- linux/arch/m68k/vmlinux.lds.jj	Sat Sep  4 16:06:41 1999
+++ linux/arch/m68k/vmlinux.lds	Tue Jun 26 11:07:26 2001
@@ -12,7 +12,7 @@ SECTIONS
 	*(.text.lock)		/* out-of-line lock text */
 	*(.gnu.warning)
 	} = 0x4e75
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .kstrtab : { *(.kstrtab) }
 
   . = ALIGN(16);		/* Exception table */
--- linux/arch/m68k/vmlinux-sun3.lds.jj	Sat Sep  4 16:06:41 1999
+++ linux/arch/m68k/vmlinux-sun3.lds	Tue Jun 26 11:07:33 2001
@@ -20,6 +20,7 @@ SECTIONS
 
   .data : {			/* Data */
 	*(.rodata)
+	*(.rodata.*)
 	*(.data)
 	CONSTRUCTORS
   	. = ALIGN(16);		/* Exception table */
--- linux/arch/mips/baget/ld.script.balo.jj	Fri Jun 25 20:40:12 1999
+++ linux/arch/mips/baget/ld.script.balo	Tue Jun 26 11:08:11 2001
@@ -31,6 +31,7 @@ SECTIONS
     _ftext = . ;
     *(.text)
     *(.rodata)
+    *(.rodata.*)
     *(.rodata1)
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
--- linux/arch/mips/dec/boot/ld.ecoff.jj	Fri Jun 25 20:40:12 1999
+++ linux/arch/mips/dec/boot/ld.ecoff	Tue Jun 26 11:08:24 2001
@@ -13,7 +13,7 @@ SECTIONS
   }
   .rdata :
   {
-    *(.rodata .rdata)
+    *(.rodata .rodata.* .rdata)
   }
   .data :
   {
--- linux/arch/mips/ld.script.big.jj	Wed Jul 12 18:14:41 2000
+++ linux/arch/mips/ld.script.big	Tue Jun 26 11:07:44 2001
@@ -11,6 +11,7 @@ SECTIONS
     _ftext = . ;
     *(.text)
     *(.rodata)
+    *(.rodata.*)
     *(.rodata1)
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
--- linux/arch/mips/ld.script.little.jj	Wed Jul 12 18:14:41 2000
+++ linux/arch/mips/ld.script.little	Tue Jun 26 11:07:54 2001
@@ -11,6 +11,7 @@ SECTIONS
     _ftext = . ;
     *(.text)
     *(.rodata)
+    *(.rodata.*)
     *(.rodata1)
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
--- linux/arch/mips64/ld.script.elf64.jj	Wed Nov 29 00:42:04 2000
+++ linux/arch/mips64/ld.script.elf64	Tue Jun 26 11:08:35 2001
@@ -18,6 +18,7 @@ SECTIONS
   .text : {
     *(.text)
     *(.rodata)
+    *(.rodata.*)
     *(.rodata1)
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
--- linux/arch/mips64/ld.script.elf32.S.jj	Wed Nov 29 00:42:04 2000
+++ linux/arch/mips64/ld.script.elf32.S	Tue Jun 26 11:08:43 2001
@@ -8,6 +8,7 @@ SECTIONS
   {
     *(.text)
     *(.rodata)
+    *(.rodata.*)
     *(.rodata1)
     /* .gnu.warning sections are handled specially by elf32.em.  */
     *(.gnu.warning)
--- linux/arch/parisc/vmlinux.lds.jj	Tue Dec  5 15:29:39 2000
+++ linux/arch/parisc/vmlinux.lds	Tue Jun 26 11:08:54 2001
@@ -22,7 +22,7 @@ SECTIONS
 	} = 0
 
   . = ALIGN(16);
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .kstrtab : { *(.kstrtab) }
 
   _etext = .;			/* End of text section */
--- linux/arch/ppc/boot/pmac/ld.script.jj	Thu May 24 18:02:07 2001
+++ linux/arch/ppc/boot/pmac/ld.script	Tue Jun 26 11:09:04 2001
@@ -32,6 +32,7 @@ SECTIONS
   {
     *(.text)
     *(.rodata)
+    *(.rodata.*)
     *(.rodata1)
     *(.got1)
   }
--- linux/arch/ppc/boot/tree/ld.script.jj	Thu May 24 18:02:07 2001
+++ linux/arch/ppc/boot/tree/ld.script	Tue Jun 26 11:09:17 2001
@@ -32,6 +32,7 @@ SECTIONS
   {
     *(.text)
     *(.rodata)
+    *(.rodata.*)
     *(.rodata1)
     *(.got1)
   }
--- linux/arch/ppc/vmlinux.lds.jj	Fri Aug  4 14:23:37 2000
+++ linux/arch/ppc/vmlinux.lds	Tue Jun 26 11:09:30 2001
@@ -39,6 +39,7 @@ SECTIONS
   .rodata    :
   {
     *(.rodata)
+    *(.rodata.*)
     *(.rodata1)
   }
   .kstrtab   : { *(.kstrtab) }
--- linux/arch/s390/vmlinux.lds.jj	Tue Feb 13 17:13:44 2001
+++ linux/arch/s390/vmlinux.lds	Tue Jun 26 11:09:39 2001
@@ -14,7 +14,7 @@ SECTIONS
 	*(.gnu.warning)
 	} = 0x0700
   .text.lock : { *(.text.lock) }	/* out-of-line lock text */
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .kstrtab : { *(.kstrtab) }
 
   . = ALIGN(16);		/* Exception table */
--- linux/arch/s390x/vmlinux.lds.jj	Wed Apr 11 22:02:29 2001
+++ linux/arch/s390x/vmlinux.lds	Tue Jun 26 11:09:46 2001
@@ -14,7 +14,7 @@ SECTIONS
 	*(.gnu.warning)
 	} = 0x0700
   .text.lock : { *(.text.lock) }	/* out-of-line lock text */
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .kstrtab : { *(.kstrtab) }
 
   . = ALIGN(16);		/* Exception table */
--- linux/arch/sh/vmlinux.lds.S.jj	Fri Dec 29 17:07:20 2000
+++ linux/arch/sh/vmlinux.lds.S	Tue Jun 26 11:09:54 2001
@@ -24,7 +24,7 @@ SECTIONS
 	*(.gnu.warning)
 	} = 0x0009
   .text.lock : { *(.text.lock) }	/* out-of-line lock text */
-  .rodata : { *(.rodata) }
+  .rodata : { *(.rodata) *(.rodata.*) }
   .kstrtab : { *(.kstrtab) }
 
   . = ALIGN(16);		/* Exception table */
--- linux/arch/sparc/vmlinux.lds.jj	Thu Nov  9 18:57:41 2000
+++ linux/arch/sparc/vmlinux.lds	Tue Jun 26 11:10:03 2001
@@ -12,7 +12,7 @@ SECTIONS
   } =0
   _etext = .;
   PROVIDE (etext = .);
-  .rodata    : { *(.rodata)  }
+  .rodata    : { *(.rodata) *(.rodata.*) }
   .rodata1   : { *(.rodata1) }
   .data    :
   {
--- linux/arch/sparc64/vmlinux.lds.jj	Thu Nov  9 18:57:41 2000
+++ linux/arch/sparc64/vmlinux.lds	Tue Jun 26 11:10:13 2001
@@ -16,7 +16,7 @@ SECTIONS
   } =0
   _etext = .;
   PROVIDE (etext = .);
-  .rodata    : { *(.rodata)  }
+  .rodata    : { *(.rodata) *(.rodata.*) }
   .rodata1   : { *(.rodata1) }
   .data    :
   {

	Jakub


             reply	other threads:[~2001-07-02 15:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-02 15:53 Jakub Jelinek [this message]
2001-07-03  4:06 ` [PATCH] Fix kernel linker scripts Keith Owens
2001-07-03  8:46   ` Jakub Jelinek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010702115351.B11623@devserv.devel.redhat.com \
    --to=jakub@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@transmeta.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox