1/* ld script to make s390 Linux kernel 2 * Written by Martin Schwidefsky (schwidefsky@de.ibm.com) 3 */ 4OUTPUT_FORMAT("elf32-s390", "elf32-s390", "elf32-s390") 5OUTPUT_ARCH(s390) 6ENTRY(_start) 7SECTIONS 8{ 9 . = 0x00000000; 10 _text = .; /* Text and read-only data */ 11 .text : { 12 *(.text) 13 *(.fixup) 14 *(.gnu.warning) 15 } = 0x0700 16 .rodata : { *(.rodata) } 17 .kstrtab : { *(.kstrtab) } 18 19 . = ALIGN(16); /* Exception table */ 20 __start___ex_table = .; 21 __ex_table : { *(__ex_table) } 22 __stop___ex_table = .; 23 24 __start___ksymtab = .; /* Kernel symbol table */ 25 __ksymtab : { *(__ksymtab) } 26 __stop___ksymtab = .; 27 28 __start___kallsyms = .; /* All kernel symbols */ 29 __kallsyms : { *(__kallsyms) } 30 __stop___kallsyms = .; 31 32 . = ALIGN(1048576); /* VM shared segments are 1MB aligned */ 33 34 _etext = .; /* End of text section */ 35 36 .data : { /* Data */ 37 *(.data) 38 CONSTRUCTORS 39 } 40 41 _edata = .; /* End of data section */ 42 43 . = ALIGN(8192); /* init_task */ 44 .data.init_task : { *(.data.init_task) } 45 46 . = ALIGN(4096); /* Init code and data */ 47 __init_begin = .; 48 .text.init : { *(.text.init) } 49 .data.init : { *(.data.init) } 50 . = ALIGN(4096); 51 __init_end = .; 52 53 __setup_start = .; 54 .setup.init : { *(.setup.init) } 55 __setup_end = .; 56 __initcall_start = .; 57 .initcall.init : { *(.initcall.init) } 58 __initcall_end = .; 59 . = ALIGN(4096); 60 __init_end = .; 61 62 . = ALIGN(32); 63 .data.cacheline_aligned : { *(.data.cacheline_aligned) } 64 65 . = ALIGN(4096); 66 .data.page_aligned : { *(.data.idt) } 67 68 69 __bss_start = .; /* BSS */ 70 .bss : { 71 *(.bss) 72 } 73 _end = . ; 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} 84