1 1.6 uebayasi /* $NetBSD: kern.ldscript.Xen,v 1.6 2014/11/02 17:58:14 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.1 pavel /* Read-only sections, merged into text segment: */ 9 1.1 pavel .text : 10 1.1 pavel { 11 1.1 pavel *(.text) 12 1.1 pavel *(.text.*) 13 1.1 pavel *(.stub) 14 1.1 pavel } =0 15 1.1 pavel _etext = . ; 16 1.1 pavel PROVIDE (etext = .) ; 17 1.1 pavel 18 1.3 yamt .rodata : 19 1.3 yamt { 20 1.3 yamt *(.rodata) 21 1.3 yamt *(.rodata.*) 22 1.3 yamt } 23 1.3 yamt 24 1.1 pavel /* Adjust the address for the data segment. We want to adjust up to 25 1.1 pavel the same address within the page on the next page up. */ 26 1.1 pavel . = ALIGN(0x1000) + (. & (0x1000 - 1)); 27 1.3 yamt __data_start = . ; 28 1.1 pavel .data : 29 1.1 pavel { 30 1.1 pavel *(.data) 31 1.6 uebayasi } 32 1.6 uebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 33 1.6 uebayasi .data.cacheline_aligned : 34 1.6 uebayasi AT (LOADADDR(.text) + (ADDR(.data.cacheline_aligned) - ADDR(.text))) 35 1.6 uebayasi { 36 1.4 chs *(.data.cacheline_aligned) 37 1.6 uebayasi } 38 1.6 uebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 39 1.6 uebayasi .data.read_mostly : 40 1.6 uebayasi AT (LOADADDR(.text) + (ADDR(.data.read_mostly) - ADDR(.text))) 41 1.6 uebayasi { 42 1.4 chs *(.data.read_mostly) 43 1.4 chs } 44 1.4 chs . = ALIGN(64); /* COHERENCY_UNIT */ 45 1.1 pavel _edata = . ; 46 1.1 pavel PROVIDE (edata = .) ; 47 1.1 pavel __bss_start = . ; 48 1.1 pavel .bss : 49 1.1 pavel { 50 1.1 pavel *(.bss) 51 1.1 pavel *(.bss.*) 52 1.1 pavel *(COMMON) 53 1.1 pavel . = ALIGN(32 / 8); 54 1.1 pavel } 55 1.1 pavel . = 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