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