xref: /linux/arch/sparc/kernel/vmlinux.lds.S (revision 4bedea94545165364618d403d03b61d797acba0b)
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    SCHED_TEXT
16    LOCK_TEXT
17    *(.gnu.warning)
18  } =0
19  _etext = .;
20  PROVIDE (etext = .);
21  RODATA
22  .data    :
23  {
24    *(.data)
25    CONSTRUCTORS
26  }
27  .data1   : { *(.data1) }
28  _edata  =  .;
29  PROVIDE (edata = .);
30  __start___fixup = .;
31  .fixup   : { *(.fixup) }
32  __stop___fixup = .;
33  __start___ex_table = .;
34  __ex_table : { *(__ex_table) }
35  __stop___ex_table = .;
36
37  . = ALIGN(4096);
38  __init_begin = .;
39  .init.text : {
40	_sinittext = .;
41	*(.init.text)
42	_einittext = .;
43  }
44  __init_text_end = .;
45  .init.data : { *(.init.data) }
46  . = ALIGN(16);
47  __setup_start = .;
48  .init.setup : { *(.init.setup) }
49  __setup_end = .;
50  __initcall_start = .;
51  .initcall.init : {
52	*(.initcall1.init)
53	*(.initcall2.init)
54	*(.initcall3.init)
55	*(.initcall4.init)
56	*(.initcall5.init)
57	*(.initcall6.init)
58	*(.initcall7.init)
59  }
60  __initcall_end = .;
61  __con_initcall_start = .;
62  .con_initcall.init : { *(.con_initcall.init) }
63  __con_initcall_end = .;
64  SECURITY_INIT
65  . = ALIGN(4096);
66  __initramfs_start = .;
67  .init.ramfs : { *(.init.ramfs) }
68  __initramfs_end = .;
69  . = ALIGN(32);
70  __per_cpu_start = .;
71  .data.percpu  : { *(.data.percpu) }
72  __per_cpu_end = .;
73  . = ALIGN(4096);
74  __init_end = .;
75  . = ALIGN(32);
76  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
77
78  __bss_start = .;
79  .sbss      : { *(.sbss) *(.scommon) }
80  .bss       :
81  {
82   *(.dynbss)
83   *(.bss)
84   *(COMMON)
85  }
86  _end = . ;
87  PROVIDE (end = .);
88  /* Stabs debugging sections.  */
89  .stab 0 : { *(.stab) }
90  .stabstr 0 : { *(.stabstr) }
91  .stab.excl 0 : { *(.stab.excl) }
92  .stab.exclstr 0 : { *(.stab.exclstr) }
93  .stab.index 0 : { *(.stab.index) }
94  .stab.indexstr 0 : { *(.stab.indexstr) }
95  .comment 0 : { *(.comment) }
96  .debug          0 : { *(.debug) }
97  .debug_srcinfo  0 : { *(.debug_srcinfo) }
98  .debug_aranges  0 : { *(.debug_aranges) }
99  .debug_pubnames 0 : { *(.debug_pubnames) }
100  .debug_sfnames  0 : { *(.debug_sfnames) }
101  .line           0 : { *(.line) }
102  /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
103}
104