xref: /netbsd-src/sys/arch/usermode/conf/kern.ldscript (revision 8d1d12c464f91a145a371deaaa0f0beab6d3057f)
1*8d1d12c4Sreinoud/*	$NetBSD: kern.ldscript,v 1.2 2018/08/17 20:16:07 reinoud Exp $	*/
28f00e4c5Sreinoud
38f00e4c5Sreinoud#include "assym.h"
48f00e4c5Sreinoud
5*8d1d12c4Sreinoud__PAGE_SIZE = 0x1000 ;
6*8d1d12c4Sreinoud
78f00e4c5SreinoudENTRY(_start)
88f00e4c5SreinoudSECTIONS
98f00e4c5Sreinoud{
108f00e4c5Sreinoud	/* Read-only sections, merged into text segment: */
118f00e4c5Sreinoud	.text :
128f00e4c5Sreinoud	{
13*8d1d12c4Sreinoud		. = ALIGN(__PAGE_SIZE);
14*8d1d12c4Sreinoud		*(.text.user)
15*8d1d12c4Sreinoud		. = ALIGN(__PAGE_SIZE);
168f00e4c5Sreinoud		*(.text)
178f00e4c5Sreinoud		*(.text.*)
188f00e4c5Sreinoud		*(.stub)
19*8d1d12c4Sreinoud		. = ALIGN(__PAGE_SIZE);
20*8d1d12c4Sreinoud	} =0xCC
21*8d1d12c4Sreinoud
228f00e4c5Sreinoud	_etext = . ;
238f00e4c5Sreinoud	PROVIDE (etext = .) ;
248f00e4c5Sreinoud
25*8d1d12c4Sreinoud	. = ALIGN(__PAGE_SIZE);
268f00e4c5Sreinoud	.rodata :
278f00e4c5Sreinoud	{
288f00e4c5Sreinoud		*(.rodata)
298f00e4c5Sreinoud		*(.rodata.*)
308f00e4c5Sreinoud	}
318f00e4c5Sreinoud
328f00e4c5Sreinoud	/*
338f00e4c5Sreinoud	 * Adjust the address for the data segment.  We want to adjust up to
348f00e4c5Sreinoud	 * the same address within the page on the next page up.
358f00e4c5Sreinoud	 */
36*8d1d12c4Sreinoud	. = ALIGN(__PAGE_SIZE);
378f00e4c5Sreinoud	__data_start = . ;
388f00e4c5Sreinoud	.data :
398f00e4c5Sreinoud	{
408f00e4c5Sreinoud		*(.data)
418f00e4c5Sreinoud	}
428f00e4c5Sreinoud
438f00e4c5Sreinoud	. = ALIGN(COHERENCY_UNIT);
448f00e4c5Sreinoud	.data.cacheline_aligned :
458f00e4c5Sreinoud	{
468f00e4c5Sreinoud		*(.data.cacheline_aligned)
478f00e4c5Sreinoud	}
488f00e4c5Sreinoud	. = ALIGN(COHERENCY_UNIT);
498f00e4c5Sreinoud	.data.read_mostly :
508f00e4c5Sreinoud	{
518f00e4c5Sreinoud		*(.data.read_mostly)
528f00e4c5Sreinoud	}
538f00e4c5Sreinoud	. = ALIGN(COHERENCY_UNIT);
548f00e4c5Sreinoud
558f00e4c5Sreinoud	_edata = . ;
568f00e4c5Sreinoud	PROVIDE (edata = .) ;
578f00e4c5Sreinoud	__bss_start = . ;
588f00e4c5Sreinoud	.bss :
598f00e4c5Sreinoud	{
608f00e4c5Sreinoud		*(.bss)
618f00e4c5Sreinoud		*(.bss.*)
628f00e4c5Sreinoud		*(COMMON)
638f00e4c5Sreinoud	}
648f00e4c5Sreinoud
65*8d1d12c4Sreinoud	. = ALIGN(__PAGE_SIZE);
66*8d1d12c4Sreinoud	_end = . ;
67*8d1d12c4Sreinoud	PROVIDE (end = .) ;
68*8d1d12c4Sreinoud
69*8d1d12c4Sreinoud	/*
70*8d1d12c4Sreinoud	 * .note.netbsd.ident :
71*8d1d12c4Sreinoud	 * {
72*8d1d12c4Sreinoud	 * 	KEEP(*(.note.netbsd.ident));
73*8d1d12c4Sreinoud	 * }
74*8d1d12c4Sreinoud	 */
758f00e4c5Sreinoud}
76*8d1d12c4Sreinoud
77