Import changeset
[linux-flexiantxendom0-3.2.10.git] / arch / i386 / vmlinux.lds
1 /* ld script to make i386 Linux kernel
2  * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>;
3  */
4 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
5 OUTPUT_ARCH(i386)
6 ENTRY(_start)
7 SECTIONS
8 {
9   . = 0xC0000000 + 0x100000;
10   _text = .;                    /* Text and read-only data */
11   .text : {
12         *(.text)
13         *(.fixup)
14         *(.gnu.warning)
15         } = 0x9090
16   .text.lock : { *(.text.lock) }        /* out-of-line lock text */
17
18   _etext = .;                   /* End of text section */
19
20   .rodata : { *(.rodata) }
21   .kstrtab : { *(.kstrtab) }
22
23   . = ALIGN(16);                /* Exception table */
24   __start___ex_table = .;
25   __ex_table : { *(__ex_table) }
26   __stop___ex_table = .;
27
28   __start___ksymtab = .;        /* Kernel symbol table */
29   __ksymtab : { *(__ksymtab) }
30   __stop___ksymtab = .;
31
32   .data : {                     /* Data */
33         *(.data)
34         CONSTRUCTORS
35         }
36
37   _edata = .;                   /* End of data section */
38
39   . = ALIGN(8192);              /* init_task */
40   .data.init_task : { *(.data.init_task) }
41
42   . = ALIGN(4096);              /* Init code and data */
43   __init_begin = .;
44   .text.init : { *(.text.init) }
45   .data.init : { *(.data.init) }
46   . = ALIGN(16);
47   __setup_start = .;
48   .setup.init : { *(.setup.init) }
49   __setup_end = .;
50   __initcall_start = .;
51   .initcall.init : { *(.initcall.init) }
52   __initcall_end = .;
53   . = ALIGN(4096);
54   __init_end = .;
55
56   . = ALIGN(4096);
57   .data.page_aligned : { *(.data.idt) }
58
59   . = ALIGN(32);
60   .data.cacheline_aligned : { *(.data.cacheline_aligned) }
61
62   __bss_start = .;              /* BSS */
63   .bss : {
64         *(.bss)
65         }
66   _end = . ;
67
68   /* Sections to be discarded */
69   /DISCARD/ : {
70         *(.text.exit)
71         *(.data.exit)
72         *(.exitcall.exit)
73         }
74
75   /* Stabs debugging sections.  */
76   .stab 0 : { *(.stab) }
77   .stabstr 0 : { *(.stabstr) }
78   .stab.excl 0 : { *(.stab.excl) }
79   .stab.exclstr 0 : { *(.stab.exclstr) }
80   .stab.index 0 : { *(.stab.index) }
81   .stab.indexstr 0 : { *(.stab.indexstr) }
82   .comment 0 : { *(.comment) }
83 }