11.16Suebayasi#undef sparc 21.16Suebayasi 31.1Smrg/* 41.1Smrg * Kernel linker script for NetBSD/sparc. This script is based on 51.1Smrg * elf32_sparc.xn, but puts _etext after all of the read-only sections. 61.1Smrg */ 71.1Smrg 81.1SmrgOUTPUT_FORMAT("elf32-sparc", "elf32-sparc", 91.1Smrg "elf32-sparc") 101.1SmrgOUTPUT_ARCH(sparc) 111.1SmrgENTRY(_start) 121.1Smrg/* Do we need any of these for elf? 131.1Smrg __DYNAMIC = 0; */ 141.1SmrgSECTIONS 151.1Smrg{ 161.1Smrg /* Read-only sections, merged into text segment: */ 171.5Smartin . = 0x10000 + SIZEOF_HEADERS; 181.1Smrg .text : 191.1Smrg { 201.1Smrg *(.text) 211.18Ssimonb *(.text.*) 221.1Smrg *(.stub) 231.1Smrg /* .gnu.warning sections are handled specially by elf32.em. */ 241.1Smrg *(.gnu.warning) 251.1Smrg *(.gnu.linkonce.t*) 261.1Smrg } =0 271.1Smrg .rodata : { *(.rodata) *(.gnu.linkonce.r*) } 281.1Smrg .rodata1 : { *(.rodata1) } 291.1Smrg _etext = .; 301.1Smrg PROVIDE (etext = .); 311.8Schs /* Adjust the address for the data segment. We push the data segment 321.8Schs up to the next 4MB boundary so that we can map the text with large 331.8Schs pages. */ 341.8Schs . = ALIGN(0x400000); 351.1Smrg kernel_data_start = .; 361.1Smrg .data : 371.1Smrg { 381.1Smrg *(.data) 391.1Smrg *(.gnu.linkonce.d*) 401.1Smrg CONSTRUCTORS 411.1Smrg } 421.1Smrg .data1 : { *(.data1) } 431.10Smjf . = ALIGN(64); /* COHERENCY_UNIT */ 441.17Snakayama .data.cacheline_aligned : { *(.data.cacheline_aligned) } 451.10Smjf . = ALIGN(64); /* COHERENCY_UNIT */ 461.10Smjf .data.read_mostly : { *(.data.read_mostly) } 471.10Smjf . = ALIGN(64); /* COHERENCY_UNIT */ 481.1Smrg .plt : { *(.plt) } 491.1Smrg .got : { *(.got.plt) *(.got) } 501.1Smrg .dynamic : { *(.dynamic) } 511.1Smrg /* We want the small data sections together, so single-instruction offsets 521.1Smrg can access them all, and initialized data all before uninitialized, so 531.1Smrg we can shorten the on-disk segment size. */ 541.1Smrg .sdata : { *(.sdata) } 551.1Smrg _edata = .; 561.1Smrg PROVIDE (edata = .); 571.1Smrg __bss_start = .; 581.1Smrg .sbss : { *(.sbss) *(.scommon) } 591.1Smrg .bss : 601.1Smrg { 611.11Suebayasi *(.dynbss) 621.11Suebayasi *(.bss) 631.11Suebayasi *(COMMON) 641.1Smrg } 651.1Smrg . = ALIGN(32 / 8); 661.1Smrg _end = . ; 671.1Smrg PROVIDE (end = .); 681.7Smartin .note.netbsd.ident : 691.7Smartin { 701.7Smartin KEEP(*(.note.netbsd.ident)); 711.7Smartin } 721.1Smrg} 73