xref: /netbsd-src/sys/arch/mipsco/conf/stand.ldscript (revision 014425532669055787df0331b6c3600cbe505d13)
1*01442553Ssimonb/*	$NetBSD: stand.ldscript,v 1.6 2021/04/23 08:42:26 simonb Exp $	*/
2513cc0caSwdk
3513cc0caSwdk/*  ldscript for NetBSD/mipsco standalone bootstraps */
4770d02eaSheOUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips")
5513cc0caSwdkOUTPUT_ARCH(mips)
6513cc0caSwdkENTRY(_start)
7513cc0caSwdkSECTIONS
8513cc0caSwdk{
9513cc0caSwdk  /*  Read-only sections, merged into text segment.  Assumes the
10513cc0caSwdk      kernel Makefile sets the start address via -Ttext.  */
11513cc0caSwdk  .text      :
12513cc0caSwdk  {
13513cc0caSwdk    _ftext = . ;
14513cc0caSwdk    *(.text)
15*01442553Ssimonb    *(.text.*)
16513cc0caSwdk    *(.gnu.warning)
17513cc0caSwdk  } =0
18513cc0caSwdk  _etext = .;
19513cc0caSwdk  PROVIDE (etext = .);
20513cc0caSwdk  .rodata    : { *(.rodata)  }
21513cc0caSwdk  .data    :
22513cc0caSwdk  {
23513cc0caSwdk    _fdata = . ;
24513cc0caSwdk    *(.data)
25513cc0caSwdk    CONSTRUCTORS
26513cc0caSwdk  }
27513cc0caSwdk  _gp = ALIGN(16);
28513cc0caSwdk  .lit8 : { *(.lit8) }
29513cc0caSwdk  .lit4 : { *(.lit4) }
30513cc0caSwdk  .sdata     : { *(.sdata) }
31513cc0caSwdk  _edata  =  .;
32513cc0caSwdk  PROVIDE (edata = .);
33513cc0caSwdk  __bss_start = .;
34513cc0caSwdk  _fbss = .;
35513cc0caSwdk  .bss       :
36513cc0caSwdk  {
37513cc0caSwdk    *(.bss)
38513cc0caSwdk    *(COMMON)
39513cc0caSwdk    *(.sbss)
40513cc0caSwdk    *(.scommon)
41513cc0caSwdk  }
42513cc0caSwdk  _end = . ;
43513cc0caSwdk  PROVIDE (end = .);
44513cc0caSwdk
45513cc0caSwdk  /*
46513cc0caSwdk   * Depending on the nuber of sections and their relative position
47513cc0caSwdk   * the Mips PROM firmware incorrectly loads the image into memory
48b4371d47Swiz   * 8 bytes higher than expected.  If this happens change the following
49513cc0caSwdk   * definition from .reginfo to /DISCARD/ to remove the section
50513cc0caSwdk   */
51513cc0caSwdk
52513cc0caSwdk  .reginfo : { *(.reginfo) }
53513cc0caSwdk}
54