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