kern-mb.ldscript revision 1.2
11.2Suebayasi/* $NetBSD: kern-mb.ldscript,v 1.2 2015/08/20 07:00:49 uebayasi Exp $ */ 21.1Smatt 31.1Smatt/* ldscript for NetBSD/powerpc kernels and LKMs */ 41.1SmattOUTPUT_ARCH(powerpc) 51.1SmattENTRY(_start) 61.1SmattSEARCH_DIR(/lib); 71.1Smatt/* Do we need any of these? 81.1Smatt __DYNAMIC = 0; */ 91.1Smatt_DYNAMIC_LINK = 0; 101.1SmattSECTIONS 111.1Smatt{ 121.1Smatt /* Read-only sections, merged into text segment. Assumes the 131.1Smatt kernel Makefile sets the start address via -Ttext. */ 141.1Smatt .text : 151.1Smatt { 161.1Smatt _ftext = . ; 171.1Smatt *(.text) 181.1Smatt __stub_start = .; 191.1Smatt *(.stub) 201.1Smatt __stub_end = .; 211.1Smatt __stub_pmap_start = .; 221.1Smatt *(.stub.pmap) 231.1Smatt __stub_pmap_end = .; 241.1Smatt *(.gnu.warning) 251.1Smatt } =0 261.1Smatt _etext = .; 271.1Smatt PROVIDE (etext = .); 281.1Smatt .rodata : { *(.rodata) *(.rodata.*) } 291.1Smatt .reginfo : { *(.reginfo) } 301.1Smatt . = ALIGN(0x100000); 311.1Smatt .data : 321.1Smatt { 331.1Smatt _fdata = . ; 341.1Smatt *(.data) 351.1Smatt CONSTRUCTORS 361.1Smatt } 371.1Smatt .data1 : { *(.data1) } 381.1Smatt . = ALIGN(32); /* COHERENCY UNIT */ 391.1Smatt .data.cacheline_aligned : { *(.data.cacheline_aligned) } 401.1Smatt . = ALIGN(32); /* COHERENCY UNIT */ 411.1Smatt .data.read_mostly : { *(.data.read_mostly) } 421.1Smatt . = ALIGN(32); /* COHERENCY UNIT */ 431.1Smatt _gp = ALIGN(16) + 0x7ff0; 441.1Smatt .lit8 : { *(.lit8) } 451.1Smatt .lit4 : { *(.lit4) } 461.1Smatt .sdata : { *(.sdata) } 471.1Smatt _edata = .; 481.1Smatt PROVIDE (edata = .); 491.1Smatt __bss_start = .; 501.1Smatt _fbss = .; 511.1Smatt .sbss : { *(.sbss) *(.scommon) } 521.1Smatt .bss : 531.1Smatt { 541.2Suebayasi *(.bss) 551.2Suebayasi *(COMMON) 561.1Smatt } 571.1Smatt _end = . ; 581.1Smatt PROVIDE (end = .); 591.1Smatt /* These are needed for ELF backends which have not yet been 601.1Smatt converted to the new style linker. */ 611.1Smatt .stab 0 : { *(.stab) } 621.1Smatt .stabstr 0 : { *(.stabstr) } 631.1Smatt /* DWARF debug sections. 641.1Smatt Symbols in the .debug DWARF section are relative to the beginning of the 651.1Smatt section so we begin .debug at 0. It's not clear yet what needs to happen 661.1Smatt for the others. */ 671.1Smatt .debug 0 : { *(.debug) } 681.1Smatt .debug_srcinfo 0 : { *(.debug_srcinfo) } 691.1Smatt .debug_aranges 0 : { *(.debug_aranges) } 701.1Smatt .debug_pubnames 0 : { *(.debug_pubnames) } 711.1Smatt .debug_sfnames 0 : { *(.debug_sfnames) } 721.1Smatt .line 0 : { *(.line) } 731.1Smatt /* These must appear regardless of . */ 741.1Smatt .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) } 751.1Smatt .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) } 761.1Smatt} 77