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