kern.ldscript revision 1.10
11.9Suebayasi/* $NetBSD: kern.ldscript,v 1.10 2015/08/20 08:25:33 uebayasi Exp $ */ 21.1Sfvdl 31.1SfvdlOUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", 41.1Sfvdl "elf64-x86-64") 51.1SfvdlOUTPUT_ARCH(i386:x86-64) 61.1SfvdlENTRY(_start) 71.1SfvdlSECTIONS 81.1Sfvdl{ 91.10Suebayasi /* Read-only sections, merged into text segment: */ 101.10Suebayasi .text : 111.10Suebayasi AT (ADDR(.text) & 0x0fffffff) 121.10Suebayasi { 131.10Suebayasi *(.text) 141.10Suebayasi *(.text.*) 151.10Suebayasi *(.stub) 161.10Suebayasi } =0 171.10Suebayasi _etext = . ; 181.10Suebayasi PROVIDE (etext = .) ; 191.2Schristos 201.10Suebayasi .rodata : 211.10Suebayasi AT (LOADADDR(.text) + (ADDR(.rodata) - ADDR(.text))) 221.10Suebayasi { 231.10Suebayasi *(.rodata) 241.10Suebayasi *(.rodata.*) 251.10Suebayasi } 261.9Suebayasi 271.10Suebayasi /* Adjust the address for the data segment. We want to adjust up to 281.10Suebayasi the same address within the page on the next page up. */ 291.10Suebayasi . = ALIGN(0x100000) + (. & (0x100000 - 1)); 301.10Suebayasi __data_start = . ; 311.10Suebayasi .data : 321.10Suebayasi AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text))) 331.10Suebayasi { 341.10Suebayasi *(.data) 351.10Suebayasi } 361.8Suebayasi 371.10Suebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 381.10Suebayasi .data.cacheline_aligned : 391.10Suebayasi AT (LOADADDR(.text) + (ADDR(.data.cacheline_aligned) - ADDR(.text))) 401.10Suebayasi { 411.10Suebayasi *(.data.cacheline_aligned) 421.10Suebayasi } 431.10Suebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 441.10Suebayasi .data.read_mostly : 451.10Suebayasi AT (LOADADDR(.text) + (ADDR(.data.read_mostly) - ADDR(.text))) 461.10Suebayasi { 471.10Suebayasi *(.data.read_mostly) 481.10Suebayasi } 491.10Suebayasi . = ALIGN(64); /* COHERENCY_UNIT */ 501.8Suebayasi 511.10Suebayasi _edata = . ; 521.10Suebayasi PROVIDE (edata = .) ; 531.10Suebayasi __bss_start = . ; 541.10Suebayasi .bss : 551.10Suebayasi AT (LOADADDR(.text) + (ADDR(.bss) - ADDR(.text))) 561.10Suebayasi { 571.10Suebayasi *(.bss) 581.10Suebayasi *(.bss.*) 591.10Suebayasi *(COMMON) 601.10Suebayasi . = ALIGN(64 / 8); 611.10Suebayasi } 621.10Suebayasi . = ALIGN(64 / 8); 631.2Schristos _end = . ; 641.2Schristos PROVIDE (end = .) ; 651.2Schristos .note.netbsd.ident : 661.1Sfvdl { 671.2Schristos KEEP(*(.note.netbsd.ident)); 681.1Sfvdl } 691.1Sfvdl} 70