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