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