11.5Smaxv/*	$NetBSD: kern.ldscript.kaslr,v 1.5 2018/01/21 11:21:40 maxv Exp $	*/
21.1Smaxv
31.1Smaxv#include "assym.h"
41.1Smaxv
51.1SmaxvENTRY(_start)
61.1SmaxvSECTIONS
71.1Smaxv{
81.5Smaxv	.text.user : SUBALIGN(PAGE_SIZE)
91.5Smaxv	{
101.5Smaxv		__text_user_start = . ;
111.5Smaxv		*(.text.user)
121.5Smaxv		. = ALIGN(PAGE_SIZE);
131.5Smaxv		__text_user_end = . ;
141.5Smaxv	} =0xCC
151.5Smaxv
161.1Smaxv	.text :
171.1Smaxv	{
181.1Smaxv		*(.text)
191.1Smaxv		*(.text.*)
201.1Smaxv		*(.stub)
211.1Smaxv	} =0xCC
221.1Smaxv	_etext = . ;
231.1Smaxv	PROVIDE (etext = .) ;
241.1Smaxv
251.1Smaxv	__rodata_start = . ;
261.4Smaxv
271.4Smaxv	.rodata.hotpatch :
281.4Smaxv	{
291.4Smaxv		__rodata_hotpatch_start = . ;
301.4Smaxv		*(.rodata.hotpatch)
311.4Smaxv		__rodata_hotpatch_end = . ;
321.4Smaxv	}
331.4Smaxv
341.1Smaxv	.rodata :
351.1Smaxv	{
361.1Smaxv		*(.rodata)
371.1Smaxv		*(.rodata.*)
381.1Smaxv	}
391.1Smaxv
401.1Smaxv	__data_start = . ;
411.1Smaxv	.data :
421.1Smaxv	{
431.1Smaxv		*(.data)
441.1Smaxv	}
451.1Smaxv
461.2Smaxv	.data.cacheline_aligned : SUBALIGN(COHERENCY_UNIT)
471.1Smaxv	{
481.1Smaxv		*(.data.cacheline_aligned)
491.2Smaxv		. = ALIGN(COHERENCY_UNIT);
501.1Smaxv	}
511.2Smaxv	.data.read_mostly : SUBALIGN(COHERENCY_UNIT)
521.1Smaxv	{
531.1Smaxv		*(.data.read_mostly)
541.2Smaxv		. = ALIGN(COHERENCY_UNIT);
551.1Smaxv	}
561.1Smaxv
571.1Smaxv	_edata = . ;
581.1Smaxv	PROVIDE (edata = .) ;
591.1Smaxv	__bss_start = . ;
601.1Smaxv	.bss :
611.1Smaxv	{
621.1Smaxv		*(.bss)
631.1Smaxv		*(.bss.*)
641.1Smaxv		*(COMMON)
651.1Smaxv	}
661.1Smaxv
671.1Smaxv	/* End of the kernel image */
681.1Smaxv	__kernel_end = . ;
691.1Smaxv
701.1Smaxv	_end = . ;
711.1Smaxv	PROVIDE (end = .) ;
721.1Smaxv	.note.netbsd.ident :
731.1Smaxv	{
741.1Smaxv		KEEP(*(.note.netbsd.ident));
751.1Smaxv	}
761.3Smaxv
771.3Smaxv	/DISCARD/ :
781.3Smaxv	{
791.3Smaxv		*(.SUNW_ctf)
801.3Smaxv		*(.SUNW_ctf.*)
811.3Smaxv	}
821.1Smaxv}
83