aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorAlan Jenkins <alan-jenkins@tuffmail.co.uk>2009-11-07 16:03:52 -0500
committerRusty Russell <rusty@rustcorp.com.au>2009-12-15 00:58:18 -0500
commite3f28c1333acfe9e4109b836bc15caf794e94d09 (patch)
tree7330615472fd4f58cbc0dad368fd9b6837cb268f /arch/arm/kernel
parente6428047725d72d63c1d9c4ba852e635e3ffe52a (diff)
ARM: use unified discard definition in linker script
Commit 023bf6f "linker script: unify usage of discard definition" changed the linker scripts for all architectures except for ARM. I can find no discussion about this ommision, so here are the changes for ARM. These changes are exactly parallel to the ia64 case. "ia64 is notable because it first throws away some ia64 specific subsections and then include the rest of the sections into the final image, so those sections must be discarded before the inclusion." Not boot-tested. In build testing, the modified linker script generated an identical vmlinux file. [I would like to be able to rely on this unified discard definition. I want to sort the kernel symbol tables to allow faster symbol resolution during module loading. The simplest way appears to be to generate sorted versions from vmlinux.o, link them in to vmlinux, _and discard the original unsorted tables_. This work is driven by my x86 netbook, but it is implemented at a generic level. It is possible it will benefit some ARM systems also.] Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> Acked-by-without-testing: Tejun Heo <tj@kernel.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/vmlinux.lds.S13
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 71151bd87a36..4957e13ef55b 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -65,11 +65,11 @@ SECTIONS
65 __init_end = .; 65 __init_end = .;
66#endif 66#endif
67 67
68 /DISCARD/ : { /* Exit code and data */ 68 /*
69 EXIT_TEXT 69 * unwind exit sections must be discarded before the rest of the
70 EXIT_DATA 70 * unwind sections get included.
71 *(.exitcall.exit) 71 */
72 *(.discard) 72 /DISCARD/ : {
73 *(.ARM.exidx.exit.text) 73 *(.ARM.exidx.exit.text)
74 *(.ARM.extab.exit.text) 74 *(.ARM.extab.exit.text)
75#ifndef CONFIG_HOTPLUG_CPU 75#ifndef CONFIG_HOTPLUG_CPU
@@ -238,6 +238,9 @@ SECTIONS
238 238
239 STABS_DEBUG 239 STABS_DEBUG
240 .comment 0 : { *(.comment) } 240 .comment 0 : { *(.comment) }
241
242 /* Default discards */
243 DISCARDS
241} 244}
242 245
243/* 246/*