kern.ldscript revision 1.1
11.1Sreinoud/*	$NetBSD: kern.ldscript,v 1.1 2018/05/18 19:04:10 reinoud Exp $	*/
21.1Sreinoud
31.1Sreinoud#include "assym.h"
41.1Sreinoud
51.1SreinoudENTRY(_start)
61.1SreinoudSECTIONS
71.1Sreinoud{
81.1Sreinoud	/* Read-only sections, merged into text segment: */
91.1Sreinoud	.text :
101.1Sreinoud	{
111.1Sreinoud		*(.text)
121.1Sreinoud		*(.text.*)
131.1Sreinoud		*(.stub)
141.1Sreinoud	}
151.1Sreinoud	_etext = . ;
161.1Sreinoud	PROVIDE (etext = .) ;
171.1Sreinoud
181.1Sreinoud	.rodata :
191.1Sreinoud	{
201.1Sreinoud		*(.rodata)
211.1Sreinoud		*(.rodata.*)
221.1Sreinoud	}
231.1Sreinoud
241.1Sreinoud	/*
251.1Sreinoud	 * Adjust the address for the data segment.  We want to adjust up to
261.1Sreinoud	 * the same address within the page on the next page up.
271.1Sreinoud	 */
281.1Sreinoud	. = ALIGN(0x100000) + (. & (0x100000 - 1));
291.1Sreinoud	__data_start = . ;
301.1Sreinoud	.data :
311.1Sreinoud	{
321.1Sreinoud		*(.data)
331.1Sreinoud	}
341.1Sreinoud
351.1Sreinoud	. = ALIGN(COHERENCY_UNIT);
361.1Sreinoud	.data.cacheline_aligned :
371.1Sreinoud	{
381.1Sreinoud		*(.data.cacheline_aligned)
391.1Sreinoud	}
401.1Sreinoud	. = ALIGN(COHERENCY_UNIT);
411.1Sreinoud	.data.read_mostly :
421.1Sreinoud	{
431.1Sreinoud		*(.data.read_mostly)
441.1Sreinoud	}
451.1Sreinoud	. = ALIGN(COHERENCY_UNIT);
461.1Sreinoud
471.1Sreinoud	_edata = . ;
481.1Sreinoud	PROVIDE (edata = .) ;
491.1Sreinoud	__bss_start = . ;
501.1Sreinoud	.bss :
511.1Sreinoud	{
521.1Sreinoud		*(.bss)
531.1Sreinoud		*(.bss.*)
541.1Sreinoud		*(COMMON)
551.1Sreinoud		. = ALIGN(64 / 8);
561.1Sreinoud	}
571.1Sreinoud	. = ALIGN(64 / 8);
581.1Sreinoud	_end = . ;
591.1Sreinoud	PROVIDE (end = .) ;
601.1Sreinoud	.note.netbsd.ident :
611.1Sreinoud	{
621.1Sreinoud		KEEP(*(.note.netbsd.ident));
631.1Sreinoud	}
641.1Sreinoud}
651.1Sreinoud
661.1SreinoudSECTIONS
671.1Sreinoud{
681.1Sreinoud	.text :
691.1Sreinoud	AT (ADDR(.text) & 0x0fffffff)
701.1Sreinoud	{
711.1Sreinoud		*(.text)
721.1Sreinoud	} = 0
731.1Sreinoud}
74