summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-07-05 23:56:41 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-07-08 00:35:41 +0200
commit1604d79d372bcf0cf1aebcbdee251bd0f3d56665 (patch)
treecf83b7746dbb5032cd4f27f43817c4650708ee13 /arch/arm/kernel/vmlinux.lds.S
parentARM: vmlinux.lds: move discarded sections to beginning (diff)
downloadlinux-1604d79d372bcf0cf1aebcbdee251bd0f3d56665.tar.xz
linux-1604d79d372bcf0cf1aebcbdee251bd0f3d56665.zip
ARM: vmlinux.lds: rearrange .init output section
Keep the various linker tables as separate output sections rather than combining them together into one big .init section. This makes the 'vmlinux' easier to see what is placed where. Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org> Tested-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.S')
-rw-r--r--arch/arm/kernel/vmlinux.lds.S47
1 files changed, 29 insertions, 18 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index cb46a9bad4f5..c8bb9b77c2ea 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -65,48 +65,59 @@ SECTIONS
#else
. = PAGE_OFFSET + TEXT_OFFSET;
#endif
-
- .init : { /* Init code and data */
+ .head.text : {
_stext = .;
- _sinittext = .;
- HEAD_TEXT
- INIT_TEXT
- ARM_EXIT_KEEP(EXIT_TEXT)
- _einittext = .;
+ HEAD_TEXT
+ }
+ INIT_TEXT_SECTION(8)
+ .exit.text : {
+ ARM_EXIT_KEEP(EXIT_TEXT)
+ }
+ .init.proc.info : {
ARM_CPU_DISCARD(PROC_INFO)
+ }
+ .init.arch.info : {
__arch_info_begin = .;
- *(.arch.info.init)
+ *(.arch.info.init)
__arch_info_end = .;
+ }
+ .init.tagtable : {
__tagtable_begin = .;
- *(.taglist.init)
+ *(.taglist.init)
__tagtable_end = .;
+ }
#ifdef CONFIG_SMP_ON_UP
+ .init.smpalt : {
__smpalt_begin = .;
- *(.alt.smp.init)
+ *(.alt.smp.init)
__smpalt_end = .;
+ }
#endif
-
+ .init.pv_table : {
__pv_table_begin = .;
- *(.pv_table)
+ *(.pv_table)
__pv_table_end = .;
-
+ }
+ .init.data : {
+#ifndef CONFIG_XIP_KERNEL
+ INIT_DATA
+#endif
INIT_SETUP(16)
-
INIT_CALLS
CON_INITCALL
SECURITY_INITCALL
INIT_RAM_FS
-
+ }
#ifndef CONFIG_XIP_KERNEL
- __init_begin = _stext;
- INIT_DATA
+ .exit.data : {
ARM_EXIT_KEEP(EXIT_DATA)
-#endif
}
+#endif
PERCPU_SECTION(32)
#ifndef CONFIG_XIP_KERNEL
+ __init_begin = _stext;
. = ALIGN(PAGE_SIZE);
__init_end = .;
#endif