blob: b1002c60719615bca22b0c4161e0d60afb959d58 [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>
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -07004#include <asm/page.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07005
6OUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
7OUTPUT_ARCH(sparc)
8ENTRY(_start)
9jiffies = jiffies_64 + 4;
10SECTIONS
11{
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070012 . = 0x10000 + SIZEOF_HEADERS;
13 .text 0xf0004000 :
14 {
15 _text = .;
16 TEXT_TEXT
17 SCHED_TEXT
18 LOCK_TEXT
19 *(.gnu.warning)
20 } = 0
21 _etext = .;
22 PROVIDE (etext = .);
23 RODATA
24 .data : {
25 DATA_DATA
26 CONSTRUCTORS
27 }
28 .data1 : {
29 *(.data1)
30 }
31 _edata = .;
32 PROVIDE (edata = .);
Linus Torvalds1da177e2005-04-16 15:20:36 -070033
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070034 .fixup : {
35 __start___fixup = .;
36 *(.fixup)
37 __stop___fixup = .;
38 }
39 __ex_table : {
40 __start___ex_table = .;
41 *(__ex_table)
42 __stop___ex_table = .;
43 }
David S. Miller0c0d3452007-07-22 19:19:05 -070044
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070045 NOTES
46
47 . = ALIGN(PAGE_SIZE);
48 __init_begin = .;
49 .init.text : {
50 _sinittext = .;
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +010051 INIT_TEXT
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070052 _einittext = .;
53 }
54 __init_text_end = .;
55 .init.data : {
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +010056 INIT_DATA
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070057 }
58 . = ALIGN(16);
59 .init.setup : {
60 __setup_start = .;
61 *(.init.setup)
62 __setup_end = .;
63 }
64 .initcall.init : {
65 __initcall_start = .;
66 INITCALLS
67 __initcall_end = .;
68 }
69 .con_initcall.init : {
70 __con_initcall_start = .;
71 *(.con_initcall.init)
72 __con_initcall_end = .;
73 }
74 SECURITY_INIT
Jean-Paul Saman67d38222007-02-10 01:44:44 -080075
76#ifdef CONFIG_BLK_DEV_INITRD
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070077 . = ALIGN(PAGE_SIZE);
78 .init.ramfs : {
79 __initramfs_start = .;
80 *(.init.ramfs)
81 __initramfs_end = .;
82 }
Jean-Paul Saman67d38222007-02-10 01:44:44 -080083#endif
84
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070085 PERCPU(PAGE_SIZE)
86 . = ALIGN(PAGE_SIZE);
87 __init_end = .;
88 . = ALIGN(32);
89 .data.cacheline_aligned : {
90 *(.data.cacheline_aligned)
91 }
David S. Millerd113fcd2007-11-16 03:06:07 -080092 . = ALIGN(32);
93 .data.read_mostly : {
94 *(.data.read_mostly)
95 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070096
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070097 __bss_start = .;
98 .sbss : {
99 *(.sbss)
100 *(.scommon) }
101 .bss : {
102 *(.dynbss)
103 *(.bss)
104 *(COMMON)
105 }
106 _end = . ;
107 PROVIDE (end = .);
108 /DISCARD/ : {
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +0100109 EXIT_TEXT
110 EXIT_DATA
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -0700111 *(.exitcall.exit)
112 }
David S. Millerd5784b52005-12-28 13:22:54 -0800113
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -0700114 STABS_DEBUG
115 DWARF_DEBUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700116}