kern.ldscript revision 1.17
11.17Smaxv/* $NetBSD: kern.ldscript,v 1.17 2016/05/12 06:45:16 maxv Exp $ */ 21.1Sthorpej 31.15Suebayasi#include "assym.h" 41.15Suebayasi 51.1SthorpejENTRY(_start) 61.1SthorpejSECTIONS 71.1Sthorpej{ 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.17Smaxv /* 191.17Smaxv * Adjust the address for the rodata segment. We want to adjust up to 201.17Smaxv * the same address within the page on the next page up. 211.17Smaxv */ 221.17Smaxv . = ALIGN(0x1000) + (. & (0x1000 - 1)); 231.17Smaxv 241.17Smaxv __rodata_start = . ; 251.16Smaxv .rodata : 261.16Smaxv { 271.16Smaxv *(.rodata) 281.16Smaxv *(.rodata.*) 291.16Smaxv } 301.16Smaxv 311.16Smaxv __data_start = . ; 321.16Smaxv .data : 331.16Smaxv { 341.16Smaxv *(.data) 351.16Smaxv } 361.16Smaxv 371.16Smaxv . = ALIGN(COHERENCY_UNIT); 381.16Smaxv .data.cacheline_aligned : 391.16Smaxv { 401.16Smaxv *(.data.cacheline_aligned) 411.16Smaxv } 421.16Smaxv . = ALIGN(COHERENCY_UNIT); 431.16Smaxv .data.read_mostly : 441.16Smaxv { 451.16Smaxv *(.data.read_mostly) 461.16Smaxv } 471.16Smaxv . = ALIGN(COHERENCY_UNIT); 481.16Smaxv _edata = . ; 491.16Smaxv PROVIDE (edata = .) ; 501.16Smaxv __bss_start = . ; 511.16Smaxv .bss : 521.16Smaxv { 531.16Smaxv *(.bss) 541.16Smaxv *(.bss.*) 551.16Smaxv *(COMMON) 561.16Smaxv . = ALIGN(32 / 8); 571.16Smaxv } 581.16Smaxv . = ALIGN(32 / 8); 591.16Smaxv _end = . ; 601.16Smaxv PROVIDE (end = .) ; 611.16Smaxv .note.netbsd.ident : 621.16Smaxv { 631.16Smaxv KEEP(*(.note.netbsd.ident)); 641.16Smaxv } 651.1Sthorpej} 661.16Smaxv 671.13SuebayasiSECTIONS 681.13Suebayasi{ 691.16Smaxv .text : 701.16Smaxv AT (ADDR(.text) & 0x0fffffff) 711.16Smaxv { 721.16Smaxv *(.text) 731.16Smaxv } = 0 741.13Suebayasi} 75