1 1.6 matt /* $NetBSD: kern.ldscript,v 1.6 2011/02/20 07:45:46 matt Exp $ */ 2 1.1 jonathan 3 1.4 simonb /* ldscript for NetBSD/mips kernels and LKMs */ 4 1.1 jonathan OUTPUT_ARCH(mips) 5 1.1 jonathan ENTRY(_start) 6 1.1 jonathan SEARCH_DIR(/lib); 7 1.1 jonathan /* Do we need any of these? 8 1.1 jonathan __DYNAMIC = 0; */ 9 1.1 jonathan _DYNAMIC_LINK = 0; 10 1.1 jonathan SECTIONS 11 1.1 jonathan { 12 1.2 jonathan /* Read-only sections, merged into text segment. Assumes the 13 1.2 jonathan kernel Makefile sets the start address via -Ttext. */ 14 1.1 jonathan .text : 15 1.1 jonathan { 16 1.1 jonathan _ftext = . ; 17 1.1 jonathan *(.text) 18 1.6 matt __stub_start = . ; 19 1.6 matt *(.stub*) 20 1.6 matt __stub_end = . ; 21 1.1 jonathan *(.gnu.warning) 22 1.1 jonathan } =0 23 1.1 jonathan _etext = .; 24 1.1 jonathan PROVIDE (etext = .); 25 1.5 tsutsui .rodata : { *(.rodata) *(.rodata.*) } 26 1.1 jonathan .reginfo : { *(.reginfo) } 27 1.4 simonb /* . = . + 0x1000; */ 28 1.1 jonathan .data : 29 1.1 jonathan { 30 1.1 jonathan _fdata = . ; 31 1.1 jonathan *(.data) 32 1.1 jonathan CONSTRUCTORS 33 1.6 matt . = ALIGN(32); /* COHERENCY_UNIT */ 34 1.6 matt *(.data.cacheline_aligned) 35 1.6 matt . = ALIGN(32); /* COHERENCY_UNIT */ 36 1.6 matt *(.data.read_mostly) 37 1.6 matt . = ALIGN(32); /* COHERENCY_UNIT */ 38 1.1 jonathan } 39 1.1 jonathan _gp = ALIGN(16) + 0x7ff0; 40 1.1 jonathan .lit8 : { *(.lit8) } 41 1.1 jonathan .lit4 : { *(.lit4) } 42 1.1 jonathan .sdata : { *(.sdata) } 43 1.1 jonathan _edata = .; 44 1.1 jonathan PROVIDE (edata = .); 45 1.1 jonathan __bss_start = .; 46 1.1 jonathan _fbss = .; 47 1.1 jonathan .sbss : { *(.sbss) *(.scommon) } 48 1.1 jonathan .bss : 49 1.1 jonathan { 50 1.1 jonathan *(.bss) 51 1.1 jonathan *(COMMON) 52 1.1 jonathan } 53 1.1 jonathan _end = . ; 54 1.1 jonathan PROVIDE (end = .); 55 1.1 jonathan /* These are needed for ELF backends which have not yet been 56 1.1 jonathan converted to the new style linker. */ 57 1.1 jonathan .stab 0 : { *(.stab) } 58 1.1 jonathan .stabstr 0 : { *(.stabstr) } 59 1.1 jonathan /* DWARF debug sections. 60 1.1 jonathan Symbols in the .debug DWARF section are relative to the beginning of the 61 1.1 jonathan section so we begin .debug at 0. It's not clear yet what needs to happen 62 1.1 jonathan for the others. */ 63 1.1 jonathan .debug 0 : { *(.debug) } 64 1.1 jonathan .debug_srcinfo 0 : { *(.debug_srcinfo) } 65 1.1 jonathan .debug_aranges 0 : { *(.debug_aranges) } 66 1.1 jonathan .debug_pubnames 0 : { *(.debug_pubnames) } 67 1.1 jonathan .debug_sfnames 0 : { *(.debug_sfnames) } 68 1.1 jonathan .line 0 : { *(.line) } 69 1.1 jonathan /* These must appear regardless of . */ 70 1.1 jonathan .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } 71 1.1 jonathan .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } 72 1.1 jonathan } 73