xref: /openbmc/linux/arch/sparc/kernel/vmlinux.lds.S (revision bcbe40ebdd6ab832793448c8e611cfa904968e9a)
11da177e4SLinus Torvalds/* ld script to make SparcLinux kernel */
21da177e4SLinus Torvalds
31da177e4SLinus Torvalds#include <asm-generic/vmlinux.lds.h>
4*bcbe40ebSSam Ravnborg#include <asm/page.h>
51da177e4SLinus Torvalds
61da177e4SLinus TorvaldsOUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
71da177e4SLinus TorvaldsOUTPUT_ARCH(sparc)
81da177e4SLinus TorvaldsENTRY(_start)
91da177e4SLinus Torvaldsjiffies = jiffies_64 + 4;
101da177e4SLinus TorvaldsSECTIONS
111da177e4SLinus Torvalds{
121da177e4SLinus Torvalds	. = 0x10000 + SIZEOF_HEADERS;
131da177e4SLinus Torvalds	.text 0xf0004000 :
141da177e4SLinus Torvalds	{
15fd593d12SEric W. Biederman		_text = .;
167664709bSSam Ravnborg		TEXT_TEXT
171da177e4SLinus Torvalds		SCHED_TEXT
181da177e4SLinus Torvalds		LOCK_TEXT
191da177e4SLinus Torvalds		*(.gnu.warning)
201da177e4SLinus Torvalds	} = 0
211da177e4SLinus Torvalds	_etext = .;
221da177e4SLinus Torvalds	PROVIDE (etext = .);
231da177e4SLinus Torvalds	RODATA
24*bcbe40ebSSam Ravnborg	.data :	{
25ca967258SSam Ravnborg		DATA_DATA
261da177e4SLinus Torvalds		CONSTRUCTORS
271da177e4SLinus Torvalds	}
28*bcbe40ebSSam Ravnborg	.data1 : {
29*bcbe40ebSSam Ravnborg		*(.data1)
30*bcbe40ebSSam Ravnborg	}
311da177e4SLinus Torvalds	_edata = .;
321da177e4SLinus Torvalds	PROVIDE (edata = .);
33*bcbe40ebSSam Ravnborg
34*bcbe40ebSSam Ravnborg	.fixup : {
351da177e4SLinus Torvalds		__start___fixup = .;
36*bcbe40ebSSam Ravnborg		*(.fixup)
371da177e4SLinus Torvalds		__stop___fixup = .;
38*bcbe40ebSSam Ravnborg	}
39*bcbe40ebSSam Ravnborg	__ex_table : {
401da177e4SLinus Torvalds		__start___ex_table = .;
41*bcbe40ebSSam Ravnborg		*(__ex_table)
421da177e4SLinus Torvalds		__stop___ex_table = .;
43*bcbe40ebSSam Ravnborg	}
441da177e4SLinus Torvalds
450c0d345eSDavid S. Miller	NOTES
460c0d345eSDavid S. Miller
47*bcbe40ebSSam Ravnborg	. = ALIGN(PAGE_SIZE);
481da177e4SLinus Torvalds	__init_begin = .;
49ab5da288SMartin Habets	.init.text : {
50*bcbe40ebSSam Ravnborg		_sinittext = .;
511da177e4SLinus Torvalds		*(.init.text)
52ab5da288SMartin Habets		_einittext = .;
531da177e4SLinus Torvalds	}
54*bcbe40ebSSam Ravnborg	__init_text_end = .;
55*bcbe40ebSSam Ravnborg	.init.data : {
56*bcbe40ebSSam Ravnborg		*(.init.data)
57*bcbe40ebSSam Ravnborg	}
58*bcbe40ebSSam Ravnborg	. = ALIGN(16);
59*bcbe40ebSSam Ravnborg	.init.setup : {
60*bcbe40ebSSam Ravnborg		__setup_start = .;
61*bcbe40ebSSam Ravnborg		*(.init.setup)
62*bcbe40ebSSam Ravnborg		__setup_end = .;
63*bcbe40ebSSam Ravnborg	}
64*bcbe40ebSSam Ravnborg	.initcall.init : {
65*bcbe40ebSSam Ravnborg		__initcall_start = .;
66*bcbe40ebSSam Ravnborg		INITCALLS
671da177e4SLinus Torvalds	__initcall_end = .;
68*bcbe40ebSSam Ravnborg	}
69*bcbe40ebSSam Ravnborg	.con_initcall.init : {
701da177e4SLinus Torvalds		__con_initcall_start = .;
71*bcbe40ebSSam Ravnborg		*(.con_initcall.init)
721da177e4SLinus Torvalds		__con_initcall_end = .;
73*bcbe40ebSSam Ravnborg	}
741da177e4SLinus Torvalds	SECURITY_INIT
7567d38229SJean-Paul Saman
7667d38229SJean-Paul Saman#ifdef CONFIG_BLK_DEV_INITRD
77*bcbe40ebSSam Ravnborg	. = ALIGN(PAGE_SIZE);
78*bcbe40ebSSam Ravnborg	.init.ramfs : {
791da177e4SLinus Torvalds	__initramfs_start = .;
80*bcbe40ebSSam Ravnborg		*(.init.ramfs)
811da177e4SLinus Torvalds	__initramfs_end = .;
82*bcbe40ebSSam Ravnborg	}
8367d38229SJean-Paul Saman#endif
8467d38229SJean-Paul Saman
85*bcbe40ebSSam Ravnborg	PERCPU(PAGE_SIZE)
86*bcbe40ebSSam Ravnborg	. = ALIGN(PAGE_SIZE);
871da177e4SLinus Torvalds	__init_end = .;
881da177e4SLinus Torvalds	. = ALIGN(32);
89*bcbe40ebSSam Ravnborg	.data.cacheline_aligned : {
90*bcbe40ebSSam Ravnborg		*(.data.cacheline_aligned)
91*bcbe40ebSSam Ravnborg	}
921da177e4SLinus Torvalds
931da177e4SLinus Torvalds	__bss_start = .;
94*bcbe40ebSSam Ravnborg	.sbss : {
95*bcbe40ebSSam Ravnborg		*(.sbss)
96*bcbe40ebSSam Ravnborg		*(.scommon) }
97*bcbe40ebSSam Ravnborg	.bss : {
981da177e4SLinus Torvalds		*(.dynbss)
991da177e4SLinus Torvalds		*(.bss)
1001da177e4SLinus Torvalds		*(COMMON)
1011da177e4SLinus Torvalds	}
1021da177e4SLinus Torvalds	_end = . ;
1031da177e4SLinus Torvalds	PROVIDE (end = .);
104*bcbe40ebSSam Ravnborg	/DISCARD/ : {
105*bcbe40ebSSam Ravnborg		*(.exit.text)
106*bcbe40ebSSam Ravnborg		*(.exit.data)
107*bcbe40ebSSam Ravnborg		*(.exitcall.exit)
108*bcbe40ebSSam Ravnborg	}
109d5784b57SDavid S. Miller
110d5784b57SDavid S. Miller	STABS_DEBUG
111d5784b57SDavid S. Miller	DWARF_DEBUG
1121da177e4SLinus Torvalds}
113