1/* ld script to make ARM Linux kernel 2 * taken from the i386 version by Russell King 3 * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz> 4 */ 5OUTPUT_ARCH(arm) 6ENTRY(stext) 7SECTIONS 8{ 9 . = TEXTADDR; 10 11 .init : { 12 _stext = .; 13 __init_begin = .; /* Init code and data */ 14 *(.text.init) 15 __proc_info_begin = .; 16 *(.proc.info) 17 __proc_info_end = .; 18 __arch_info_begin = .; 19 *(.arch.info) 20 __arch_info_end = .; 21 __tagtable_begin = .; 22 *(.taglist) 23 __tagtable_end = .; 24 *(.data.init) 25 . = ALIGN(16); 26 __setup_start = .; 27 *(.setup.init) 28 __setup_end = .; 29 __initcall_start = .; 30 *(.initcall.init) 31 __initcall_end = .; 32 . = ALIGN(32768); 33 __init_end = .; 34 } 35 36 .init.task : { 37 *(.init.task) 38 } 39 40 /DISCARD/ : { /* Exit code and data */ 41 *(.text.exit) 42 *(.data.exit) 43 *(.exitcall.exit) 44 } 45 46 .text : { 47 _text = .; /* Text and read-only data */ 48 *(.text) 49 *(.fixup) 50 *(.gnu.warning) 51 *(.rodata) 52 *(.rodata.*) 53 *(.glue_7) 54 *(.glue_7t) 55 *(.kstrtab) 56 . = ALIGN(16); /* Exception table */ 57 __start___ex_table = .; 58 *(__ex_table) 59 __stop___ex_table = .; 60 61 __start___ksymtab = .; /* Kernel symbol table */ 62 *(__ksymtab) 63 __stop___ksymtab = .; 64 65 *(.got) /* Global offset table */ 66 67 _etext = .; /* End of text section */ 68 } 69 70 .data : { 71 /* 72 * The cacheline aligned data 73 */ 74 . = ALIGN(32); 75 *(.data.cacheline_aligned) 76 77 /* 78 * and the usual data section 79 */ 80 *(.data) 81 CONSTRUCTORS 82 83 _edata = .; 84 } 85 86 87 .bss : { 88 __bss_start = .; /* BSS */ 89 *(.bss) 90 *(COMMON) 91 _end = . ; 92 } 93 94 /* Stabs debugging sections. */ 95 .stab 0 : { *(.stab) } 96 .stabstr 0 : { *(.stabstr) } 97 .stab.excl 0 : { *(.stab.excl) } 98 .stab.exclstr 0 : { *(.stab.exclstr) } 99 .stab.index 0 : { *(.stab.index) } 100 .stab.indexstr 0 : { *(.stab.indexstr) } 101 .comment 0 : { *(.comment) } 102} 103