diff options
Diffstat (limited to 'arch/alpha/kernel/vmlinux.lds.S')
-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 82803df1797..2906665b1c1 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 : { |