ldscript.epoc32 revision 1.5
1/*	$NetBSD: ldscript.epoc32,v 1.5 2015/08/21 04:00:48 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  .ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
23  PROVIDE (__exidx_start = .);
24  .ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
25  PROVIDE (__exidx_end = .);
26  PROVIDE (__etext = .);
27  PROVIDE (_etext = .);
28  PROVIDE (etext = .);
29  /* Adjust the address for the data segment to start on the next page
30     boundary.  */
31  . = ALIGN(0x8000);
32  .data    :
33  {
34    __data_start = . ;
35    *(.data)
36    *(.data.*)
37  }
38  .sdata     :
39  {
40    *(.sdata)
41    *(.sdata.*)
42  }
43  _edata = .;
44  PROVIDE (edata = .);
45  __bss_start = .;
46  __bss_start__ = .;
47  .sbss      :
48  {
49    PROVIDE (__sbss_start = .);
50    PROVIDE (___sbss_start = .);
51    *(.dynsbss)
52    *(.sbss)
53    *(.sbss.*)
54    *(.scommon)
55    PROVIDE (__sbss_end = .);
56    PROVIDE (___sbss_end = .);
57  }
58  .bss       :
59  {
60    *(.dynbss)
61    *(.bss)
62    *(.bss.*)
63    *(COMMON)
64    /* Align here to ensure that the .bss section occupies space up to
65       _end.  Align after .bss to ensure correct alignment even if the
66       .bss section disappears because there are no input sections.  */
67    . = ALIGN(32 / 8);
68  }
69  . = ALIGN(32 / 8);
70  _end = .;
71  _bss_end__ = . ; __bss_end__ = . ; __end__ = . ;
72  PROVIDE (end = .);
73  .note.netbsd.ident :
74  {
75    KEEP(*(.note.netbsd.ident));
76  }
77}
78SECTIONS
79{
80  KERNEL_BASE_phys = @KERNEL_BASE_PHYS@;
81  KERNEL_BASE_virt = @KERNEL_BASE_VIRT@;
82
83  .start (KERNEL_BASE_phys) :
84  {
85    *(.start)
86  } =0
87
88  .text (KERNEL_BASE_virt + SIZEOF(.start)) :
89  AT (LOADADDR(.start) + SIZEOF(.start))
90  {
91    *(.text)
92  } =0
93}
94