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