- #ifndef LOAD_OFFSET
- #define LOAD_OFFSET 0
- #endif
- #ifndef VMLINUX_SYMBOL
- #define VMLINUX_SYMBOL(_sym_) _sym_
- #endif
- /* Align . to a 8 byte boundary equals to maximum function alignment. */
- #define ALIGN_FUNCTION() . = ALIGN(8)
- #define RODATA
- .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) {
- *(.rodata) *(.rodata.*)
- *(__vermagic) /* Kernel version magic */
- }
- .rodata1 : AT(ADDR(.rodata1) - LOAD_OFFSET) {
- *(.rodata1)
- }
- /* PCI quirks */
- .pci_fixup : AT(ADDR(.pci_fixup) - LOAD_OFFSET) {
- VMLINUX_SYMBOL(__start_pci_fixups_early) = .;
- *(.pci_fixup_early)
- VMLINUX_SYMBOL(__end_pci_fixups_early) = .;
- VMLINUX_SYMBOL(__start_pci_fixups_header) = .;
- *(.pci_fixup_header)
- VMLINUX_SYMBOL(__end_pci_fixups_header) = .;
- VMLINUX_SYMBOL(__start_pci_fixups_final) = .;
- *(.pci_fixup_final)
- VMLINUX_SYMBOL(__end_pci_fixups_final) = .;
- VMLINUX_SYMBOL(__start_pci_fixups_enable) = .;
- *(.pci_fixup_enable)
- VMLINUX_SYMBOL(__end_pci_fixups_enable) = .;
- }
- /* Kernel symbol table: Normal symbols */
- __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) {
- VMLINUX_SYMBOL(__start___ksymtab) = .;
- *(__ksymtab)
- VMLINUX_SYMBOL(__stop___ksymtab) = .;
- }
- /* Kernel symbol table: GPL-only symbols */
- __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) {
- VMLINUX_SYMBOL(__start___ksymtab_gpl) = .;
- *(__ksymtab_gpl)
- VMLINUX_SYMBOL(__stop___ksymtab_gpl) = .;
- }
- /* Kernel symbol table: Normal symbols */
- __kcrctab : AT(ADDR(__kcrctab) - LOAD_OFFSET) {
- VMLINUX_SYMBOL(__start___kcrctab) = .;
- *(__kcrctab)
- VMLINUX_SYMBOL(__stop___kcrctab) = .;
- }
- /* Kernel symbol table: GPL-only symbols */
- __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) {
- VMLINUX_SYMBOL(__start___kcrctab_gpl) = .;
- *(__kcrctab_gpl)
- VMLINUX_SYMBOL(__stop___kcrctab_gpl) = .;
- }
- /* Kernel symbol table: strings */
- __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) {
- *(__ksymtab_strings)
- }
- /* Built-in module parameters. */
- __param : AT(ADDR(__param) - LOAD_OFFSET) {
- VMLINUX_SYMBOL(__start___param) = .;
- *(__param)
- VMLINUX_SYMBOL(__stop___param) = .;
- }
- #define SECURITY_INIT
- .security_initcall.init : AT(ADDR(.security_initcall.init) - LOAD_OFFSET) {
- VMLINUX_SYMBOL(__security_initcall_start) = .;
- *(.security_initcall.init)
- VMLINUX_SYMBOL(__security_initcall_end) = .;
- }
- /* sched.text is aling to function alignment to secure we have same
- * address even at second ld pass when generating System.map */
- #define SCHED_TEXT
- ALIGN_FUNCTION();
- VMLINUX_SYMBOL(__sched_text_start) = .;
- *(.sched.text)
- VMLINUX_SYMBOL(__sched_text_end) = .;
- /* spinlock.text is aling to function alignment to secure we have same
- * address even at second ld pass when generating System.map */
- #define LOCK_TEXT
- ALIGN_FUNCTION();
- VMLINUX_SYMBOL(__lock_text_start) = .;
- *(.spinlock.text)
- VMLINUX_SYMBOL(__lock_text_end) = .;
- #define KPROBES_TEXT
- ALIGN_FUNCTION();
- VMLINUX_SYMBOL(__kprobes_text_start) = .;
- *(.kprobes.text)
- VMLINUX_SYMBOL(__kprobes_text_end) = .;
- /* DWARF debug sections.
- Symbols in the DWARF debugging sections are relative to
- the beginning of the section so we begin them at 0. */
- #define DWARF_DEBUG
- /* DWARF 1 */
- .debug 0 : { *(.debug) }
- .line 0 : { *(.line) }
- /* GNU DWARF 1 extensions */
- .debug_srcinfo 0 : { *(.debug_srcinfo) }
- .debug_sfnames 0 : { *(.debug_sfnames) }
- /* DWARF 1.1 and DWARF 2 */
- .debug_aranges 0 : { *(.debug_aranges) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- /* DWARF 2 */
- .debug_info 0 : { *(.debug_info
- .gnu.linkonce.wi.*) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_line 0 : { *(.debug_line) }
- .debug_frame 0 : { *(.debug_frame) }
- .debug_str 0 : { *(.debug_str) }
- .debug_loc 0 : { *(.debug_loc) }
- .debug_macinfo 0 : { *(.debug_macinfo) }
- /* SGI/MIPS DWARF 2 extensions */
- .debug_weaknames 0 : { *(.debug_weaknames) }
- .debug_funcnames 0 : { *(.debug_funcnames) }
- .debug_typenames 0 : { *(.debug_typenames) }
- .debug_varnames 0 : { *(.debug_varnames) }
- /* Stabs debugging sections. */
- #define STABS_DEBUG
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }