Linux 2.6.31.6
[linux/fpc-iii.git] / arch / alpha / kernel / vmlinux.lds.S
blob1e0c7121c57d5b91924a130042f3cf337ca49042
1 #include <asm-generic/vmlinux.lds.h>
2 #include <asm/thread_info.h>
3 #include <asm/page.h>
5 OUTPUT_FORMAT("elf64-alpha")
6 OUTPUT_ARCH(alpha)
7 ENTRY(__start)
8 PHDRS { kernel PT_LOAD; note PT_NOTE; }
9 jiffies = jiffies_64;
10 SECTIONS
12 #ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
13         . = 0xfffffc0000310000;
14 #else
15         . = 0xfffffc0001010000;
16 #endif
18         _text = .;      /* Text and read-only data */
19         .text : {
20                 HEAD_TEXT
21                 TEXT_TEXT
22                 SCHED_TEXT
23                 LOCK_TEXT
24                 *(.fixup)
25                 *(.gnu.warning)
26         } :kernel
27         _etext = .;     /* End of text section */
29         NOTES :kernel :note
30         .dummy : {
31                 *(.dummy)
32         } :kernel
34         RODATA
36         /* Exception table */
37         . = ALIGN(16);
38         __ex_table : {
39                 __start___ex_table = .;
40                 *(__ex_table)
41                 __stop___ex_table = .;
42         }
44         /* Will be freed after init */
45         . = ALIGN(PAGE_SIZE);
46         /* Init code and data */
47         __init_begin = .;
48         .init.text : {
49                 _sinittext = .;
50                 INIT_TEXT
51                 _einittext = .;
52         }
53         .init.data : {
54                 INIT_DATA
55         }
57         . = ALIGN(16);
58         .init.setup : {
59                 __setup_start = .;
60                 *(.init.setup)
61                 __setup_end = .;
62         }
64         . = ALIGN(8);
65         .initcall.init : {
66                 __initcall_start = .;
67                 INITCALLS
68                 __initcall_end = .;
69         }
71 #ifdef CONFIG_BLK_DEV_INITRD
72         . = ALIGN(PAGE_SIZE);
73         .init.ramfs : {
74                 __initramfs_start = .;
75                 *(.init.ramfs)
76                 __initramfs_end = .;
77         }
78 #endif
80         . = ALIGN(8);
81         .con_initcall.init : {
82                 __con_initcall_start = .;
83                 *(.con_initcall.init)
84                 __con_initcall_end = .;
85         }
87         . = ALIGN(8);
88         SECURITY_INIT
90         PERCPU(PAGE_SIZE)
92         . = ALIGN(2 * PAGE_SIZE);
93         __init_end = .;
94         /* Freed after init ends here */
96         /* Note 2 page alignment above.  */
97         .data.init_thread : {
98                 *(.data.init_thread)
99         }
101         . = ALIGN(PAGE_SIZE);
102         .data.page_aligned : {
103                 *(.data.page_aligned)
104         }
106         . = ALIGN(64);
107         .data.cacheline_aligned : {
108                 *(.data.cacheline_aligned)
109         }
111         _data = .;
112         /* Data */
113         .data : {
114                 DATA_DATA
115                 CONSTRUCTORS
116         }
118         .got : {
119                 *(.got)
120         }
121         .sdata : {
122                 *(.sdata)
123         }
124         _edata = .;     /* End of data section */
126         __bss_start = .;
127         .sbss : {
128                 *(.sbss)
129                 *(.scommon)
130         }
131         .bss : {
132                 *(.bss)
133                 *(COMMON)
134         }
135         __bss_stop = .;
136         _end = .;
138         /* Sections to be discarded */
139         /DISCARD/ : {
140                 EXIT_TEXT
141                 EXIT_DATA
142                 *(.exitcall.exit)
143         }
145         .mdebug 0 : {
146                 *(.mdebug)
147         }
148         .note 0 : {
149                 *(.note)
150         }
152         STABS_DEBUG
153         DWARF_DEBUG