blob: 99cef06a364a6cdc3a3fc4756cb29646cbeb7925 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#ifndef LOAD_OFFSET
2#define LOAD_OFFSET 0
3#endif
4
5#ifndef VMLINUX_SYMBOL
6#define VMLINUX_SYMBOL(_sym_) _sym_
7#endif
8
9#define RODATA \
10 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
11 *(.rodata) *(.rodata.*) \
12 *(__vermagic) /* Kernel version magic */ \
13 } \
14 \
15 .rodata1 : AT(ADDR(.rodata1) - LOAD_OFFSET) { \
16 *(.rodata1) \
17 } \
18 \
19 /* PCI quirks */ \
20 .pci_fixup : AT(ADDR(.pci_fixup) - LOAD_OFFSET) { \
21 VMLINUX_SYMBOL(__start_pci_fixups_early) = .; \
22 *(.pci_fixup_early) \
23 VMLINUX_SYMBOL(__end_pci_fixups_early) = .; \
24 VMLINUX_SYMBOL(__start_pci_fixups_header) = .; \
25 *(.pci_fixup_header) \
26 VMLINUX_SYMBOL(__end_pci_fixups_header) = .; \
27 VMLINUX_SYMBOL(__start_pci_fixups_final) = .; \
28 *(.pci_fixup_final) \
29 VMLINUX_SYMBOL(__end_pci_fixups_final) = .; \
30 VMLINUX_SYMBOL(__start_pci_fixups_enable) = .; \
31 *(.pci_fixup_enable) \
32 VMLINUX_SYMBOL(__end_pci_fixups_enable) = .; \
33 } \
34 \
35 /* Kernel symbol table: Normal symbols */ \
36 __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
37 VMLINUX_SYMBOL(__start___ksymtab) = .; \
38 *(__ksymtab) \
39 VMLINUX_SYMBOL(__stop___ksymtab) = .; \
40 } \
41 \
42 /* Kernel symbol table: GPL-only symbols */ \
43 __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) { \
44 VMLINUX_SYMBOL(__start___ksymtab_gpl) = .; \
45 *(__ksymtab_gpl) \
46 VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .; \
47 } \
48 \
49 /* Kernel symbol table: Normal symbols */ \
50 __kcrctab : AT(ADDR(__kcrctab) - LOAD_OFFSET) { \
51 VMLINUX_SYMBOL(__start___kcrctab) = .; \
52 *(__kcrctab) \
53 VMLINUX_SYMBOL(__stop___kcrctab) = .; \
54 } \
55 \
56 /* Kernel symbol table: GPL-only symbols */ \
57 __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) { \
58 VMLINUX_SYMBOL(__start___kcrctab_gpl) = .; \
59 *(__kcrctab_gpl) \
60 VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .; \
61 } \
62 \
63 /* Kernel symbol table: strings */ \
64 __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
65 *(__ksymtab_strings) \
66 } \
67 \
68 /* Built-in module parameters. */ \
69 __param : AT(ADDR(__param) - LOAD_OFFSET) { \
70 VMLINUX_SYMBOL(__start___param) = .; \
71 *(__param) \
72 VMLINUX_SYMBOL(__stop___param) = .; \
73 }
74
75#define SECURITY_INIT \
76 .security_initcall.init : { \
77 VMLINUX_SYMBOL(__security_initcall_start) = .; \
78 *(.security_initcall.init) \
79 VMLINUX_SYMBOL(__security_initcall_end) = .; \
80 }
81
82#define SCHED_TEXT \
83 VMLINUX_SYMBOL(__sched_text_start) = .; \
84 *(.sched.text) \
85 VMLINUX_SYMBOL(__sched_text_end) = .;
86
87#define LOCK_TEXT \
88 VMLINUX_SYMBOL(__lock_text_start) = .; \
89 *(.spinlock.text) \
90 VMLINUX_SYMBOL(__lock_text_end) = .;