1 1.2 reinoud /* $NetBSD: kern.ldscript,v 1.2 2018/08/17 20:16:07 reinoud Exp $ */ 2 1.1 reinoud 3 1.1 reinoud #include "assym.h" 4 1.1 reinoud 5 1.2 reinoud __PAGE_SIZE = 0x1000 ; 6 1.2 reinoud 7 1.1 reinoud ENTRY(_start) 8 1.1 reinoud SECTIONS 9 1.1 reinoud { 10 1.1 reinoud /* Read-only sections, merged into text segment: */ 11 1.1 reinoud .text : 12 1.1 reinoud { 13 1.2 reinoud . = ALIGN(__PAGE_SIZE); 14 1.2 reinoud *(.text.user) 15 1.2 reinoud . = ALIGN(__PAGE_SIZE); 16 1.1 reinoud *(.text) 17 1.1 reinoud *(.text.*) 18 1.1 reinoud *(.stub) 19 1.2 reinoud . = ALIGN(__PAGE_SIZE); 20 1.2 reinoud } =0xCC 21 1.2 reinoud 22 1.1 reinoud _etext = . ; 23 1.1 reinoud PROVIDE (etext = .) ; 24 1.1 reinoud 25 1.2 reinoud . = ALIGN(__PAGE_SIZE); 26 1.1 reinoud .rodata : 27 1.1 reinoud { 28 1.1 reinoud *(.rodata) 29 1.1 reinoud *(.rodata.*) 30 1.1 reinoud } 31 1.1 reinoud 32 1.1 reinoud /* 33 1.1 reinoud * Adjust the address for the data segment. We want to adjust up to 34 1.1 reinoud * the same address within the page on the next page up. 35 1.1 reinoud */ 36 1.2 reinoud . = ALIGN(__PAGE_SIZE); 37 1.1 reinoud __data_start = . ; 38 1.1 reinoud .data : 39 1.1 reinoud { 40 1.1 reinoud *(.data) 41 1.1 reinoud } 42 1.1 reinoud 43 1.1 reinoud . = ALIGN(COHERENCY_UNIT); 44 1.1 reinoud .data.cacheline_aligned : 45 1.1 reinoud { 46 1.1 reinoud *(.data.cacheline_aligned) 47 1.1 reinoud } 48 1.1 reinoud . = ALIGN(COHERENCY_UNIT); 49 1.1 reinoud .data.read_mostly : 50 1.1 reinoud { 51 1.1 reinoud *(.data.read_mostly) 52 1.1 reinoud } 53 1.1 reinoud . = ALIGN(COHERENCY_UNIT); 54 1.1 reinoud 55 1.1 reinoud _edata = . ; 56 1.1 reinoud PROVIDE (edata = .) ; 57 1.1 reinoud __bss_start = . ; 58 1.1 reinoud .bss : 59 1.1 reinoud { 60 1.1 reinoud *(.bss) 61 1.1 reinoud *(.bss.*) 62 1.1 reinoud *(COMMON) 63 1.1 reinoud } 64 1.2 reinoud 65 1.2 reinoud . = ALIGN(__PAGE_SIZE); 66 1.1 reinoud _end = . ; 67 1.1 reinoud PROVIDE (end = .) ; 68 1.2 reinoud 69 1.2 reinoud /* 70 1.2 reinoud * .note.netbsd.ident : 71 1.2 reinoud * { 72 1.2 reinoud * KEEP(*(.note.netbsd.ident)); 73 1.2 reinoud * } 74 1.2 reinoud */ 75 1.1 reinoud } 76 1.1 reinoud 77