1/* ld script to make SparcLinux kernel */
2
3#include <asm-generic/vmlinux.lds.h>
4
5OUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
6OUTPUT_ARCH(sparc)
7ENTRY(_start)
8jiffies = jiffies_64 + 4;
9SECTIONS
10{
11  . = 0x10000 + SIZEOF_HEADERS;
12  .text 0xf0004000 :
13  {
14    _text = .;
15    TEXT_TEXT
16    SCHED_TEXT
17    LOCK_TEXT
18    *(.gnu.warning)
19  } =0
20  _etext = .;
21  PROVIDE (etext = .);
22  RODATA
23  .data    :
24  {
25    DATA_DATA
26    CONSTRUCTORS
27  }
28  .data1   : { *(.data1) }
29  _edata  =  .;
30  PROVIDE (edata = .);
31  __start___fixup = .;
32  .fixup   : { *(.fixup) }
33  __stop___fixup = .;
34  __start___ex_table = .;
35  __ex_table : { *(__ex_table) }
36  __stop___ex_table = .;
37
38  . = ALIGN(4096);
39  __init_begin = .;
40  _sinittext = .;
41  .init.text : {
42	*(.init.text)
43  }
44  _einittext = .;
45  __init_text_end = .;
46  .init.data : { *(.init.data) }
47  . = ALIGN(16);
48  __setup_start = .;
49  .init.setup : { *(.init.setup) }
50  __setup_end = .;
51  __initcall_start = .;
52  .initcall.init : {
53	INITCALLS
54  }
55  __initcall_end = .;
56  __con_initcall_start = .;
57  .con_initcall.init : { *(.con_initcall.init) }
58  __con_initcall_end = .;
59  SECURITY_INIT
60
61#ifdef CONFIG_BLK_DEV_INITRD
62  . = ALIGN(4096);
63  __initramfs_start = .;
64  .init.ramfs : { *(.init.ramfs) }
65  __initramfs_end = .;
66#endif
67
68  . = ALIGN(4096);
69  __per_cpu_start = .;
70  .data.percpu  : { *(.data.percpu) }
71  __per_cpu_end = .;
72  . = ALIGN(4096);
73  __init_end = .;
74  . = ALIGN(32);
75  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
76
77  __bss_start = .;
78  .sbss      : { *(.sbss) *(.scommon) }
79  .bss       :
80  {
81   *(.dynbss)
82   *(.bss)
83   *(COMMON)
84  }
85  _end = . ;
86  PROVIDE (end = .);
87  /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
88
89  STABS_DEBUG
90
91  DWARF_DEBUG
92}
93