blob: 47583887abc6fc823c2b96fd5cf43cf75a6455c1 [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 = .;
Sam Ravnborg76647092007-05-13 00:31:33 +020015 TEXT_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 SCHED_TEXT
17 LOCK_TEXT
18 *(.gnu.warning)
19 } =0
20 _etext = .;
21 PROVIDE (etext = .);
22 RODATA
23 .data :
24 {
Sam Ravnborgca967252007-05-17 13:38:44 +020025 DATA_DATA
Linus Torvalds1da177e2005-04-16 15:20:36 -070026 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
Fenghua Yu5fb7dc32007-07-19 01:48:12 -070068 PERCPU(4096)
Linus Torvalds1da177e2005-04-16 15:20:36 -070069 . = ALIGN(4096);
70 __init_end = .;
71 . = ALIGN(32);
72 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
73
74 __bss_start = .;
75 .sbss : { *(.sbss) *(.scommon) }
76 .bss :
77 {
78 *(.dynbss)
79 *(.bss)
80 *(COMMON)
81 }
82 _end = . ;
83 PROVIDE (end = .);
Linus Torvalds1da177e2005-04-16 15:20:36 -070084 /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
David S. Millerd5784b52005-12-28 13:22:54 -080085
86 STABS_DEBUG
87
88 DWARF_DEBUG
Linus Torvalds1da177e2005-04-16 15:20:36 -070089}