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