xref: /openbmc/linux/arch/sparc/kernel/vmlinux.lds.S (revision a1e58bbd)
1/* ld script to make SparcLinux kernel */
2
3#include <asm-generic/vmlinux.lds.h>
4#include <asm/page.h>
5
6OUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
7OUTPUT_ARCH(sparc)
8ENTRY(_start)
9jiffies = jiffies_64 + 4;
10SECTIONS
11{
12	. = 0x10000 + SIZEOF_HEADERS;
13	.text 0xf0004000 :
14	{
15		_text = .;
16		TEXT_TEXT
17		SCHED_TEXT
18		LOCK_TEXT
19		*(.gnu.warning)
20	} = 0
21	_etext = .;
22	PROVIDE (etext = .);
23	RODATA
24	.data :	{
25		DATA_DATA
26		CONSTRUCTORS
27	}
28	.data1 : {
29		*(.data1)
30	}
31	_edata = .;
32	PROVIDE (edata = .);
33
34	.fixup : {
35		__start___fixup = .;
36		*(.fixup)
37		__stop___fixup = .;
38	}
39	__ex_table : {
40		__start___ex_table = .;
41		*(__ex_table)
42		__stop___ex_table = .;
43	}
44
45	NOTES
46
47	. = ALIGN(PAGE_SIZE);
48	__init_begin = .;
49	.init.text : {
50		_sinittext = .;
51		INIT_TEXT
52		_einittext = .;
53	}
54	__init_text_end = .;
55	.init.data : {
56		INIT_DATA
57	}
58	. = ALIGN(16);
59	.init.setup : {
60		__setup_start = .;
61		*(.init.setup)
62		__setup_end = .;
63	}
64	.initcall.init : {
65		__initcall_start = .;
66		INITCALLS
67	__initcall_end = .;
68	}
69	.con_initcall.init : {
70		__con_initcall_start = .;
71		*(.con_initcall.init)
72		__con_initcall_end = .;
73	}
74	SECURITY_INIT
75
76#ifdef CONFIG_BLK_DEV_INITRD
77	. = ALIGN(PAGE_SIZE);
78	.init.ramfs : {
79	__initramfs_start = .;
80		*(.init.ramfs)
81	__initramfs_end = .;
82	}
83#endif
84
85	PERCPU(PAGE_SIZE)
86	. = ALIGN(PAGE_SIZE);
87	__init_end = .;
88	. = ALIGN(32);
89	.data.cacheline_aligned : {
90		*(.data.cacheline_aligned)
91	}
92	. = ALIGN(32);
93	.data.read_mostly : {
94		*(.data.read_mostly)
95	}
96
97	__bss_start = .;
98	.sbss : {
99		*(.sbss)
100		*(.scommon) }
101	.bss : {
102		*(.dynbss)
103		*(.bss)
104		*(COMMON)
105	}
106	_end = . ;
107	PROVIDE (end = .);
108	/DISCARD/ : {
109		EXIT_TEXT
110		EXIT_DATA
111		*(.exitcall.exit)
112	}
113
114	STABS_DEBUG
115	DWARF_DEBUG
116}
117