aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.S')
-rw-r--r--arch/arm/kernel/vmlinux.lds.S100
1 files changed, 33 insertions, 67 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index aecf87dfbaec..b16c07914b55 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -24,13 +24,11 @@ SECTIONS
24#else 24#else
25 . = PAGE_OFFSET + TEXT_OFFSET; 25 . = PAGE_OFFSET + TEXT_OFFSET;
26#endif 26#endif
27 .text.head : {
28 _stext = .;
29 _sinittext = .;
30 *(.text.head)
31 }
32 27
33 .init : { /* Init code and data */ 28 .init : { /* Init code and data */
29 _stext = .;
30 _sinittext = .;
31 HEAD_TEXT
34 INIT_TEXT 32 INIT_TEXT
35 _einittext = .; 33 _einittext = .;
36 __proc_info_begin = .; 34 __proc_info_begin = .;
@@ -42,48 +40,32 @@ SECTIONS
42 __tagtable_begin = .; 40 __tagtable_begin = .;
43 *(.taglist.init) 41 *(.taglist.init)
44 __tagtable_end = .; 42 __tagtable_end = .;
45 . = ALIGN(16); 43
46 __setup_start = .; 44 INIT_SETUP(16)
47 *(.init.setup) 45
48 __setup_end = .; 46 INIT_CALLS
49 __early_begin = .; 47 CON_INITCALL
50 *(.early_param.init) 48 SECURITY_INITCALL
51 __early_end = .; 49 INIT_RAM_FS
52 __initcall_start = .; 50
53 INITCALLS
54 __initcall_end = .;
55 __con_initcall_start = .;
56 *(.con_initcall.init)
57 __con_initcall_end = .;
58 __security_initcall_start = .;
59 *(.security_initcall.init)
60 __security_initcall_end = .;
61#ifdef CONFIG_BLK_DEV_INITRD
62 . = ALIGN(32);
63 __initramfs_start = .;
64 usr/built-in.o(.init.ramfs)
65 __initramfs_end = .;
66#endif
67 . = ALIGN(PAGE_SIZE);
68 __per_cpu_load = .;
69 __per_cpu_start = .;
70 *(.data.percpu.page_aligned)
71 *(.data.percpu)
72 *(.data.percpu.shared_aligned)
73 __per_cpu_end = .;
74#ifndef CONFIG_XIP_KERNEL 51#ifndef CONFIG_XIP_KERNEL
75 __init_begin = _stext; 52 __init_begin = _stext;
76 INIT_DATA 53 INIT_DATA
77 . = ALIGN(PAGE_SIZE);
78 __init_end = .;
79#endif 54#endif
80 } 55 }
81 56
82 /DISCARD/ : { /* Exit code and data */ 57 PERCPU(PAGE_SIZE)
83 EXIT_TEXT 58
84 EXIT_DATA 59#ifndef CONFIG_XIP_KERNEL
85 *(.exitcall.exit) 60 . = ALIGN(PAGE_SIZE);
86 *(.discard) 61 __init_end = .;
62#endif
63
64 /*
65 * unwind exit sections must be discarded before the rest of the
66 * unwind sections get included.
67 */
68 /DISCARD/ : {
87 *(.ARM.exidx.exit.text) 69 *(.ARM.exidx.exit.text)
88 *(.ARM.extab.exit.text) 70 *(.ARM.extab.exit.text)
89#ifndef CONFIG_HOTPLUG_CPU 71#ifndef CONFIG_HOTPLUG_CPU
@@ -157,7 +139,7 @@ SECTIONS
157 * first, the init task union, aligned 139 * first, the init task union, aligned
158 * to an 8192 byte boundary. 140 * to an 8192 byte boundary.
159 */ 141 */
160 *(.data.init_task) 142 INIT_TASK_DATA(THREAD_SIZE)
161 143
162#ifdef CONFIG_XIP_KERNEL 144#ifdef CONFIG_XIP_KERNEL
163 . = ALIGN(PAGE_SIZE); 145 . = ALIGN(PAGE_SIZE);
@@ -167,17 +149,8 @@ SECTIONS
167 __init_end = .; 149 __init_end = .;
168#endif 150#endif
169 151
170 . = ALIGN(PAGE_SIZE); 152 NOSAVE_DATA
171 __nosave_begin = .; 153 CACHELINE_ALIGNED_DATA(32)
172 *(.data.nosave)
173 . = ALIGN(PAGE_SIZE);
174 __nosave_end = .;
175
176 /*
177 * then the cacheline aligned data
178 */
179 . = ALIGN(32);
180 *(.data.cacheline_aligned)
181 154
182 /* 155 /*
183 * The exception fixup table (might need resorting at runtime) 156 * The exception fixup table (might need resorting at runtime)
@@ -256,21 +229,14 @@ SECTIONS
256 } 229 }
257#endif 230#endif
258 231
259 .bss : { 232 BSS_SECTION(0, 0, 0)
260 __bss_start = .; /* BSS */ 233 _end = .;
261 *(.bss) 234
262 *(COMMON) 235 STABS_DEBUG
263 __bss_stop = .;
264 _end = .;
265 }
266 /* Stabs debugging sections. */
267 .stab 0 : { *(.stab) }
268 .stabstr 0 : { *(.stabstr) }
269 .stab.excl 0 : { *(.stab.excl) }
270 .stab.exclstr 0 : { *(.stab.exclstr) }
271 .stab.index 0 : { *(.stab.index) }
272 .stab.indexstr 0 : { *(.stab.indexstr) }
273 .comment 0 : { *(.comment) } 236 .comment 0 : { *(.comment) }
237
238 /* Default discards */
239 DISCARDS
274} 240}
275 241
276/* 242/*