diff options
author | Geoffrey Thomas <geofft@ksplice.com> | 2009-09-24 10:36:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-24 20:16:22 -0400 |
commit | 9d93f00580243cc059510d9d6ac4d2f5e97e5b83 (patch) | |
tree | 6c9fb647d59bb091ab32c77c682fd319fa870c76 /arch/alpha | |
parent | ea12c2ed547f415ef9699cc67374d90924592c9b (diff) |
alpha: Clean up linker script using new linker script macros.
Note that .data.page_aligned and .data.cacheline_aligned are now after
_data; it was probably a bug that they were before it.
Also, some explicit ALIGN(8)'s between various initcall sections were
removed; this should be harmless as the implicit alignment of
initcall_t was already 8.
Signed-off-by: Geoffrey Thomas <geofft@ksplice.com>
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/kernel/vmlinux.lds.S | 90 |
1 files changed, 9 insertions, 81 deletions
diff --git a/arch/alpha/kernel/vmlinux.lds.S b/arch/alpha/kernel/vmlinux.lds.S index 82803df17977..2906665b1c10 100644 --- a/arch/alpha/kernel/vmlinux.lds.S +++ b/arch/alpha/kernel/vmlinux.lds.S | |||
@@ -32,84 +32,21 @@ SECTIONS | |||
32 | } :kernel | 32 | } :kernel |
33 | 33 | ||
34 | RODATA | 34 | RODATA |
35 | 35 | EXCEPTION_TABLE(16) | |
36 | /* Exception table */ | ||
37 | . = ALIGN(16); | ||
38 | __ex_table : { | ||
39 | __start___ex_table = .; | ||
40 | *(__ex_table) | ||
41 | __stop___ex_table = .; | ||
42 | } | ||
43 | 36 | ||
44 | /* Will be freed after init */ | 37 | /* Will be freed after init */ |
45 | . = ALIGN(PAGE_SIZE); | 38 | __init_begin = ALIGN(PAGE_SIZE); |
46 | /* Init code and data */ | 39 | INIT_TEXT_SECTION(PAGE_SIZE) |
47 | __init_begin = .; | 40 | INIT_DATA_SECTION(16) |
48 | .init.text : { | ||
49 | _sinittext = .; | ||
50 | INIT_TEXT | ||
51 | _einittext = .; | ||
52 | } | ||
53 | .init.data : { | ||
54 | INIT_DATA | ||
55 | } | ||
56 | |||
57 | . = ALIGN(16); | ||
58 | .init.setup : { | ||
59 | __setup_start = .; | ||
60 | *(.init.setup) | ||
61 | __setup_end = .; | ||
62 | } | ||
63 | |||
64 | . = ALIGN(8); | ||
65 | .initcall.init : { | ||
66 | __initcall_start = .; | ||
67 | INITCALLS | ||
68 | __initcall_end = .; | ||
69 | } | ||
70 | |||
71 | #ifdef CONFIG_BLK_DEV_INITRD | ||
72 | . = ALIGN(PAGE_SIZE); | ||
73 | .init.ramfs : { | ||
74 | __initramfs_start = .; | ||
75 | *(.init.ramfs) | ||
76 | __initramfs_end = .; | ||
77 | } | ||
78 | #endif | ||
79 | |||
80 | . = ALIGN(8); | ||
81 | .con_initcall.init : { | ||
82 | __con_initcall_start = .; | ||
83 | *(.con_initcall.init) | ||
84 | __con_initcall_end = .; | ||
85 | } | ||
86 | |||
87 | . = ALIGN(8); | ||
88 | SECURITY_INIT | ||
89 | |||
90 | PERCPU(PAGE_SIZE) | 41 | PERCPU(PAGE_SIZE) |
91 | 42 | /* Align to THREAD_SIZE rather than PAGE_SIZE here so any padding page | |
92 | . = ALIGN(2 * PAGE_SIZE); | 43 | needed for the THREAD_SIZE aligned init_task gets freed after init */ |
44 | . = ALIGN(THREAD_SIZE); | ||
93 | __init_end = .; | 45 | __init_end = .; |
94 | /* Freed after init ends here */ | 46 | /* Freed after init ends here */ |
95 | 47 | ||
96 | . = ALIGN(PAGE_SIZE); | ||
97 | .data.page_aligned : { | ||
98 | *(.data.page_aligned) | ||
99 | } | ||
100 | |||
101 | . = ALIGN(64); | ||
102 | .data.cacheline_aligned : { | ||
103 | *(.data.cacheline_aligned) | ||
104 | } | ||
105 | |||
106 | _data = .; | 48 | _data = .; |
107 | /* Data */ | 49 | RW_DATA_SECTION(64, PAGE_SIZE, THREAD_SIZE) |
108 | .data : { | ||
109 | INIT_TASK_DATA(THREAD_SIZE) | ||
110 | DATA_DATA | ||
111 | CONSTRUCTORS | ||
112 | } | ||
113 | 50 | ||
114 | .got : { | 51 | .got : { |
115 | *(.got) | 52 | *(.got) |
@@ -119,16 +56,7 @@ SECTIONS | |||
119 | } | 56 | } |
120 | _edata = .; /* End of data section */ | 57 | _edata = .; /* End of data section */ |
121 | 58 | ||
122 | __bss_start = .; | 59 | BSS_SECTION(0, 0, 0) |
123 | .sbss : { | ||
124 | *(.sbss) | ||
125 | *(.scommon) | ||
126 | } | ||
127 | .bss : { | ||
128 | *(.bss) | ||
129 | *(COMMON) | ||
130 | } | ||
131 | __bss_stop = .; | ||
132 | _end = .; | 60 | _end = .; |
133 | 61 | ||
134 | .mdebug 0 : { | 62 | .mdebug 0 : { |