diff options
Diffstat (limited to 'arch/x86/kernel/vmlinux_32.lds.S')
-rw-r--r-- | arch/x86/kernel/vmlinux_32.lds.S | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S index 7d72cce0052..f1148ac8abe 100644 --- a/arch/x86/kernel/vmlinux_32.lds.S +++ b/arch/x86/kernel/vmlinux_32.lds.S | |||
@@ -8,12 +8,6 @@ | |||
8 | * put it inside the section definition. | 8 | * put it inside the section definition. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | /* Don't define absolute symbols until and unless you know that symbol | ||
12 | * value is should remain constant even if kernel image is relocated | ||
13 | * at run time. Absolute symbols are not relocated. If symbol value should | ||
14 | * change if kernel is relocated, make the symbol section relative and | ||
15 | * put it inside the section definition. | ||
16 | */ | ||
17 | #define LOAD_OFFSET __PAGE_OFFSET | 11 | #define LOAD_OFFSET __PAGE_OFFSET |
18 | 12 | ||
19 | #include <asm-generic/vmlinux.lds.h> | 13 | #include <asm-generic/vmlinux.lds.h> |
@@ -44,6 +38,8 @@ SECTIONS | |||
44 | 38 | ||
45 | /* read-only */ | 39 | /* read-only */ |
46 | .text : AT(ADDR(.text) - LOAD_OFFSET) { | 40 | .text : AT(ADDR(.text) - LOAD_OFFSET) { |
41 | . = ALIGN(4096); /* not really needed, already page aligned */ | ||
42 | *(.text.page_aligned) | ||
47 | TEXT_TEXT | 43 | TEXT_TEXT |
48 | SCHED_TEXT | 44 | SCHED_TEXT |
49 | LOCK_TEXT | 45 | LOCK_TEXT |
@@ -131,10 +127,12 @@ SECTIONS | |||
131 | .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { | 127 | .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { |
132 | __init_begin = .; | 128 | __init_begin = .; |
133 | _sinittext = .; | 129 | _sinittext = .; |
134 | *(.init.text) | 130 | INIT_TEXT |
135 | _einittext = .; | 131 | _einittext = .; |
136 | } | 132 | } |
137 | .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { *(.init.data) } | 133 | .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { |
134 | INIT_DATA | ||
135 | } | ||
138 | . = ALIGN(16); | 136 | . = ALIGN(16); |
139 | .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { | 137 | .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { |
140 | __setup_start = .; | 138 | __setup_start = .; |
@@ -169,8 +167,12 @@ SECTIONS | |||
169 | } | 167 | } |
170 | /* .exit.text is discard at runtime, not link time, to deal with references | 168 | /* .exit.text is discard at runtime, not link time, to deal with references |
171 | from .altinstructions and .eh_frame */ | 169 | from .altinstructions and .eh_frame */ |
172 | .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { *(.exit.text) } | 170 | .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { |
173 | .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { *(.exit.data) } | 171 | EXIT_TEXT |
172 | } | ||
173 | .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { | ||
174 | EXIT_DATA | ||
175 | } | ||
174 | #if defined(CONFIG_BLK_DEV_INITRD) | 176 | #if defined(CONFIG_BLK_DEV_INITRD) |
175 | . = ALIGN(4096); | 177 | . = ALIGN(4096); |
176 | .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { | 178 | .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { |