xref: /netbsd-src/sys/arch/i386/conf/kern.ldscript (revision 2bb1a633694e27a18f04d981072ae2f28d1fc91e)
1/*	$NetBSD: kern.ldscript,v 1.22 2018/06/24 18:24:53 maxv Exp $	*/
2
3#include "assym.h"
4
5__PAGE_SIZE = 0x1000 ;
6
7ENTRY(_start)
8SECTIONS
9{
10	.text : AT (ADDR(.text) & 0x0fffffff)
11	{
12		*(.text)
13		*(.text.*)
14		*(.stub)
15		. = ALIGN(__PAGE_SIZE);
16	} =0xCC
17	_etext = . ;
18	PROVIDE (etext = .) ;
19
20	. = ALIGN(__PAGE_SIZE);
21
22	__rodata_start = . ;
23
24	.rodata.hotpatch :
25	{
26		__rodata_hotpatch_start = . ;
27		*(.rodata.hotpatch)
28		__rodata_hotpatch_end = . ;
29	}
30
31	.rodata :
32	{
33		*(.rodata)
34		*(.rodata.*)
35	}
36
37	. = ALIGN(__PAGE_SIZE);
38
39	__data_start = . ;
40	.data :
41	{
42		*(.data)
43	}
44
45	. = ALIGN(COHERENCY_UNIT);
46	.data.cacheline_aligned :
47	{
48		*(.data.cacheline_aligned)
49	}
50	. = ALIGN(COHERENCY_UNIT);
51	.data.read_mostly :
52	{
53		*(.data.read_mostly)
54	}
55	. = ALIGN(COHERENCY_UNIT);
56
57	_edata = . ;
58	PROVIDE (edata = .) ;
59	__bss_start = . ;
60	.bss :
61	{
62		*(.bss)
63		*(.bss.*)
64		*(COMMON)
65		. = ALIGN(__PAGE_SIZE);
66	}
67
68	. = ALIGN(__PAGE_SIZE);
69
70	/* End of the kernel image */
71	__kernel_end = . ;
72
73	_end = . ;
74	PROVIDE (end = .) ;
75	.note.netbsd.ident :
76	{
77		KEEP(*(.note.netbsd.ident));
78	}
79}
80
81