11.12Ssimonb/* $NetBSD: kern.ldscript,v 1.12 2021/04/23 08:42:25 simonb Exp $ */
21.1Sjonathan
31.11Suebayasi#include "assym.h"
41.11Suebayasi
51.4Ssimonb/*  ldscript for NetBSD/mips kernels and LKMs */
61.1SjonathanOUTPUT_ARCH(mips)
71.1SjonathanENTRY(_start)
81.1Sjonathan/* Do we need any of these?
91.1Sjonathan   __DYNAMIC = 0;    */
101.1Sjonathan_DYNAMIC_LINK = 0;
111.1SjonathanSECTIONS
121.1Sjonathan{
131.2Sjonathan  /*  Read-only sections, merged into text segment.  Assumes the
141.2Sjonathan      kernel Makefile sets the start address via -Ttext.  */
151.1Sjonathan  .text      :
161.1Sjonathan  {
171.1Sjonathan    _ftext = . ;
181.1Sjonathan    *(.text)
191.12Ssimonb    *(.text.*)
201.6Smatt    __stub_start = . ;
211.6Smatt    *(.stub*)
221.6Smatt    __stub_end = . ;
231.1Sjonathan    *(.gnu.warning)
241.1Sjonathan  } =0
251.1Sjonathan  _etext = .;
261.1Sjonathan  PROVIDE (etext = .);
271.5Stsutsui  .rodata    : { *(.rodata) *(.rodata.*) }
281.1Sjonathan  .reginfo : { *(.reginfo) }
291.4Ssimonb/*  . = . + 0x1000; */
301.1Sjonathan  .data    :
311.1Sjonathan  {
321.1Sjonathan    _fdata = . ;
331.1Sjonathan    *(.data)
341.1Sjonathan    CONSTRUCTORS
351.11Suebayasi    . = ALIGN(COHERENCY_UNIT);
361.8Suebayasi    *(.data.cacheline_aligned)
371.11Suebayasi    . = ALIGN(COHERENCY_UNIT);
381.8Suebayasi    *(.data.read_mostly)
391.11Suebayasi    . = ALIGN(COHERENCY_UNIT);
401.1Sjonathan  }
411.1Sjonathan  _gp = ALIGN(16) + 0x7ff0;
421.1Sjonathan  .lit8 : { *(.lit8) }
431.1Sjonathan  .lit4 : { *(.lit4) }
441.1Sjonathan  .sdata     : { *(.sdata) }
451.1Sjonathan  _edata  =  .;
461.1Sjonathan  PROVIDE (edata = .);
471.1Sjonathan  __bss_start = .;
481.1Sjonathan  _fbss = .;
491.1Sjonathan  .sbss      : { *(.sbss) *(.scommon) }
501.1Sjonathan  .bss       :
511.1Sjonathan  {
521.8Suebayasi    *(.bss)
531.8Suebayasi    *(COMMON)
541.1Sjonathan  }
551.1Sjonathan  _end = . ;
561.1Sjonathan  PROVIDE (end = .);
571.1Sjonathan}
58