xref: /netbsd-src/sys/arch/mips/conf/kern.ldscript (revision 014425532669055787df0331b6c3600cbe505d13)
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