]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - arch/ppc/kernel/vmlinux.lds.S
98c1212674f6e76c2953c5a9a8a5344bb6b94ca1
[mirror_ubuntu-bionic-kernel.git] / arch / ppc / kernel / vmlinux.lds.S
1 #include <asm-generic/vmlinux.lds.h>
2
3 OUTPUT_ARCH(powerpc:common)
4 jiffies = jiffies_64 + 4;
5 SECTIONS
6 {
7 /* Read-only sections, merged into text segment: */
8 . = + SIZEOF_HEADERS;
9 .interp : { *(.interp) }
10 .hash : { *(.hash) }
11 .gnu.hash : { *(.gnu.hash) }
12 .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 {
34 _text = .;
35 TEXT_TEXT
36 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 {
70 DATA_DATA
71 *(.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 NOTES
95
96 . = ALIGN(4096);
97 __init_begin = .;
98 .init.text : {
99 _sinittext = .;
100 *(.init.text)
101 _einittext = .;
102 }
103 /* .exit.text is discarded at runtime, not link time,
104 to deal with references from __bug_table */
105 .exit.text : { *(.exit.text) }
106 .init.data : {
107 *(.init.data);
108 __vtop_table_begin = .;
109 *(.vtop_fixup);
110 __vtop_table_end = .;
111 __ptov_table_begin = .;
112 *(.ptov_fixup);
113 __ptov_table_end = .;
114 }
115 . = ALIGN(16);
116 __setup_start = .;
117 .init.setup : { *(.init.setup) }
118 __setup_end = .;
119 __initcall_start = .;
120 .initcall.init : {
121 INITCALLS
122 }
123 __initcall_end = .;
124
125 __con_initcall_start = .;
126 .con_initcall.init : { *(.con_initcall.init) }
127 __con_initcall_end = .;
128
129 SECURITY_INIT
130
131 __start___ftr_fixup = .;
132 __ftr_fixup : { *(__ftr_fixup) }
133 __stop___ftr_fixup = .;
134
135 PERCPU(4096)
136
137 #ifdef CONFIG_BLK_DEV_INITRD
138 . = ALIGN(4096);
139 __initramfs_start = .;
140 .init.ramfs : { *(.init.ramfs) }
141 __initramfs_end = .;
142 #endif
143
144 . = ALIGN(4096);
145 __init_end = .;
146
147 . = ALIGN(4096);
148 _sextratext = .;
149 _eextratext = .;
150
151 __bss_start = .;
152 .bss :
153 {
154 *(.sbss) *(.scommon)
155 *(.dynbss)
156 *(.bss)
157 *(COMMON)
158 }
159 __bss_stop = .;
160
161 _end = . ;
162 PROVIDE (end = .);
163
164 /* Sections to be discarded. */
165 /DISCARD/ : {
166 *(.exitcall.exit)
167 *(.exit.data)
168 }
169 }