]> bbs.cooldavid.org Git - net-next-2.6.git/blame - arch/alpha/kernel/vmlinux.lds.S
linker script: throw away .discard section
[net-next-2.6.git] / arch / alpha / kernel / vmlinux.lds.S
CommitLineData
1da177e4 1#include <asm-generic/vmlinux.lds.h>
b2b5d37d 2#include <asm/page.h>
1da177e4
LT
3
4OUTPUT_FORMAT("elf64-alpha")
5OUTPUT_ARCH(alpha)
6ENTRY(__start)
caf45dd9 7PHDRS { kernel PT_LOAD; note PT_NOTE; }
1da177e4
LT
8jiffies = jiffies_64;
9SECTIONS
10{
11#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
b2b5d37d 12 . = 0xfffffc0000310000;
1da177e4 13#else
b2b5d37d 14 . = 0xfffffc0001010000;
1da177e4
LT
15#endif
16
b2b5d37d
SR
17 _text = .; /* Text and read-only data */
18 .text : {
92ca5234 19 HEAD_TEXT
b2b5d37d
SR
20 TEXT_TEXT
21 SCHED_TEXT
22 LOCK_TEXT
23 *(.fixup)
24 *(.gnu.warning)
25 } :kernel
26 _etext = .; /* End of text section */
27
51597acf
BB
28 NOTES :kernel :note
29 .dummy : {
30 *(.dummy)
31 } :kernel
32
33 RODATA
34
b2b5d37d
SR
35 /* Exception table */
36 . = ALIGN(16);
37 __ex_table : {
38 __start___ex_table = .;
39 *(__ex_table)
40 __stop___ex_table = .;
41 }
42
b2b5d37d
SR
43 /* Will be freed after init */
44 . = ALIGN(PAGE_SIZE);
45 /* Init code and data */
46 __init_begin = .;
47 .init.text : {
48 _sinittext = .;
01ba2bdc 49 INIT_TEXT
b2b5d37d
SR
50 _einittext = .;
51 }
52 .init.data : {
01ba2bdc 53 INIT_DATA
b2b5d37d
SR
54 }
55
56 . = ALIGN(16);
57 .init.setup : {
58 __setup_start = .;
59 *(.init.setup)
60 __setup_end = .;
61 }
62
63 . = ALIGN(8);
64 .initcall.init : {
65 __initcall_start = .;
66 INITCALLS
67 __initcall_end = .;
68 }
1da177e4 69
67d38229 70#ifdef CONFIG_BLK_DEV_INITRD
b2b5d37d
SR
71 . = ALIGN(PAGE_SIZE);
72 .init.ramfs : {
73 __initramfs_start = .;
74 *(.init.ramfs)
75 __initramfs_end = .;
76 }
67d38229 77#endif
1da177e4 78
b2b5d37d
SR
79 . = ALIGN(8);
80 .con_initcall.init : {
81 __con_initcall_start = .;
82 *(.con_initcall.init)
83 __con_initcall_end = .;
84 }
85
86 . = ALIGN(8);
87 SECURITY_INIT
88
89 PERCPU(PAGE_SIZE)
90
91 . = ALIGN(2 * PAGE_SIZE);
92 __init_end = .;
93 /* Freed after init ends here */
94
95 /* Note 2 page alignment above. */
96 .data.init_thread : {
97 *(.data.init_thread)
98 }
99
100 . = ALIGN(PAGE_SIZE);
101 .data.page_aligned : {
102 *(.data.page_aligned)
103 }
104
105 . = ALIGN(64);
106 .data.cacheline_aligned : {
107 *(.data.cacheline_aligned)
108 }
109
110 _data = .;
111 /* Data */
112 .data : {
113 DATA_DATA
114 CONSTRUCTORS
115 }
116
117 .got : {
118 *(.got)
119 }
120 .sdata : {
121 *(.sdata)
122 }
123 _edata = .; /* End of data section */
124
125 __bss_start = .;
126 .sbss : {
127 *(.sbss)
128 *(.scommon)
129 }
130 .bss : {
131 *(.bss)
132 *(COMMON)
133 }
134 __bss_stop = .;
135 _end = .;
136
137 /* Sections to be discarded */
138 /DISCARD/ : {
01ba2bdc
SR
139 EXIT_TEXT
140 EXIT_DATA
b2b5d37d 141 *(.exitcall.exit)
405d967d 142 *(.discard)
b2b5d37d
SR
143 }
144
145 .mdebug 0 : {
146 *(.mdebug)
147 }
148 .note 0 : {
149 *(.note)
150 }
151
152 STABS_DEBUG
153 DWARF_DEBUG
1da177e4 154}