Merge branch 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc
[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_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 = .);
33
34         .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         }
44
45         NOTES
46
47         . = ALIGN(PAGE_SIZE);
48         __init_begin = .;
49         .init.text : {
50                 _sinittext = .;
51                 INIT_TEXT
52                 _einittext = .;
53         }
54         __init_text_end = .;
55         .init.data : {
56                 INIT_DATA
57         }
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
75
76 #ifdef CONFIG_BLK_DEV_INITRD
77         . = ALIGN(PAGE_SIZE);
78         .init.ramfs : {
79         __initramfs_start = .;
80                 *(.init.ramfs)
81         __initramfs_end = .;
82         }
83 #endif
84
85         PERCPU(PAGE_SIZE)
86         . = ALIGN(PAGE_SIZE);
87         __init_end = .;
88         . = ALIGN(32);
89         .data.cacheline_aligned : {
90                 *(.data.cacheline_aligned)
91         }
92         . = ALIGN(32);
93         .data.read_mostly : {
94                 *(.data.read_mostly)
95         }
96
97         __bss_start = .;
98         .sbss : {
99                 *(.sbss)
100                 *(.scommon) }
101         .bss : {
102                 *(.dynbss)
103                 *(.bss)
104                 *(COMMON)
105         }
106         _end = . ;
107         PROVIDE (end = .);
108         /DISCARD/ : {
109                 EXIT_TEXT
110                 EXIT_DATA
111                 *(.exitcall.exit)
112         }
113
114         STABS_DEBUG
115         DWARF_DEBUG
116 }