diff options
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.S | 77 |
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 | ||