aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc
diff options
context:
space:
mode:
authorTom Rini <trini@kernel.crashing.org>2005-09-13 04:25:09 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-13 11:22:28 -0400
commit6a00cbfcf8ffdd719cb5a27e1a0a9779665d1e23 (patch)
tree3596cb8dc87fa3b8472234670e2022882ee64738 /arch/ppc
parent5b952b3c143660b6436fcb299b249cefde61c18d (diff)
[PATCH] ppc32: discard *.exit.text and *.exit.data sections
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@ebshome.net> Signed-off-by: Tom Rini <trini@kernel.crashing.org> Acked-by: Paul Mackerras <paulus@samba.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/ppc')
-rw-r--r--arch/ppc/kernel/vmlinux.lds.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/ppc/kernel/vmlinux.lds.S b/arch/ppc/kernel/vmlinux.lds.S
index 9353584fb710..17d2db7e537d 100644
--- a/arch/ppc/kernel/vmlinux.lds.S
+++ b/arch/ppc/kernel/vmlinux.lds.S
@@ -96,6 +96,9 @@ SECTIONS
96 *(.init.text) 96 *(.init.text)
97 _einittext = .; 97 _einittext = .;
98 } 98 }
99 /* .exit.text is discarded at runtime, not link time,
100 to deal with references from __bug_table */
101 .exit.text : { *(.exit.text) }
99 .init.data : { 102 .init.data : {
100 *(.init.data); 103 *(.init.data);
101 __vtop_table_begin = .; 104 __vtop_table_begin = .;
@@ -190,5 +193,6 @@ SECTIONS
190 /* Sections to be discarded. */ 193 /* Sections to be discarded. */
191 /DISCARD/ : { 194 /DISCARD/ : {
192 *(.exitcall.exit) 195 *(.exitcall.exit)
196 *(.exit.data)
193 } 197 }
194} 198}