1 /* ld script to make i386 Linux kernel
2 * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz>;
4 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
10 . = 0xC0000000 + 0x100000;
12 _text = .; /* Text and read-only data */
19 _etext = .; /* End of text section */
21 .rodata : { *(.rodata) *(.rodata.*) }
22 .kstrtab : { *(.kstrtab) }
24 . = ALIGN(16); /* Exception table */
25 __start___ex_table = .;
26 __ex_table : { *(__ex_table) }
27 __stop___ex_table = .;
29 __start___ksymtab = .; /* Kernel symbol table */
30 __ksymtab : { *(__ksymtab) }
33 __start___kallsyms = .; /* All kernel symbols */
34 __kallsyms : { *(__kallsyms) }
35 __stop___kallsyms = .;
45 .data_nosave : { *(.data.nosave) }
50 .data.page_aligned : { *(.data.idt) }
53 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
55 _edata = .; /* End of data section */
57 . = ALIGN(8192); /* init_task */
58 .data.init_task : { *(.data.init_task) }
60 /* will be freed after init */
61 . = ALIGN(4096); /* Init code and data */
63 .init.text : { *(.init.text) }
64 .init.data : { *(.init.data) }
67 .init.setup : { *(.init.setup) }
81 __initramfs_start = .;
82 .init.ramfs : { *(.init.initramfs) }
86 .data.percpu : { *(.data.percpu) }
90 /* freed after init ends here */
92 __bss_start = .; /* BSS */
98 /* Sections to be discarded */
105 /* Stabs debugging sections. */
106 .stab 0 : { *(.stab) }
107 .stabstr 0 : { *(.stabstr) }
108 .stab.excl 0 : { *(.stab.excl) }
109 .stab.exclstr 0 : { *(.stab.exclstr) }
110 .stab.index 0 : { *(.stab.index) }
111 .stab.indexstr 0 : { *(.stab.indexstr) }
112 .comment 0 : { *(.comment) }