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 }
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.