blob: 5b7e69a8c32f7259497fafbcd1e816242e690423 [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 = .;
Al Viro5bac2872008-11-22 17:36:04 +000016 *(.text.head)
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070017 TEXT_TEXT
18 SCHED_TEXT
19 LOCK_TEXT
20 *(.gnu.warning)
21 } = 0
22 _etext = .;
23 PROVIDE (etext = .);
24 RODATA
25 .data : {
26 DATA_DATA
27 CONSTRUCTORS
28 }
29 .data1 : {
30 *(.data1)
31 }
32 _edata = .;
33 PROVIDE (edata = .);
Linus Torvalds1da177e2005-04-16 15:20:36 -070034
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070035 .fixup : {
36 __start___fixup = .;
37 *(.fixup)
38 __stop___fixup = .;
39 }
40 __ex_table : {
41 __start___ex_table = .;
42 *(__ex_table)
43 __stop___ex_table = .;
44 }
David S. Miller0c0d3452007-07-22 19:19:05 -070045
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070046 NOTES
47
48 . = ALIGN(PAGE_SIZE);
49 __init_begin = .;
50 .init.text : {
51 _sinittext = .;
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +010052 INIT_TEXT
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070053 _einittext = .;
54 }
55 __init_text_end = .;
56 .init.data : {
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +010057 INIT_DATA
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070058 }
59 . = ALIGN(16);
60 .init.setup : {
61 __setup_start = .;
62 *(.init.setup)
63 __setup_end = .;
64 }
65 .initcall.init : {
66 __initcall_start = .;
67 INITCALLS
68 __initcall_end = .;
69 }
70 .con_initcall.init : {
71 __con_initcall_start = .;
72 *(.con_initcall.init)
73 __con_initcall_end = .;
74 }
75 SECURITY_INIT
Jean-Paul Saman67d38222007-02-10 01:44:44 -080076
77#ifdef CONFIG_BLK_DEV_INITRD
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070078 . = ALIGN(PAGE_SIZE);
79 .init.ramfs : {
80 __initramfs_start = .;
81 *(.init.ramfs)
82 __initramfs_end = .;
83 }
Jean-Paul Saman67d38222007-02-10 01:44:44 -080084#endif
85
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070086 PERCPU(PAGE_SIZE)
87 . = ALIGN(PAGE_SIZE);
88 __init_end = .;
89 . = ALIGN(32);
90 .data.cacheline_aligned : {
91 *(.data.cacheline_aligned)
92 }
David S. Millerd113fcd2007-11-16 03:06:07 -080093 . = ALIGN(32);
94 .data.read_mostly : {
95 *(.data.read_mostly)
96 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070097
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070098 __bss_start = .;
99 .sbss : {
100 *(.sbss)
101 *(.scommon) }
102 .bss : {
103 *(.dynbss)
104 *(.bss)
105 *(COMMON)
106 }
107 _end = . ;
108 PROVIDE (end = .);
109 /DISCARD/ : {
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +0100110 EXIT_TEXT
111 EXIT_DATA
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -0700112 *(.exitcall.exit)
113 }
David S. Millerd5784b52005-12-28 13:22:54 -0800114
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -0700115 STABS_DEBUG
116 DWARF_DEBUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700117}