blob: 7af07d3ad5f0dc0dcc276763c84d38453cca15dc [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <asm-generic/vmlinux.lds.h>
2
3OUTPUT_FORMAT("elf64-alpha")
4OUTPUT_ARCH(alpha)
5ENTRY(__start)
Roland McGrathcaf45dd2007-07-19 01:48:37 -07006PHDRS { kernel PT_LOAD; note PT_NOTE; }
Linus Torvalds1da177e2005-04-16 15:20:36 -07007jiffies = jiffies_64;
8SECTIONS
9{
10#ifdef CONFIG_ALPHA_LEGACY_START_ADDRESS
11 . = 0xfffffc0000310000;
12#else
13 . = 0xfffffc0001010000;
14#endif
15
16 _text = .; /* Text and read-only data */
17 .text : {
Al Viroed5f6562007-07-26 17:34:19 +010018 *(.text.head)
Sam Ravnborg76647092007-05-13 00:31:33 +020019 TEXT_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070020 SCHED_TEXT
21 LOCK_TEXT
22 *(.fixup)
23 *(.gnu.warning)
24 } :kernel
25 _etext = .; /* End of text section */
26
27 . = ALIGN(16);
28 __start___ex_table = .; /* Exception table */
29 __ex_table : { *(__ex_table) }
30 __stop___ex_table = .;
31
Roland McGrathcaf45dd2007-07-19 01:48:37 -070032 NOTES :kernel :note
33 .dummy : { *(.dummy) } :kernel
34
Linus Torvalds1da177e2005-04-16 15:20:36 -070035 RODATA
36
37 /* Will be freed after init */
38 . = ALIGN(8192); /* Init code and data */
39 __init_begin = .;
40 .init.text : {
41 _sinittext = .;
42 *(.init.text)
43 _einittext = .;
44 }
45 .init.data : { *(.init.data) }
46
47 . = ALIGN(16);
48 __setup_start = .;
49 .init.setup : { *(.init.setup) }
50 __setup_end = .;
51
52 . = ALIGN(8);
53 __initcall_start = .;
54 .initcall.init : {
Andrew Morton61ce1ef2006-10-27 11:41:44 -070055 INITCALLS
Linus Torvalds1da177e2005-04-16 15:20:36 -070056 }
57 __initcall_end = .;
58
Jean-Paul Saman67d38222007-02-10 01:44:44 -080059#ifdef CONFIG_BLK_DEV_INITRD
Linus Torvalds1da177e2005-04-16 15:20:36 -070060 . = ALIGN(8192);
61 __initramfs_start = .;
62 .init.ramfs : { *(.init.ramfs) }
63 __initramfs_end = .;
Jean-Paul Saman67d38222007-02-10 01:44:44 -080064#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070065
66 . = ALIGN(8);
67 .con_initcall.init : {
68 __con_initcall_start = .;
69 *(.con_initcall.init)
70 __con_initcall_end = .;
71 }
72
73 . = ALIGN(8);
74 SECURITY_INIT
75
Fenghua Yu5fb7dc32007-07-19 01:48:12 -070076 PERCPU(8192)
Linus Torvalds1da177e2005-04-16 15:20:36 -070077
78 . = ALIGN(2*8192);
79 __init_end = .;
80 /* Freed after init ends here */
81
82 /* Note 2 page alignment above. */
83 .data.init_thread : { *(.data.init_thread) }
84
85 . = ALIGN(8192);
86 .data.page_aligned : { *(.data.page_aligned) }
87
88 . = ALIGN(64);
89 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
90
91 _data = .;
92 .data : { /* Data */
Sam Ravnborgca967252007-05-17 13:38:44 +020093 DATA_DATA
Linus Torvalds1da177e2005-04-16 15:20:36 -070094 CONSTRUCTORS
95 }
96
97 .got : { *(.got) }
98 .sdata : { *(.sdata) }
99
100 _edata = .; /* End of data section */
101
102 __bss_start = .;
103 .sbss : { *(.sbss) *(.scommon) }
104 .bss : { *(.bss) *(COMMON) }
105 __bss_stop = .;
106
107 _end = .;
108
109 /* Sections to be discarded */
110 /DISCARD/ : { *(.exit.text) *(.exit.data) *(.exitcall.exit) }
111
112 .mdebug 0 : { *(.mdebug) }
113 .note 0 : { *(.note) }
114 .comment 0 : { *(.comment) }
115
116 /* Stabs debugging sections */
117 .stab 0 : { *(.stab) }
118 .stabstr 0 : { *(.stabstr) }
119 .stab.excl 0 : { *(.stab.excl) }
120 .stab.exclstr 0 : { *(.stab.exclstr) }
121 .stab.index 0 : { *(.stab.index) }
122 .stab.indexstr 0 : { *(.stab.indexstr) }
123 /* DWARF 1 */
124 .debug 0 : { *(.debug) }
125 .line 0 : { *(.line) }
126 /* GNU DWARF 1 extensions */
127 .debug_srcinfo 0 : { *(.debug_srcinfo) }
128 .debug_sfnames 0 : { *(.debug_sfnames) }
129 /* DWARF 1.1 and DWARF 2 */
130 .debug_aranges 0 : { *(.debug_aranges) }
131 .debug_pubnames 0 : { *(.debug_pubnames) }
132 /* DWARF 2 */
133 .debug_info 0 : { *(.debug_info) }
134 .debug_abbrev 0 : { *(.debug_abbrev) }
135 .debug_line 0 : { *(.debug_line) }
136 .debug_frame 0 : { *(.debug_frame) }
137 .debug_str 0 : { *(.debug_str) }
138 .debug_loc 0 : { *(.debug_loc) }
139 .debug_macinfo 0 : { *(.debug_macinfo) }
140 /* SGI/MIPS DWARF 2 extensions */
141 .debug_weaknames 0 : { *(.debug_weaknames) }
142 .debug_funcnames 0 : { *(.debug_funcnames) }
143 .debug_typenames 0 : { *(.debug_typenames) }
144 .debug_varnames 0 : { *(.debug_varnames) }
145}