1 1.5 uebayasi /* $NetBSD: kern.ldscript.Xen,v 1.5 2014/11/01 11:58:55 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.5 uebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 32 1.4 chs *(.data.cacheline_aligned) 33 1.5 uebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 34 1.4 chs *(.data.read_mostly) 35 1.5 uebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 36 1.4 chs } 37 1.4 chs . = ALIGN(64); /* COHERENCY_UNIT */ 38 1.1 pavel _edata = . ; 39 1.1 pavel PROVIDE (edata = .) ; 40 1.1 pavel __bss_start = . ; 41 1.1 pavel .bss : 42 1.1 pavel { 43 1.1 pavel *(.bss) 44 1.1 pavel *(.bss.*) 45 1.1 pavel *(COMMON) 46 1.1 pavel . = ALIGN(32 / 8); 47 1.1 pavel } 48 1.1 pavel . = ALIGN(32 / 8); 49 1.1 pavel _end = . ; 50 1.1 pavel PROVIDE (end = .) ; 51 1.2 christos .note.netbsd.ident : 52 1.2 christos { 53 1.2 christos KEEP(*(.note.netbsd.ident)); 54 1.2 christos } 55 1.1 pavel } 56