kern.ldscript revision 1.18
11.17Smaxv/* $NetBSD: kern.ldscript,v 1.18 2016/05/08 08:30:41 maxv Exp $ */ 21.1Sfvdl 31.15Suebayasi#include "assym.h" 41.15Suebayasi 51.17Smaxv/* 61.17Smaxv * PAE is enabled by default on amd64, the large page size is therefore 71.17Smaxv * 2MB (and not 4MB!). 81.17Smaxv */ 91.17Smaxv 101.17Smaxv__PAGE_SIZE = 0x1000 ; 111.17Smaxv__LARGE_PAGE_SIZE = 0x200000 ; 121.17Smaxv 131.1SfvdlENTRY(_start) 141.1SfvdlSECTIONS 151.1Sfvdl{ 161.16Smaxv /* Read-only sections, merged into text segment: */ 171.16Smaxv .text : 181.16Smaxv { 191.16Smaxv *(.text) 201.16Smaxv *(.text.*) 211.16Smaxv *(.stub) 221.16Smaxv } 231.16Smaxv _etext = . ; 241.16Smaxv PROVIDE (etext = .) ; 251.16Smaxv 261.18Smaxv __rodata_start = . ; 271.16Smaxv .rodata : 281.16Smaxv { 291.16Smaxv *(.rodata) 301.16Smaxv *(.rodata.*) 311.16Smaxv } 321.16Smaxv 331.16Smaxv /* 341.17Smaxv * Push the data segment up to the next large page boundary so that we 351.17Smaxv * can map the text+rodata segments with large pages. 361.16Smaxv */ 371.17Smaxv . = ALIGN(__LARGE_PAGE_SIZE); 381.17Smaxv 391.16Smaxv __data_start = . ; 401.16Smaxv .data : 411.16Smaxv { 421.16Smaxv *(.data) 431.16Smaxv } 441.16Smaxv 451.16Smaxv . = ALIGN(COHERENCY_UNIT); 461.16Smaxv .data.cacheline_aligned : 471.16Smaxv { 481.16Smaxv *(.data.cacheline_aligned) 491.16Smaxv } 501.16Smaxv . = ALIGN(COHERENCY_UNIT); 511.16Smaxv .data.read_mostly : 521.16Smaxv { 531.16Smaxv *(.data.read_mostly) 541.16Smaxv } 551.16Smaxv . = ALIGN(COHERENCY_UNIT); 561.16Smaxv 571.16Smaxv _edata = . ; 581.16Smaxv PROVIDE (edata = .) ; 591.16Smaxv __bss_start = . ; 601.16Smaxv .bss : 611.16Smaxv { 621.16Smaxv *(.bss) 631.16Smaxv *(.bss.*) 641.16Smaxv *(COMMON) 651.16Smaxv . = ALIGN(64 / 8); 661.16Smaxv } 671.16Smaxv . = ALIGN(64 / 8); 681.16Smaxv _end = . ; 691.16Smaxv PROVIDE (end = .) ; 701.16Smaxv .note.netbsd.ident : 711.16Smaxv { 721.16Smaxv KEEP(*(.note.netbsd.ident)); 731.16Smaxv } 741.1Sfvdl} 751.16Smaxv 761.11SuebayasiSECTIONS 771.11Suebayasi{ 781.16Smaxv .text : 791.16Smaxv AT (ADDR(.text) & 0x0fffffff) 801.16Smaxv { 811.16Smaxv *(.text) 821.16Smaxv } = 0 831.11Suebayasi} 84