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) *(.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  _etext = .;			/* End of text section */
33
34  .data : {			/* Data */
35	*(.data)
36	CONSTRUCTORS
37	}
38
39  _edata = .;			/* End of data section */
40
41  . = ALIGN(8192);		/* init_task */
42  .data.init_task : { *(.data.init_task) }
43
44  . = ALIGN(4096);		/* Init code and data */
45  __init_begin = .;
46  .text.init : { *(.text.init) }
47  .data.init : { *(.data.init) }
48  . = ALIGN(4096);
49  __init_end = .;
50
51  __setup_start = .;
52  .setup.init : { *(.setup.init) }
53  __setup_end = .;
54  __initcall_start = .;
55  .initcall.init : { *(.initcall.init) }
56  __initcall_end = .;
57  . = ALIGN(4096);
58  __init_end = .;
59
60  . = ALIGN(32);
61  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
62
63  . = ALIGN(4096);
64  .data.page_aligned : { *(.data.idt) }
65
66
67  __bss_start = .;		/* BSS */
68  .bss : {
69	*(.bss)
70	}
71  _end = . ;
72
73  /* Stabs debugging sections.  */
74  .stab 0 : { *(.stab) }
75  .stabstr 0 : { *(.stabstr) }
76  .stab.excl 0 : { *(.stab.excl) }
77  .stab.exclstr 0 : { *(.stab.exclstr) }
78  .stab.index 0 : { *(.stab.index) }
79  .stab.indexstr 0 : { *(.stab.indexstr) }
80  .comment 0 : { *(.comment) }
81}
82