blob: e5c24e0521dee34f43e0ef32c693320512f841a9 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/* 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 {
Eric W. Biedermanfd593d12006-12-07 02:14:04 +010014 _text = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070015 *(.text)
16 SCHED_TEXT
17 LOCK_TEXT
18 *(.gnu.warning)
19 } =0
20 _etext = .;
21 PROVIDE (etext = .);
22 RODATA
23 .data :
24 {
25 *(.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 = .;
Martin Habetsab5da282006-10-11 14:58:30 -070040 _sinittext = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070041 .init.text : {
Linus Torvalds1da177e2005-04-16 15:20:36 -070042 *(.init.text)
Linus Torvalds1da177e2005-04-16 15:20:36 -070043 }
Martin Habetsab5da282006-10-11 14:58:30 -070044 _einittext = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -070045 __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 : {
Andrew Morton61ce1ef2006-10-27 11:41:44 -070053 INITCALLS
Linus Torvalds1da177e2005-04-16 15:20:36 -070054 }
55 __initcall_end = .;
56 __con_initcall_start = .;
57 .con_initcall.init : { *(.con_initcall.init) }
58 __con_initcall_end = .;
59 SECURITY_INIT
Jean-Paul Saman67d38222007-02-10 01:44:44 -080060
61#ifdef CONFIG_BLK_DEV_INITRD
Linus Torvalds1da177e2005-04-16 15:20:36 -070062 . = ALIGN(4096);
63 __initramfs_start = .;
64 .init.ramfs : { *(.init.ramfs) }
65 __initramfs_end = .;
Jean-Paul Saman67d38222007-02-10 01:44:44 -080066#endif
67
Linus Torvalds1da177e2005-04-16 15:20:36 -070068 . = ALIGN(32);
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 = .);
Linus Torvalds1da177e2005-04-16 15:20:36 -070087 /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
David S. Millerd5784b52005-12-28 13:22:54 -080088
89 STABS_DEBUG
90
91 DWARF_DEBUG
Linus Torvalds1da177e2005-04-16 15:20:36 -070092}