source: trunk/packages/xen-3.1/xen-3.1/xen/arch/x86/x86_64/xen.lds.S @ 34

Last change on this file since 34 was 34, checked in by hartmans, 17 years ago

Add xen and xen-common

File size: 2.1 KB
Line 
1/* Excerpts written by Martin Mares <mj@atrey.karlin.mff.cuni.cz> */
2/* Modified for x86-64 Xen by Keir Fraser */
3
4#include <xen/config.h>
5#include <asm/page.h>
6#include <asm/percpu.h>
7#undef ENTRY
8#undef ALIGN
9
10OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
11OUTPUT_ARCH(i386:x86-64)
12ENTRY(start)
13PHDRS
14{
15  text PT_LOAD ;
16}
17SECTIONS
18{
19  . = 0xFFFF830000100000;
20  _start = .;
21  _stext = .;                   /* Text and read-only data */
22  .text : {
23        *(.text)
24        *(.fixup)
25        *(.gnu.warning)
26        } :text = 0x9090
27  .text.lock : { *(.text.lock) } :text  /* out-of-line lock text */
28
29  _etext = .;                   /* End of text section */
30
31  .rodata : { *(.rodata) *(.rodata.*) } :text
32
33  . = ALIGN(32);                /* Exception table */
34  __start___ex_table = .;
35  __ex_table : { *(__ex_table) } :text
36  __stop___ex_table = .;
37
38  . = ALIGN(32);                /* Pre-exception table */
39  __start___pre_ex_table = .;
40  __pre_ex_table : { *(__pre_ex_table) } :text
41  __stop___pre_ex_table = .;
42
43  .data : {                     /* Data */
44        *(.data)
45        CONSTRUCTORS
46        } :text
47
48  . = ALIGN(128);
49  .data.read_mostly : { *(.data.read_mostly) } :text
50
51  . = ALIGN(4096);              /* Init code and data */
52  __init_begin = .;
53  _sinittext = .;
54  .init.text : { *(.init.text) } :text
55  _einittext = .;
56  .init.data : { *(.init.data) } :text
57  . = ALIGN(32);
58  __setup_start = .;
59  .init.setup : { *(.init.setup) } :text
60  __setup_end = .;
61  __initcall_start = .;
62  .initcall.init : { *(.initcall1.init) } :text
63  __initcall_end = .;
64  . = ALIGN(PAGE_SIZE);
65  __init_end = .;
66
67  __per_cpu_start = .;
68  .data.percpu : { *(.data.percpu) } :text
69  __per_cpu_data_end = .;
70  . = __per_cpu_start + (NR_CPUS << PERCPU_SHIFT);
71  . = ALIGN(STACK_SIZE);
72  __per_cpu_end = .;
73
74  __bss_start = .;              /* BSS */
75  .bss : {
76        *(.bss.stack_aligned)
77        *(.bss.page_aligned)
78        *(.bss)
79        } :text
80  _end = . ;
81
82  /* Sections to be discarded */
83  /DISCARD/ : {
84        *(.exit.text)
85        *(.exit.data)
86        *(.exitcall.exit)
87        }
88
89  /* Stabs debugging sections.  */
90  .stab 0 : { *(.stab) }
91  .stabstr 0 : { *(.stabstr) }
92  .stab.excl 0 : { *(.stab.excl) }
93  .stab.exclstr 0 : { *(.stab.exclstr) }
94  .stab.index 0 : { *(.stab.index) }
95  .stab.indexstr 0 : { *(.stab.indexstr) }
96  .comment 0 : { *(.comment) }
97}
Note: See TracBrowser for help on using the repository browser.