kern.ldscript revision 1.16
11.16Smaxv/* $NetBSD: kern.ldscript,v 1.16 2015/11/14 14:01:23 maxv Exp $ */ 21.1Sfvdl 31.15Suebayasi#include "assym.h" 41.15Suebayasi 51.1SfvdlENTRY(_start) 61.1SfvdlSECTIONS 71.1Sfvdl{ 81.16Smaxv /* Read-only sections, merged into text segment: */ 91.16Smaxv .text : 101.16Smaxv { 111.16Smaxv *(.text) 121.16Smaxv *(.text.*) 131.16Smaxv *(.stub) 141.16Smaxv } 151.16Smaxv _etext = . ; 161.16Smaxv PROVIDE (etext = .) ; 171.16Smaxv 181.16Smaxv .rodata : 191.16Smaxv { 201.16Smaxv *(.rodata) 211.16Smaxv *(.rodata.*) 221.16Smaxv } 231.16Smaxv 241.16Smaxv /* 251.16Smaxv * Adjust the address for the data segment. We want to adjust up to 261.16Smaxv * the same address within the page on the next page up. 271.16Smaxv */ 281.16Smaxv . = ALIGN(0x100000) + (. & (0x100000 - 1)); 291.16Smaxv __data_start = . ; 301.16Smaxv .data : 311.16Smaxv { 321.16Smaxv *(.data) 331.16Smaxv } 341.16Smaxv 351.16Smaxv . = ALIGN(COHERENCY_UNIT); 361.16Smaxv .data.cacheline_aligned : 371.16Smaxv { 381.16Smaxv *(.data.cacheline_aligned) 391.16Smaxv } 401.16Smaxv . = ALIGN(COHERENCY_UNIT); 411.16Smaxv .data.read_mostly : 421.16Smaxv { 431.16Smaxv *(.data.read_mostly) 441.16Smaxv } 451.16Smaxv . = ALIGN(COHERENCY_UNIT); 461.16Smaxv 471.16Smaxv _edata = . ; 481.16Smaxv PROVIDE (edata = .) ; 491.16Smaxv __bss_start = . ; 501.16Smaxv .bss : 511.16Smaxv { 521.16Smaxv *(.bss) 531.16Smaxv *(.bss.*) 541.16Smaxv *(COMMON) 551.16Smaxv . = ALIGN(64 / 8); 561.16Smaxv } 571.16Smaxv . = ALIGN(64 / 8); 581.16Smaxv _end = . ; 591.16Smaxv PROVIDE (end = .) ; 601.16Smaxv .note.netbsd.ident : 611.16Smaxv { 621.16Smaxv KEEP(*(.note.netbsd.ident)); 631.16Smaxv } 641.1Sfvdl} 651.16Smaxv 661.11SuebayasiSECTIONS 671.11Suebayasi{ 681.16Smaxv .text : 691.16Smaxv AT (ADDR(.text) & 0x0fffffff) 701.16Smaxv { 711.16Smaxv *(.text) 721.16Smaxv } = 0 731.11Suebayasi} 74