1/*        $NetBSD: kern.ldscript,v 1.1 2021/05/05 01:35:35 thorpej Exp $        */
2
3/*
4 * Linker script for the NetBSD/alpha kernel.
5 *
6 * This largely behaves the same as the standard elf64-alpha linker
7 * script for "ld -N"; the kernel is loaded into K0SEG, so there is
8 * no reason to page-align the .data segment.
9 */
10
11#include "assym.h"  /* for COHERENCY_UNIT */
12
13OUTPUT_FORMAT("elf64-alpha", "elf64-alpha",
14                "elf64-alpha")
15OUTPUT_ARCH(alpha)
16SECTIONS
17{
18          .text     :
19          {
20                    *(.text)
21                    *(.text.*)
22                    *(.stub)
23          } =0x47ff041f
24          _etext = . ;
25          PROVIDE (etext = .);
26
27          .rodata   :
28          {
29                    *(.rodata .rodata.*)
30          }
31
32          .data     :
33          {
34                    *(.data)
35
36                    . = ALIGN(COHERENCY_UNIT);
37                    *(.data.cacheline_aligned)
38
39                    . = ALIGN(COHERENCY_UNIT);
40                    *(.data.read_mostly)
41
42                    . = ALIGN(COHERENCY_UNIT);
43                    *(.data.*)
44          }
45
46          /*
47           * Small-data located along side GOT and small-bss for
48           * GP-relative addressing.
49           */
50
51          .got      :
52          {
53                    *(.got)
54          }
55
56          .sdata    :
57          {
58                    *(.sdata .sdata.*)
59          }
60          _edata = . ;
61          PROVIDE (edata = .) ;
62
63          . = .;
64          __bss_start = .;
65          .sbss     :
66          {
67                    *(.sbss .sbss.*)
68                    *(.scommon)
69          }
70
71          .bss      :
72          {
73                    *(.bss .bss.*)
74                    *(COMMON)
75          }
76
77          /* End of the kernel image */
78          __kernel_end = . ;
79          _end = . ;
80          PROVIDE (end = .) ;
81
82          .note.netbsd.ident :
83          {
84                    KEEP(*(.note.netbsd.ident));
85          }
86}
87