xref: /linux/arch/alpha/kernel/vmlinux.lds.S (revision 44347d947f628060b92449702071bfe1d31dfb75)
1#include <asm-generic/vmlinux.lds.h>
2#include <asm/page.h>
3
4OUTPUT_FORMAT("elf64-alpha")
5OUTPUT_ARCH(alpha)
6ENTRY(__start)
7PHDRS { kernel PT_LOAD; note PT_NOTE; }
8jiffies = jiffies_64;
9SECTIONS
10{
11#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
12	. = 0xfffffc0000310000;
13#else
14	. = 0xfffffc0001010000;
15#endif
16
17	_text = .;	/* Text and read-only data */
18	.text : {
19		HEAD_TEXT
20		TEXT_TEXT
21		SCHED_TEXT
22		LOCK_TEXT
23		*(.fixup)
24		*(.gnu.warning)
25	} :kernel
26	_etext = .;	/* End of text section */
27
28	NOTES :kernel :note
29	.dummy : {
30		*(.dummy)
31	} :kernel
32
33	RODATA
34
35	/* Exception table */
36	. = ALIGN(16);
37	__ex_table : {
38		__start___ex_table = .;
39		*(__ex_table)
40		__stop___ex_table = .;
41	}
42
43	/* Will be freed after init */
44	. = ALIGN(PAGE_SIZE);
45	/* Init code and data */
46	__init_begin = .;
47	.init.text : {
48		_sinittext = .;
49		INIT_TEXT
50		_einittext = .;
51	}
52	.init.data : {
53		INIT_DATA
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	}
69
70#ifdef CONFIG_BLK_DEV_INITRD
71	. = ALIGN(PAGE_SIZE);
72	.init.ramfs : {
73		__initramfs_start = .;
74		*(.init.ramfs)
75		__initramfs_end = .;
76	}
77#endif
78
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/ : {
139		EXIT_TEXT
140		EXIT_DATA
141		*(.exitcall.exit)
142	}
143
144	.mdebug 0 : {
145		*(.mdebug)
146	}
147	.note 0 : {
148		*(.note)
149	}
150
151	STABS_DEBUG
152	DWARF_DEBUG
153}
154