Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6] / arch / sparc / kernel / vmlinux.lds.S
1 /* ld script to make SparcLinux kernel */
2
3 #include <asm-generic/vmlinux.lds.h>
4 #include <asm/page.h>
5
6 OUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc")
7 OUTPUT_ARCH(sparc)
8 ENTRY(_start)
9 jiffies = jiffies_64 + 4;
10 SECTIONS
11 {
12         . = 0x10000 + SIZEOF_HEADERS;
13         .text 0xf0004000 :
14         {
15                 _text = .;
16                 *(.text.head)
17                 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 = .);
34
35         .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         }
45
46         NOTES
47
48         . = ALIGN(PAGE_SIZE);
49         __init_begin = .;
50         .init.text : {
51                 _sinittext = .;
52                 INIT_TEXT
53                 _einittext = .;
54         }
55         __init_text_end = .;
56         .init.data : {
57                 INIT_DATA
58         }
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
76
77 #ifdef CONFIG_BLK_DEV_INITRD
78         . = ALIGN(PAGE_SIZE);
79         .init.ramfs : {
80         __initramfs_start = .;
81                 *(.init.ramfs)
82         __initramfs_end = .;
83         }
84 #endif
85
86         PERCPU(PAGE_SIZE)
87         . = ALIGN(PAGE_SIZE);
88         __init_end = .;
89         . = ALIGN(32);
90         .data.cacheline_aligned : {
91                 *(.data.cacheline_aligned)
92         }
93         . = ALIGN(32);
94         .data.read_mostly : {
95                 *(.data.read_mostly)
96         }
97
98         __bss_start = .;
99         .sbss : {
100                 *(.sbss)
101                 *(.scommon) }
102         .bss : {
103                 *(.dynbss)
104                 *(.bss)
105                 *(COMMON)
106         }
107         _end = . ;
108         PROVIDE (end = .);
109         /DISCARD/ : {
110                 EXIT_TEXT
111                 EXIT_DATA
112                 *(.exitcall.exit)
113         }
114
115         STABS_DEBUG
116         DWARF_DEBUG
117 }