1/*        $NetBSD: kern.ldscript,v 1.22 2018/06/24 18:24:53 maxv Exp $          */
2
3#include "assym.h"
4
5__PAGE_SIZE = 0x1000 ;
6
7ENTRY(_start)
8SECTIONS
9{
10          .text : AT (ADDR(.text) & 0x0fffffff)
11          {
12                    *(.text)
13                    *(.text.*)
14                    *(.stub)
15                    . = ALIGN(__PAGE_SIZE);
16          } =0xCC
17          _etext = . ;
18          PROVIDE (etext = .) ;
19
20          . = ALIGN(__PAGE_SIZE);
21
22          __rodata_start = . ;
23
24          .rodata.hotpatch :
25          {
26                    __rodata_hotpatch_start = . ;
27                    *(.rodata.hotpatch)
28                    __rodata_hotpatch_end = . ;
29          }
30
31          .rodata :
32          {
33                    *(.rodata)
34                    *(.rodata.*)
35          }
36
37          . = ALIGN(__PAGE_SIZE);
38
39          __data_start = . ;
40          .data :
41          {
42                    *(.data)
43          }
44
45          . = ALIGN(COHERENCY_UNIT);
46          .data.cacheline_aligned :
47          {
48                    *(.data.cacheline_aligned)
49          }
50          . = ALIGN(COHERENCY_UNIT);
51          .data.read_mostly :
52          {
53                    *(.data.read_mostly)
54          }
55          . = ALIGN(COHERENCY_UNIT);
56
57          _edata = . ;
58          PROVIDE (edata = .) ;
59          __bss_start = . ;
60          .bss :
61          {
62                    *(.bss)
63                    *(.bss.*)
64                    *(COMMON)
65                    . = ALIGN(__PAGE_SIZE);
66          }
67
68          . = ALIGN(__PAGE_SIZE);
69
70          /* End of the kernel image */
71          __kernel_end = . ;
72
73          _end = . ;
74          PROVIDE (end = .) ;
75          .note.netbsd.ident :
76          {
77                    KEEP(*(.note.netbsd.ident));
78          }
79}
80
81