diff options
Diffstat (limited to 'arch/arm/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.S | 85 |
1 files changed, 26 insertions, 59 deletions
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index aecf87dfbaec..71151bd87a36 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,43 +40,31 @@ 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 = .; | ||
49 | __early_begin = .; | 46 | __early_begin = .; |
50 | *(.early_param.init) | 47 | *(.early_param.init) |
51 | __early_end = .; | 48 | __early_end = .; |
52 | __initcall_start = .; | 49 | |
53 | INITCALLS | 50 | INIT_CALLS |
54 | __initcall_end = .; | 51 | CON_INITCALL |
55 | __con_initcall_start = .; | 52 | SECURITY_INITCALL |
56 | *(.con_initcall.init) | 53 | INIT_RAM_FS |
57 | __con_initcall_end = .; | 54 | |
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 | 55 | #ifndef CONFIG_XIP_KERNEL |
75 | __init_begin = _stext; | 56 | __init_begin = _stext; |
76 | INIT_DATA | 57 | INIT_DATA |
77 | . = ALIGN(PAGE_SIZE); | ||
78 | __init_end = .; | ||
79 | #endif | 58 | #endif |
80 | } | 59 | } |
81 | 60 | ||
61 | PERCPU(PAGE_SIZE) | ||
62 | |||
63 | #ifndef CONFIG_XIP_KERNEL | ||
64 | . = ALIGN(PAGE_SIZE); | ||
65 | __init_end = .; | ||
66 | #endif | ||
67 | |||
82 | /DISCARD/ : { /* Exit code and data */ | 68 | /DISCARD/ : { /* Exit code and data */ |
83 | EXIT_TEXT | 69 | EXIT_TEXT |
84 | EXIT_DATA | 70 | EXIT_DATA |
@@ -157,7 +143,7 @@ SECTIONS | |||
157 | * first, the init task union, aligned | 143 | * first, the init task union, aligned |
158 | * to an 8192 byte boundary. | 144 | * to an 8192 byte boundary. |
159 | */ | 145 | */ |
160 | *(.data.init_task) | 146 | INIT_TASK_DATA(THREAD_SIZE) |
161 | 147 | ||
162 | #ifdef CONFIG_XIP_KERNEL | 148 | #ifdef CONFIG_XIP_KERNEL |
163 | . = ALIGN(PAGE_SIZE); | 149 | . = ALIGN(PAGE_SIZE); |
@@ -167,17 +153,8 @@ SECTIONS | |||
167 | __init_end = .; | 153 | __init_end = .; |
168 | #endif | 154 | #endif |
169 | 155 | ||
170 | . = ALIGN(PAGE_SIZE); | 156 | NOSAVE_DATA |
171 | __nosave_begin = .; | 157 | 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 | 158 | ||
182 | /* | 159 | /* |
183 | * The exception fixup table (might need resorting at runtime) | 160 | * The exception fixup table (might need resorting at runtime) |
@@ -256,20 +233,10 @@ SECTIONS | |||
256 | } | 233 | } |
257 | #endif | 234 | #endif |
258 | 235 | ||
259 | .bss : { | 236 | BSS_SECTION(0, 0, 0) |
260 | __bss_start = .; /* BSS */ | 237 | _end = .; |
261 | *(.bss) | 238 | |
262 | *(COMMON) | 239 | 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) } | 240 | .comment 0 : { *(.comment) } |
274 | } | 241 | } |
275 | 242 | ||