blob: 216147d6e61f6882d8050c161d356c4bd6f15bec [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 }
Linus Torvalds1da177e2005-04-16 15:20:36 -070092
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -070093 __bss_start = .;
94 .sbss : {
95 *(.sbss)
96 *(.scommon) }
97 .bss : {
98 *(.dynbss)
99 *(.bss)
100 *(COMMON)
101 }
102 _end = . ;
103 PROVIDE (end = .);
104 /DISCARD/ : {
Sam Ravnborg01ba2bd2008-01-20 14:15:03 +0100105 EXIT_TEXT
106 EXIT_DATA
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -0700107 *(.exitcall.exit)
108 }
David S. Millerd5784b52005-12-28 13:22:54 -0800109
Sam Ravnborgbcbe40e2007-09-17 19:02:30 -0700110 STABS_DEBUG
111 DWARF_DEBUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700112}