aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-generic/vmlinux.lds.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-generic/vmlinux.lds.h')
-rw-r--r--include/asm-generic/vmlinux.lds.h55
1 files changed, 53 insertions, 2 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 69240b52f8e1..7437ccaada77 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -11,8 +11,8 @@
11 11
12#define RODATA \ 12#define RODATA \
13 . = ALIGN(4096); \ 13 . = ALIGN(4096); \
14 __start_rodata = .; \
15 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ 14 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
15 VMLINUX_SYMBOL(__start_rodata) = .; \
16 *(.rodata) *(.rodata.*) \ 16 *(.rodata) *(.rodata.*) \
17 *(__vermagic) /* Kernel version magic */ \ 17 *(__vermagic) /* Kernel version magic */ \
18 } \ 18 } \
@@ -119,13 +119,16 @@
119 *(__ksymtab_strings) \ 119 *(__ksymtab_strings) \
120 } \ 120 } \
121 \ 121 \
122 EH_FRAME \
123 \
122 /* Built-in module parameters. */ \ 124 /* Built-in module parameters. */ \
123 __param : AT(ADDR(__param) - LOAD_OFFSET) { \ 125 __param : AT(ADDR(__param) - LOAD_OFFSET) { \
124 VMLINUX_SYMBOL(__start___param) = .; \ 126 VMLINUX_SYMBOL(__start___param) = .; \
125 *(__param) \ 127 *(__param) \
126 VMLINUX_SYMBOL(__stop___param) = .; \ 128 VMLINUX_SYMBOL(__stop___param) = .; \
129 VMLINUX_SYMBOL(__end_rodata) = .; \
127 } \ 130 } \
128 __end_rodata = .; \ 131 \
129 . = ALIGN(4096); 132 . = ALIGN(4096);
130 133
131#define SECURITY_INIT \ 134#define SECURITY_INIT \
@@ -157,6 +160,26 @@
157 *(.kprobes.text) \ 160 *(.kprobes.text) \
158 VMLINUX_SYMBOL(__kprobes_text_end) = .; 161 VMLINUX_SYMBOL(__kprobes_text_end) = .;
159 162
163#ifdef CONFIG_STACK_UNWIND
164#define EH_FRAME \
165 /* Unwind data binary search table */ \
166 . = ALIGN(8); \
167 .eh_frame_hdr : AT(ADDR(.eh_frame_hdr) - LOAD_OFFSET) { \
168 VMLINUX_SYMBOL(__start_unwind_hdr) = .; \
169 *(.eh_frame_hdr) \
170 VMLINUX_SYMBOL(__end_unwind_hdr) = .; \
171 } \
172 /* Unwind data */ \
173 . = ALIGN(8); \
174 .eh_frame : AT(ADDR(.eh_frame) - LOAD_OFFSET) { \
175 VMLINUX_SYMBOL(__start_unwind) = .; \
176 *(.eh_frame) \
177 VMLINUX_SYMBOL(__end_unwind) = .; \
178 }
179#else
180#define EH_FRAME
181#endif
182
160 /* DWARF debug sections. 183 /* DWARF debug sections.
161 Symbols in the DWARF debugging sections are relative to 184 Symbols in the DWARF debugging sections are relative to
162 the beginning of the section so we begin them at 0. */ 185 the beginning of the section so we begin them at 0. */
@@ -195,5 +218,33 @@
195 .stab.indexstr 0 : { *(.stab.indexstr) } \ 218 .stab.indexstr 0 : { *(.stab.indexstr) } \
196 .comment 0 : { *(.comment) } 219 .comment 0 : { *(.comment) }
197 220
221#define BUG_TABLE \
222 . = ALIGN(8); \
223 __bug_table : AT(ADDR(__bug_table) - LOAD_OFFSET) { \
224 __start___bug_table = .; \
225 *(__bug_table) \
226 __stop___bug_table = .; \
227 }
228
198#define NOTES \ 229#define NOTES \
199 .notes : { *(.note.*) } :note 230 .notes : { *(.note.*) } :note
231
232#define INITCALLS \
233 *(.initcall0.init) \
234 *(.initcall0s.init) \
235 *(.initcall1.init) \
236 *(.initcall1s.init) \
237 *(.initcall2.init) \
238 *(.initcall2s.init) \
239 *(.initcall3.init) \
240 *(.initcall3s.init) \
241 *(.initcall4.init) \
242 *(.initcall4s.init) \
243 *(.initcall5.init) \
244 *(.initcall5s.init) \
245 *(.initcallrootfs.init) \
246 *(.initcall6.init) \
247 *(.initcall6s.init) \
248 *(.initcall7.init) \
249 *(.initcall7s.init)
250