[PATCH] discard *.exit.text and *.exit.data sections

Eugene Surovegin ebs at ebshome.net
Mon Sep 5 15:46:03 EST 2005


Discard *.exit.text sections on runtime. We cannot do this on link 
time because of the way BUG macros are implemented. If "__exit 
function" calls one of those macros, __bug_table section will 
reference this function. This is similar to ".altinstructions" 
situation on i386.

*.exit.data seems to be OK in this respect and is discarded on link 
time.

Signed-off-by: Eugene Surovegin <ebs at ebshome.net>

diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S
--- a/arch/ppc/kernel/vmlinux.lds.S
+++ b/arch/ppc/kernel/vmlinux.lds.S
@@ -96,6 +96,9 @@ SECTIONS
 	*(.init.text)
 	_einittext = .;
   }
+  /* .exit.text is discarded at runtime, not link time, 
+     to deal with references from __bug_table */
+  .exit.text : { *(.exit.text) }  
   .init.data : {
     *(.init.data);
     __vtop_table_begin = .;
@@ -190,5 +193,6 @@ SECTIONS
   /* Sections to be discarded. */
   /DISCARD/ : {
     *(.exitcall.exit)
+    *(.exit.data)
   }
 }








More information about the Linuxppc-dev mailing list