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