blob: c0aac3ff9e91443672e54dfbcf1419073de60b33 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#include <asm-generic/vmlinux.lds.h>
2
3OUTPUT_ARCH(powerpc:common)
4jiffies = jiffies_64 + 4;
5SECTIONS
6{
7 /* Read-only sections, merged into text segment: */
8 . = + SIZEOF_HEADERS;
9 .interp : { *(.interp) }
10 .hash : { *(.hash) }
Roland McGrath0b0bf7a2006-07-30 03:04:06 -070011 .gnu.hash : { *(.gnu.hash) }
Linus Torvalds1da177e2005-04-16 15:20:36 -070012 .dynsym : { *(.dynsym) }
13 .dynstr : { *(.dynstr) }
14 .rel.text : { *(.rel.text) }
15 .rela.text : { *(.rela.text) }
16 .rel.data : { *(.rel.data) }
17 .rela.data : { *(.rela.data) }
18 .rel.rodata : { *(.rel.rodata) }
19 .rela.rodata : { *(.rela.rodata) }
20 .rel.got : { *(.rel.got) }
21 .rela.got : { *(.rela.got) }
22 .rel.ctors : { *(.rel.ctors) }
23 .rela.ctors : { *(.rela.ctors) }
24 .rel.dtors : { *(.rel.dtors) }
25 .rela.dtors : { *(.rela.dtors) }
26 .rel.bss : { *(.rel.bss) }
27 .rela.bss : { *(.rela.bss) }
28 .rel.plt : { *(.rel.plt) }
29 .rela.plt : { *(.rela.plt) }
30/* .init : { *(.init) } =0*/
31 .plt : { *(.plt) }
32 .text :
33 {
Eric W. Biedermanfd593d12006-12-07 02:14:04 +010034 _text = .;
Sam Ravnborg76647092007-05-13 00:31:33 +020035 TEXT_TEXT
Linus Torvalds1da177e2005-04-16 15:20:36 -070036 SCHED_TEXT
37 LOCK_TEXT
38 *(.fixup)
39 *(.got1)
40 __got2_start = .;
41 *(.got2)
42 __got2_end = .;
43 }
44 _etext = .;
45 PROVIDE (etext = .);
46
47 RODATA
48 .fini : { *(.fini) } =0
49 .ctors : { *(.ctors) }
50 .dtors : { *(.dtors) }
51
52 .fixup : { *(.fixup) }
53
54 __ex_table : {
55 __start___ex_table = .;
56 *(__ex_table)
57 __stop___ex_table = .;
58 }
59
60 __bug_table : {
61 __start___bug_table = .;
62 *(__bug_table)
63 __stop___bug_table = .;
64 }
65
66 /* Read-write section, merged into data segment: */
67 . = ALIGN(4096);
68 .data :
69 {
Sam Ravnborgca967252007-05-17 13:38:44 +020070 DATA_DATA
Linus Torvalds1da177e2005-04-16 15:20:36 -070071 *(.data1)
72 *(.sdata)
73 *(.sdata2)
74 *(.got.plt) *(.got)
75 *(.dynamic)
76 CONSTRUCTORS
77 }
78
79 . = ALIGN(4096);
80 __nosave_begin = .;
81 .data_nosave : { *(.data.nosave) }
82 . = ALIGN(4096);
83 __nosave_end = .;
84
85 . = ALIGN(32);
86 .data.cacheline_aligned : { *(.data.cacheline_aligned) }
87
88 _edata = .;
89 PROVIDE (edata = .);
90
91 . = ALIGN(8192);
92 .data.init_task : { *(.data.init_task) }
93
94 . = ALIGN(4096);
95 __init_begin = .;
96 .init.text : {
97 _sinittext = .;
98 *(.init.text)
99 _einittext = .;
100 }
Tom Rini6a00cbf2005-09-13 01:25:09 -0700101 /* .exit.text is discarded at runtime, not link time,
102 to deal with references from __bug_table */
103 .exit.text : { *(.exit.text) }
Linus Torvalds1da177e2005-04-16 15:20:36 -0700104 .init.data : {
105 *(.init.data);
106 __vtop_table_begin = .;
107 *(.vtop_fixup);
108 __vtop_table_end = .;
109 __ptov_table_begin = .;
110 *(.ptov_fixup);
111 __ptov_table_end = .;
112 }
113 . = ALIGN(16);
114 __setup_start = .;
115 .init.setup : { *(.init.setup) }
116 __setup_end = .;
117 __initcall_start = .;
118 .initcall.init : {
Andrew Morton61ce1ef2006-10-27 11:41:44 -0700119 INITCALLS
Linus Torvalds1da177e2005-04-16 15:20:36 -0700120 }
121 __initcall_end = .;
122
123 __con_initcall_start = .;
124 .con_initcall.init : { *(.con_initcall.init) }
125 __con_initcall_end = .;
126
127 SECURITY_INIT
128
129 __start___ftr_fixup = .;
130 __ftr_fixup : { *(__ftr_fixup) }
131 __stop___ftr_fixup = .;
132
Fenghua Yu5fb7dc32007-07-19 01:48:12 -0700133 PERCPU(4096)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700134
Jean-Paul Saman67d38222007-02-10 01:44:44 -0800135#ifdef CONFIG_BLK_DEV_INITRD
Linus Torvalds1da177e2005-04-16 15:20:36 -0700136 . = ALIGN(4096);
137 __initramfs_start = .;
138 .init.ramfs : { *(.init.ramfs) }
139 __initramfs_end = .;
Jean-Paul Saman67d38222007-02-10 01:44:44 -0800140#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -0700141
142 . = ALIGN(4096);
143 __init_end = .;
144
145 . = ALIGN(4096);
David Woodhouse075d6eb2005-05-05 16:15:09 -0700146 _sextratext = .;
David Woodhouse075d6eb2005-05-05 16:15:09 -0700147 _eextratext = .;
Linus Torvalds1da177e2005-04-16 15:20:36 -0700148
149 __bss_start = .;
150 .bss :
151 {
152 *(.sbss) *(.scommon)
153 *(.dynbss)
154 *(.bss)
155 *(COMMON)
156 }
157 __bss_stop = .;
158
159 _end = . ;
160 PROVIDE (end = .);
161
162 /* Sections to be discarded. */
163 /DISCARD/ : {
164 *(.exitcall.exit)
Tom Rini6a00cbf2005-09-13 01:25:09 -0700165 *(.exit.data)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700166 }
167}