kern.ldscript revision 1.19
11.19Smaxv/*	$NetBSD: kern.ldscript,v 1.19 2016/05/14 08:19:42 maxv Exp $	*/
21.1Sthorpej
31.15Suebayasi#include "assym.h"
41.15Suebayasi
51.18Smaxv__PAGE_SIZE = 0x1000 ;
61.18Smaxv
71.1SthorpejENTRY(_start)
81.1SthorpejSECTIONS
91.1Sthorpej{
101.16Smaxv	.text :
111.16Smaxv	{
121.16Smaxv		*(.text)
131.16Smaxv		*(.text.*)
141.16Smaxv		*(.stub)
151.16Smaxv	}
161.16Smaxv	_etext = . ;
171.16Smaxv	PROVIDE (etext = .) ;
181.16Smaxv
191.19Smaxv	. = ALIGN(__PAGE_SIZE);
201.17Smaxv
211.17Smaxv	__rodata_start = . ;
221.16Smaxv	.rodata :
231.16Smaxv	{
241.16Smaxv		*(.rodata)
251.16Smaxv		*(.rodata.*)
261.16Smaxv	}
271.16Smaxv
281.19Smaxv	. = ALIGN(__PAGE_SIZE);
291.19Smaxv
301.16Smaxv	__data_start = . ;
311.16Smaxv	.data :
321.16Smaxv	{
331.16Smaxv		*(.data)
341.16Smaxv	}
351.16Smaxv
361.16Smaxv	. = ALIGN(COHERENCY_UNIT);
371.16Smaxv	.data.cacheline_aligned :
381.16Smaxv	{
391.16Smaxv		*(.data.cacheline_aligned)
401.16Smaxv	}
411.16Smaxv	. = ALIGN(COHERENCY_UNIT);
421.16Smaxv	.data.read_mostly :
431.16Smaxv	{
441.16Smaxv		*(.data.read_mostly)
451.16Smaxv	}
461.16Smaxv	. = ALIGN(COHERENCY_UNIT);
471.18Smaxv
481.16Smaxv	_edata = . ;
491.16Smaxv	PROVIDE (edata = .) ;
501.16Smaxv	__bss_start = . ;
511.16Smaxv	.bss :
521.16Smaxv	{
531.16Smaxv		*(.bss)
541.16Smaxv		*(.bss.*)
551.16Smaxv		*(COMMON)
561.19Smaxv		. = ALIGN(32 / 8);
571.16Smaxv	}
581.18Smaxv
591.18Smaxv	. = ALIGN(__PAGE_SIZE);
601.18Smaxv
611.18Smaxv	/* End of the kernel image */
621.18Smaxv	__kernel_end = . ;
631.18Smaxv
641.16Smaxv	_end = . ;
651.16Smaxv	PROVIDE (end = .) ;
661.16Smaxv	.note.netbsd.ident :
671.16Smaxv	{
681.16Smaxv		KEEP(*(.note.netbsd.ident));
691.16Smaxv	}
701.1Sthorpej}
711.16Smaxv
721.13SuebayasiSECTIONS
731.13Suebayasi{
741.16Smaxv	.text :
751.16Smaxv	AT (ADDR(.text) & 0x0fffffff)
761.16Smaxv	{
771.16Smaxv		*(.text)
781.16Smaxv	} = 0
791.13Suebayasi}
80