1 1.7 uebayasi /* $NetBSD: kern.ldscript.Xen,v 1.7 2015/08/20 07:00:48 uebayasi Exp $ */ 2 1.1 pavel 3 1.1 pavel OUTPUT_FORMAT("elf32-i386", "elf32-i386", 4 1.1 pavel "elf32-i386") 5 1.1 pavel OUTPUT_ARCH(i386) 6 1.1 pavel SECTIONS 7 1.1 pavel { 8 1.7 uebayasi /* Read-only sections, merged into text segment: */ 9 1.7 uebayasi .text : 10 1.7 uebayasi { 11 1.7 uebayasi *(.text) 12 1.7 uebayasi *(.text.*) 13 1.7 uebayasi *(.stub) 14 1.7 uebayasi } =0 15 1.7 uebayasi _etext = . ; 16 1.7 uebayasi PROVIDE (etext = .) ; 17 1.1 pavel 18 1.7 uebayasi .rodata : 19 1.7 uebayasi { 20 1.7 uebayasi *(.rodata) 21 1.7 uebayasi *(.rodata.*) 22 1.7 uebayasi } 23 1.3 yamt 24 1.7 uebayasi /* Adjust the address for the data segment. We want to adjust up to 25 1.7 uebayasi the same address within the page on the next page up. */ 26 1.7 uebayasi . = ALIGN(0x1000) + (. & (0x1000 - 1)); 27 1.7 uebayasi __data_start = . ; 28 1.7 uebayasi .data : 29 1.7 uebayasi { 30 1.7 uebayasi *(.data) 31 1.7 uebayasi } 32 1.7 uebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 33 1.7 uebayasi .data.cacheline_aligned : 34 1.7 uebayasi AT (LOADADDR(.text) + (ADDR(.data.cacheline_aligned) - ADDR(.text))) 35 1.7 uebayasi { 36 1.7 uebayasi *(.data.cacheline_aligned) 37 1.7 uebayasi } 38 1.7 uebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 39 1.7 uebayasi .data.read_mostly : 40 1.7 uebayasi AT (LOADADDR(.text) + (ADDR(.data.read_mostly) - ADDR(.text))) 41 1.7 uebayasi { 42 1.7 uebayasi *(.data.read_mostly) 43 1.7 uebayasi } 44 1.7 uebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 45 1.7 uebayasi _edata = . ; 46 1.7 uebayasi PROVIDE (edata = .) ; 47 1.7 uebayasi __bss_start = . ; 48 1.7 uebayasi .bss : 49 1.7 uebayasi { 50 1.7 uebayasi *(.bss) 51 1.7 uebayasi *(.bss.*) 52 1.7 uebayasi *(COMMON) 53 1.7 uebayasi . = ALIGN(32 / 8); 54 1.7 uebayasi } 55 1.7 uebayasi . = ALIGN(32 / 8); 56 1.1 pavel _end = . ; 57 1.1 pavel PROVIDE (end = .) ; 58 1.2 christos .note.netbsd.ident : 59 1.2 christos { 60 1.2 christos KEEP(*(.note.netbsd.ident)); 61 1.2 christos } 62 1.1 pavel } 63