aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2011-07-05 17:56:41 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2011-07-07 18:35:41 -0400
commit1604d79d372bcf0cf1aebcbdee251bd0f3d56665 (patch)
treecf83b7746dbb5032cd4f27f43817c4650708ee13
parent39df88872f64b8a7c438861460063eadf2ba9011 (diff)
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>
-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
65#else 65#else
66 . = PAGE_OFFSET + TEXT_OFFSET; 66 . = PAGE_OFFSET + TEXT_OFFSET;
67#endif 67#endif
68 68 .head.text : {
69 .init : { /* Init code and data */
70 _stext = .; 69 _stext = .;
71 _sinittext = .; 70 HEAD_TEXT
72 HEAD_TEXT 71 }
73 INIT_TEXT 72 INIT_TEXT_SECTION(8)
74 ARM_EXIT_KEEP(EXIT_TEXT) 73 .exit.text : {
75 _einittext = .; 74 ARM_EXIT_KEEP(EXIT_TEXT)
75 }
76 .init.proc.info : {
76 ARM_CPU_DISCARD(PROC_INFO) 77 ARM_CPU_DISCARD(PROC_INFO)
78 }
79 .init.arch.info : {
77 __arch_info_begin = .; 80 __arch_info_begin = .;
78 *(.arch.info.init) 81 *(.arch.info.init)
79 __arch_info_end = .; 82 __arch_info_end = .;
83 }
84 .init.tagtable : {
80 __tagtable_begin = .; 85 __tagtable_begin = .;
81 *(.taglist.init) 86 *(.taglist.init)
82 __tagtable_end = .; 87 __tagtable_end = .;
88 }
83#ifdef CONFIG_SMP_ON_UP 89#ifdef CONFIG_SMP_ON_UP
90 .init.smpalt : {
84 __smpalt_begin = .; 91 __smpalt_begin = .;
85 *(.alt.smp.init) 92 *(.alt.smp.init)
86 __smpalt_end = .; 93 __smpalt_end = .;
94 }
87#endif 95#endif
88 96 .init.pv_table : {
89 __pv_table_begin = .; 97 __pv_table_begin = .;
90 *(.pv_table) 98 *(.pv_table)
91 __pv_table_end = .; 99 __pv_table_end = .;
92 100 }
101 .init.data : {
102#ifndef CONFIG_XIP_KERNEL
103 INIT_DATA
104#endif
93 INIT_SETUP(16) 105 INIT_SETUP(16)
94
95 INIT_CALLS 106 INIT_CALLS
96 CON_INITCALL 107 CON_INITCALL
97 SECURITY_INITCALL 108 SECURITY_INITCALL
98 INIT_RAM_FS 109 INIT_RAM_FS
99 110 }
100#ifndef CONFIG_XIP_KERNEL 111#ifndef CONFIG_XIP_KERNEL
101 __init_begin = _stext; 112 .exit.data : {
102 INIT_DATA
103 ARM_EXIT_KEEP(EXIT_DATA) 113 ARM_EXIT_KEEP(EXIT_DATA)
104#endif
105 } 114 }
115#endif
106 116
107 PERCPU_SECTION(32) 117 PERCPU_SECTION(32)
108 118
109#ifndef CONFIG_XIP_KERNEL 119#ifndef CONFIG_XIP_KERNEL
120 __init_begin = _stext;
110 . = ALIGN(PAGE_SIZE); 121 . = ALIGN(PAGE_SIZE);
111 __init_end = .; 122 __init_end = .;
112#endif 123#endif