[MIPS] Discard .exit.text at runtime.
authorRalf Baechle <ralf@linux-mips.org>
Wed, 8 Mar 2006 14:13:04 +0000 (14:13 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 9 Mar 2006 18:05:09 +0000 (18:05 +0000)
At times gcc will place bits of __exit functions into .rodata.  If
compiled into the kernle itself we used to discard .exit.text - but
not the bits left in .rodata.  While harmless this did at times result
in a large number of warnings.  So until gcc fixes this, discard
.exit.text at runtime.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/vmlinux.lds.S

index ff699dbb99f730b0a3da89883f96788ee254d160..2ad0cedf29fee2236c32d7e1ec1cd3ac34b0b0ad 100644 (file)
@@ -106,6 +106,9 @@ SECTIONS
   .con_initcall.init : { *(.con_initcall.init) }
   __con_initcall_end = .;
   SECURITY_INIT
+    /* .exit.text is discarded at runtime, not link time, to deal with
+     references from .rodata */
+  .exit.text : { *(.exit.text) }
   . = ALIGN(_PAGE_SIZE);
   __initramfs_start = .;
   .init.ramfs : { *(.init.ramfs) }
@@ -133,7 +136,6 @@ SECTIONS
 
   /* Sections to be discarded */
   /DISCARD/ : {
-        *(.exit.text)
         *(.exit.data)
         *(.exitcall.exit)