aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/vmlinux.lds.S77
1 files changed, 23 insertions, 54 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index 0902f806cd37..71151bd87a36 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -40,43 +40,31 @@ SECTIONS
40 __tagtable_begin = .; 40 __tagtable_begin = .;
41 *(.taglist.init) 41 *(.taglist.init)
42 __tagtable_end = .; 42 __tagtable_end = .;
43 . = ALIGN(16); 43
44 __setup_start = .; 44 INIT_SETUP(16)
45 *(.init.setup) 45
46 __setup_end = .;
47 __early_begin = .; 46 __early_begin = .;
48 *(.early_param.init) 47 *(.early_param.init)
49 __early_end = .; 48 __early_end = .;
50 __initcall_start = .; 49
51 INITCALLS 50 INIT_CALLS
52 __initcall_end = .; 51 CON_INITCALL
53 __con_initcall_start = .; 52 SECURITY_INITCALL
54 *(.con_initcall.init) 53 INIT_RAM_FS
55 __con_initcall_end = .; 54
56 __security_initcall_start = .;
57 *(.security_initcall.init)
58 __security_initcall_end = .;
59#ifdef CONFIG_BLK_DEV_INITRD
60 . = ALIGN(32);
61 __initramfs_start = .;
62 usr/built-in.o(.init.ramfs)
63 __initramfs_end = .;
64#endif
65 . = ALIGN(PAGE_SIZE);
66 __per_cpu_load = .;
67 __per_cpu_start = .;
68 *(.data.percpu.page_aligned)
69 *(.data.percpu)
70 *(.data.percpu.shared_aligned)
71 __per_cpu_end = .;
72#ifndef CONFIG_XIP_KERNEL 55#ifndef CONFIG_XIP_KERNEL
73 __init_begin = _stext; 56 __init_begin = _stext;
74 INIT_DATA 57 INIT_DATA
75 . = ALIGN(PAGE_SIZE);
76 __init_end = .;
77#endif 58#endif
78 } 59 }
79 60
61 PERCPU(PAGE_SIZE)
62
63#ifndef CONFIG_XIP_KERNEL
64 . = ALIGN(PAGE_SIZE);
65 __init_end = .;
66#endif
67
80 /DISCARD/ : { /* Exit code and data */ 68 /DISCARD/ : { /* Exit code and data */
81 EXIT_TEXT 69 EXIT_TEXT
82 EXIT_DATA 70 EXIT_DATA
@@ -155,7 +143,7 @@ SECTIONS
155 * first, the init task union, aligned 143 * first, the init task union, aligned
156 * to an 8192 byte boundary. 144 * to an 8192 byte boundary.
157 */ 145 */
158 *(.data.init_task) 146 INIT_TASK_DATA(THREAD_SIZE)
159 147
160#ifdef CONFIG_XIP_KERNEL 148#ifdef CONFIG_XIP_KERNEL
161 . = ALIGN(PAGE_SIZE); 149 . = ALIGN(PAGE_SIZE);
@@ -165,17 +153,8 @@ SECTIONS
165 __init_end = .; 153 __init_end = .;
166#endif 154#endif
167 155
168 . = ALIGN(PAGE_SIZE); 156 NOSAVE_DATA
169 __nosave_begin = .; 157 CACHELINE_ALIGNED_DATA(32)
170 *(.data.nosave)
171 . = ALIGN(PAGE_SIZE);
172 __nosave_end = .;
173
174 /*
175 * then the cacheline aligned data
176 */
177 . = ALIGN(32);
178 *(.data.cacheline_aligned)
179 158
180 /* 159 /*
181 * The exception fixup table (might need resorting at runtime) 160 * The exception fixup table (might need resorting at runtime)
@@ -254,20 +233,10 @@ SECTIONS
254 } 233 }
255#endif 234#endif
256 235
257 .bss : { 236 BSS_SECTION(0, 0, 0)
258 __bss_start = .; /* BSS */ 237 _end = .;
259 *(.bss) 238
260 *(COMMON) 239 STABS_DEBUG
261 __bss_stop = .;
262 _end = .;
263 }
264 /* Stabs debugging sections. */
265 .stab 0 : { *(.stab) }
266 .stabstr 0 : { *(.stabstr) }
267 .stab.excl 0 : { *(.stab.excl) }
268 .stab.exclstr 0 : { *(.stab.exclstr) }
269 .stab.index 0 : { *(.stab.index) }
270 .stab.indexstr 0 : { *(.stab.indexstr) }
271 .comment 0 : { *(.comment) } 240 .comment 0 : { *(.comment) }
272} 241}
273 242