kern.ldscript revision 1.12
1/*	$NetBSD: kern.ldscript,v 1.12 2015/08/20 07:00:48 uebayasi Exp $	*/
2
3OUTPUT_FORMAT("elf32-i386", "elf32-i386",
4	      "elf32-i386")
5OUTPUT_ARCH(i386)
6ENTRY(_start)
7SECTIONS
8{
9  /* Read-only sections, merged into text segment: */
10  .text :
11  AT (ADDR(.text) & 0x0fffffff)
12  {
13    *(.text)
14    *(.text.*)
15    *(.stub)
16  } =0
17  _etext = . ;
18  PROVIDE (etext = .) ;
19
20  .rodata :
21  AT (LOADADDR(.text) + (ADDR(.rodata) - ADDR(.text)))
22  {
23    *(.rodata)
24    *(.rodata.*)
25  }
26
27  /* Adjust the address for the data segment.  We want to adjust up to
28     the same address within the page on the next page up.  */
29  . = ALIGN(0x1000) + (. & (0x1000 - 1));
30  __data_start = . ;
31  .data :
32  AT (LOADADDR(.text) + (ADDR(.data) - ADDR(.text)))
33  {
34    *(.data)
35  }
36  . = ALIGN(64);	/* COHERENCY_UNIT */
37  .data.cacheline_aligned :
38  AT (LOADADDR(.text) + (ADDR(.data.cacheline_aligned) - ADDR(.text)))
39  {
40    *(.data.cacheline_aligned)
41  }
42  . = ALIGN(64);	/* COHERENCY_UNIT */
43  .data.read_mostly :
44  AT (LOADADDR(.text) + (ADDR(.data.read_mostly) - ADDR(.text)))
45  {
46    *(.data.read_mostly)
47  }
48  . = ALIGN(64);	/* COHERENCY_UNIT */
49  _edata = . ;
50  PROVIDE (edata = .) ;
51  __bss_start = . ;
52  .bss :
53  AT (LOADADDR(.text) + (ADDR(.bss) - ADDR(.text)))
54  {
55    *(.bss)
56    *(.bss.*)
57    *(COMMON)
58    . = ALIGN(32 / 8);
59  }
60  . = ALIGN(32 / 8);
61  _end = . ;
62  PROVIDE (end = .) ;
63  .note.netbsd.ident :
64  {
65    KEEP(*(.note.netbsd.ident));
66  }
67}
68