1/*	$NetBSD: ldscript.epoc32,v 1.8 2023/02/11 22:42:20 mlelstv Exp $	*/
2
3ENTRY(KERNEL_BASE_phys)
4SECTIONS
5{
6  KERNEL_BASE_phys = @KERNEL_BASE_PHYS@;
7  KERNEL_BASE_virt = @KERNEL_BASE_VIRT@;
8
9  /* Kernel start: */
10  .start (KERNEL_BASE_phys) :
11  {
12    *(.start)
13  }
14
15  /* Read-only sections, merged into text segment: */
16  .text (KERNEL_BASE_virt + SIZEOF(.start)) :
17  AT (LOADADDR(.start) + SIZEOF(.start))
18  {
19    *(.text)
20    *(.text.*)
21    *(.stub)
22    *(.glue_7t) *(.glue_7)
23    *(.rodata) *(.rodata.*)
24  }
25  PROVIDE (__etext = .);
26  PROVIDE (_etext = .);
27  PROVIDE (etext = .);
28  /* Adjust the address for the data segment to start on the next page
29     boundary.  */
30  . = ALIGN(0x8000);
31  .data    :
32  {
33    __data_start = . ;
34    *(.data)
35    *(.data.*)
36  }
37  .sdata     :
38  {
39    *(.sdata)
40    *(.sdata.*)
41  }
42  _edata = .;
43  PROVIDE (edata = .);
44  __bss_start = .;
45  __bss_start__ = .;
46  .sbss      :
47  {
48    PROVIDE (__sbss_start = .);
49    PROVIDE (___sbss_start = .);
50    *(.dynsbss)
51    *(.sbss)
52    *(.sbss.*)
53    *(.scommon)
54    PROVIDE (__sbss_end = .);
55    PROVIDE (___sbss_end = .);
56  }
57  .bss       :
58  {
59    *(.dynbss)
60    *(.bss)
61    *(.bss.*)
62    *(COMMON)
63    /* Align here to ensure that the .bss section occupies space up to
64       _end.  Align after .bss to ensure correct alignment even if the
65       .bss section disappears because there are no input sections.  */
66    . = ALIGN(32 / 8);
67  }
68  . = ALIGN(32 / 8);
69  _end = .;
70  _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
71  PROVIDE (end = .);
72  .note.netbsd.ident :
73  {
74    KEEP(*(.note.netbsd.ident));
75  }
76}
77