import of upstream 2.4.34.4 from kernel.org
[linux-2.4.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
17   _etext = .;                   /* End of text section */
18
19   .rodata : { *(.rodata) *(.rodata.*) }
20   .kstrtab : { *(.kstrtab) }
21
22   . = ALIGN(16);                /* Exception table */
23   __start___ex_table = .;
24   __ex_table : { *(__ex_table) }
25   __stop___ex_table = .;
26
27   __start___ksymtab = .;        /* Kernel symbol table */
28   __ksymtab : { *(__ksymtab) }
29   __stop___ksymtab = .;
30
31   .data : {                     /* Data */
32         *(.data)
33         CONSTRUCTORS
34         }
35
36   _edata = .;                   /* End of data section */
37
38   . = ALIGN(8192);              /* init_task */
39   .data.init_task : { *(.data.init_task) }
40
41   . = ALIGN(4096);              /* Init code and data */
42   __init_begin = .;
43   .text.init : { *(.text.init) }
44   .data.init : { *(.data.init) }
45   . = ALIGN(16);
46   __setup_start = .;
47   .setup.init : { *(.setup.init) }
48   __setup_end = .;
49   __initcall_start = .;
50   .initcall.init : { *(.initcall.init) }
51   __initcall_end = .;
52   . = ALIGN(4096);
53   __init_end = .;
54
55   . = ALIGN(4096);
56   .data.page_aligned : { *(.data.idt) }
57
58   . = ALIGN(32);
59   .data.cacheline_aligned : { *(.data.cacheline_aligned) }
60
61   __bss_start = .;              /* BSS */
62   .bss : {
63         *(.bss)
64         }
65   _end = . ;
66
67   /* Sections to be discarded */
68   /DISCARD/ : {
69         *(.text.exit)
70         *(.data.exit)
71         *(.exitcall.exit)
72         }
73
74   /* Stabs debugging sections.  */
75   .stab 0 : { *(.stab) }
76   .stabstr 0 : { *(.stabstr) }
77   .stab.excl 0 : { *(.stab.excl) }
78   .stab.exclstr 0 : { *(.stab.exclstr) }
79   .stab.index 0 : { *(.stab.index) }
80   .stab.indexstr 0 : { *(.stab.indexstr) }
81   .comment 0 : { *(.comment) }
82 }