/* $NetBSD: kern.ldscript,v 1.12 2021/04/23 08:42:25 simonb Exp $ */

#include "assym.h"

/*  ldscript for NetBSD/mips kernels and LKMs */
OUTPUT_ARCH(mips)
ENTRY(_start)
/* Do we need any of these?
  __DYNAMIC = 0;    */
_DYNAMIC_LINK = 0;
SECTIONS
{
 /*  Read-only sections, merged into text segment.  Assumes the
     kernel Makefile sets the start address via -Ttext.  */
 .text      :
 {
   _ftext = . ;
   *(.text)
   *(.text.*)
   __stub_start = . ;
   *(.stub*)
   __stub_end = . ;
   *(.gnu.warning)
 } =0
 _etext = .;
 PROVIDE (etext = .);
 .rodata    : { *(.rodata) *(.rodata.*) }
 .reginfo : { *(.reginfo) }
/*  . = . + 0x1000; */
 .data    :
 {
   _fdata = . ;
   *(.data)
   CONSTRUCTORS
   . = ALIGN(COHERENCY_UNIT);
   *(.data.cacheline_aligned)
   . = ALIGN(COHERENCY_UNIT);
   *(.data.read_mostly)
   . = ALIGN(COHERENCY_UNIT);
 }
 _gp = ALIGN(16) + 0x7ff0;
 .lit8 : { *(.lit8) }
 .lit4 : { *(.lit4) }
 .sdata     : { *(.sdata) }
 _edata  =  .;
 PROVIDE (edata = .);
 __bss_start = .;
 _fbss = .;
 .sbss      : { *(.sbss) *(.scommon) }
 .bss       :
 {
   *(.bss)
   *(COMMON)
 }
 _end = . ;
 PROVIDE (end = .);
}