xref: /netbsd-src/sys/arch/i386/conf/kern.ldscript (revision 946379e7b37692fc43f68eb0d1c10daa0a7f3b6c)
1/*	$NetBSD: kern.ldscript,v 1.16 2015/11/28 18:08:40 maxv Exp $	*/
2
3#include "assym.h"
4
5ENTRY(_start)
6SECTIONS
7{
8	/* Read-only sections, merged into text segment: */
9	.text :
10	{
11		*(.text)
12		*(.text.*)
13		*(.stub)
14	}
15	_etext = . ;
16	PROVIDE (etext = .) ;
17
18	.rodata :
19	{
20		*(.rodata)
21		*(.rodata.*)
22	}
23
24	/*
25	 * Adjust the address for the data segment.  We want to adjust up to
26	 * the same address within the page on the next page up.
27	 */
28	. = ALIGN(0x1000) + (. & (0x1000 - 1));
29	__data_start = . ;
30	.data :
31	{
32		*(.data)
33	}
34
35	. = ALIGN(COHERENCY_UNIT);
36	.data.cacheline_aligned :
37	{
38		*(.data.cacheline_aligned)
39	}
40	. = ALIGN(COHERENCY_UNIT);
41	.data.read_mostly :
42	{
43		*(.data.read_mostly)
44	}
45	. = ALIGN(COHERENCY_UNIT);
46	_edata = . ;
47	PROVIDE (edata = .) ;
48	__bss_start = . ;
49	.bss :
50	{
51		*(.bss)
52		*(.bss.*)
53		*(COMMON)
54	. = ALIGN(32 / 8);
55	}
56	. = ALIGN(32 / 8);
57	_end = . ;
58	PROVIDE (end = .) ;
59	.note.netbsd.ident :
60	{
61		KEEP(*(.note.netbsd.ident));
62	}
63}
64
65SECTIONS
66{
67	.text :
68	AT (ADDR(.text) & 0x0fffffff)
69	{
70		*(.text)
71	} = 0
72}
73