1*01442553Ssimonb/* $NetBSD: kern.ldscript,v 1.12 2021/04/23 08:42:25 simonb Exp $ */ 2d677c061Suebayasi 3d677c061Suebayasi#include "assym.h" 4bc2ec5e5Ssimonb 5bc2ec5e5Ssimonb/* ldscript for NetBSD/mips kernels and LKMs */ 6bc2ec5e5SsimonbOUTPUT_ARCH(mips) 7bc2ec5e5SsimonbENTRY(_start) 8bc2ec5e5Ssimonb/* Do we need any of these? 9bc2ec5e5Ssimonb __DYNAMIC = 0; */ 10bc2ec5e5Ssimonb_DYNAMIC_LINK = 0; 11bc2ec5e5SsimonbSECTIONS 12bc2ec5e5Ssimonb{ 13bc2ec5e5Ssimonb /* Read-only sections, merged into text segment. Assumes the 14bc2ec5e5Ssimonb kernel Makefile sets the start address via -Ttext. */ 15bc2ec5e5Ssimonb .text : 16bc2ec5e5Ssimonb { 17bc2ec5e5Ssimonb _ftext = . ; 18bc2ec5e5Ssimonb *(.text) 19*01442553Ssimonb *(.text.*) 20e544d504Smatt __stub_start = . ; 21e544d504Smatt *(.stub*) 22e544d504Smatt __stub_end = . ; 23bc2ec5e5Ssimonb *(.gnu.warning) 24bc2ec5e5Ssimonb } =0 25bc2ec5e5Ssimonb _etext = .; 26bc2ec5e5Ssimonb PROVIDE (etext = .); 27037c7317Stsutsui .rodata : { *(.rodata) *(.rodata.*) } 28bc2ec5e5Ssimonb .reginfo : { *(.reginfo) } 29bc2ec5e5Ssimonb/* . = . + 0x1000; */ 30bc2ec5e5Ssimonb .data : 31bc2ec5e5Ssimonb { 32bc2ec5e5Ssimonb _fdata = . ; 33bc2ec5e5Ssimonb *(.data) 34bc2ec5e5Ssimonb CONSTRUCTORS 35d677c061Suebayasi . = ALIGN(COHERENCY_UNIT); 36e544d504Smatt *(.data.cacheline_aligned) 37d677c061Suebayasi . = ALIGN(COHERENCY_UNIT); 38e544d504Smatt *(.data.read_mostly) 39d677c061Suebayasi . = ALIGN(COHERENCY_UNIT); 40bc2ec5e5Ssimonb } 41bc2ec5e5Ssimonb _gp = ALIGN(16) + 0x7ff0; 42bc2ec5e5Ssimonb .lit8 : { *(.lit8) } 43bc2ec5e5Ssimonb .lit4 : { *(.lit4) } 44bc2ec5e5Ssimonb .sdata : { *(.sdata) } 45bc2ec5e5Ssimonb _edata = .; 46bc2ec5e5Ssimonb PROVIDE (edata = .); 47bc2ec5e5Ssimonb __bss_start = .; 48bc2ec5e5Ssimonb _fbss = .; 49bc2ec5e5Ssimonb .sbss : { *(.sbss) *(.scommon) } 50bc2ec5e5Ssimonb .bss : 51bc2ec5e5Ssimonb { 52bc2ec5e5Ssimonb *(.bss) 53bc2ec5e5Ssimonb *(COMMON) 54bc2ec5e5Ssimonb } 55bc2ec5e5Ssimonb _end = . ; 56bc2ec5e5Ssimonb PROVIDE (end = .); 57bc2ec5e5Ssimonb} 58