|
@@ -114,7 +114,7 @@
|
|
|
#ifdef CONFIG_KPROBES
|
|
|
#define KPROBE_BLACKLIST() . = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__start_kprobe_blacklist) = .; \
|
|
|
- *(_kprobe_blacklist) \
|
|
|
+ KEEP(*(_kprobe_blacklist)) \
|
|
|
VMLINUX_SYMBOL(__stop_kprobe_blacklist) = .;
|
|
|
#else
|
|
|
#define KPROBE_BLACKLIST()
|
|
@@ -123,10 +123,10 @@
|
|
|
#ifdef CONFIG_EVENT_TRACING
|
|
|
#define FTRACE_EVENTS() . = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__start_ftrace_events) = .; \
|
|
|
- *(_ftrace_events) \
|
|
|
+ KEEP(*(_ftrace_events)) \
|
|
|
VMLINUX_SYMBOL(__stop_ftrace_events) = .; \
|
|
|
VMLINUX_SYMBOL(__start_ftrace_enum_maps) = .; \
|
|
|
- *(_ftrace_enum_map) \
|
|
|
+ KEEP(*(_ftrace_enum_map)) \
|
|
|
VMLINUX_SYMBOL(__stop_ftrace_enum_maps) = .;
|
|
|
#else
|
|
|
#define FTRACE_EVENTS()
|
|
@@ -134,10 +134,10 @@
|
|
|
|
|
|
#ifdef CONFIG_TRACING
|
|
|
#define TRACE_PRINTKS() VMLINUX_SYMBOL(__start___trace_bprintk_fmt) = .; \
|
|
|
- *(__trace_printk_fmt) /* Trace_printk fmt' pointer */ \
|
|
|
+ KEEP(*(__trace_printk_fmt)) /* Trace_printk fmt' pointer */ \
|
|
|
VMLINUX_SYMBOL(__stop___trace_bprintk_fmt) = .;
|
|
|
#define TRACEPOINT_STR() VMLINUX_SYMBOL(__start___tracepoint_str) = .; \
|
|
|
- *(__tracepoint_str) /* Trace_printk fmt' pointer */ \
|
|
|
+ KEEP(*(__tracepoint_str)) /* Trace_printk fmt' pointer */ \
|
|
|
VMLINUX_SYMBOL(__stop___tracepoint_str) = .;
|
|
|
#else
|
|
|
#define TRACE_PRINTKS()
|
|
@@ -147,7 +147,7 @@
|
|
|
#ifdef CONFIG_FTRACE_SYSCALLS
|
|
|
#define TRACE_SYSCALLS() . = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__start_syscalls_metadata) = .; \
|
|
|
- *(__syscalls_metadata) \
|
|
|
+ KEEP(*(__syscalls_metadata)) \
|
|
|
VMLINUX_SYMBOL(__stop_syscalls_metadata) = .;
|
|
|
#else
|
|
|
#define TRACE_SYSCALLS()
|
|
@@ -156,7 +156,7 @@
|
|
|
#ifdef CONFIG_SERIAL_EARLYCON
|
|
|
#define EARLYCON_TABLE() STRUCT_ALIGN(); \
|
|
|
VMLINUX_SYMBOL(__earlycon_table) = .; \
|
|
|
- *(__earlycon_table) \
|
|
|
+ KEEP(*(__earlycon_table)) \
|
|
|
VMLINUX_SYMBOL(__earlycon_table_end) = .;
|
|
|
#else
|
|
|
#define EARLYCON_TABLE()
|
|
@@ -169,8 +169,8 @@
|
|
|
#define _OF_TABLE_1(name) \
|
|
|
. = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__##name##_of_table) = .; \
|
|
|
- *(__##name##_of_table) \
|
|
|
- *(__##name##_of_table_end)
|
|
|
+ KEEP(*(__##name##_of_table)) \
|
|
|
+ KEEP(*(__##name##_of_table_end))
|
|
|
|
|
|
#define CLKSRC_OF_TABLES() OF_TABLE(CONFIG_CLKSRC_OF, clksrc)
|
|
|
#define IRQCHIP_OF_MATCH_TABLE() OF_TABLE(CONFIG_IRQCHIP, irqchip)
|
|
@@ -184,7 +184,7 @@
|
|
|
#define ACPI_PROBE_TABLE(name) \
|
|
|
. = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__##name##_acpi_probe_table) = .; \
|
|
|
- *(__##name##_acpi_probe_table) \
|
|
|
+ KEEP(*(__##name##_acpi_probe_table)) \
|
|
|
VMLINUX_SYMBOL(__##name##_acpi_probe_table_end) = .;
|
|
|
#else
|
|
|
#define ACPI_PROBE_TABLE(name)
|
|
@@ -193,7 +193,7 @@
|
|
|
#define KERNEL_DTB() \
|
|
|
STRUCT_ALIGN(); \
|
|
|
VMLINUX_SYMBOL(__dtb_start) = .; \
|
|
|
- *(.dtb.init.rodata) \
|
|
|
+ KEEP(*(.dtb.init.rodata)) \
|
|
|
VMLINUX_SYMBOL(__dtb_end) = .;
|
|
|
|
|
|
/*
|
|
@@ -214,11 +214,11 @@
|
|
|
/* implement dynamic printk debug */ \
|
|
|
. = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__start___jump_table) = .; \
|
|
|
- *(__jump_table) \
|
|
|
+ KEEP(*(__jump_table)) \
|
|
|
VMLINUX_SYMBOL(__stop___jump_table) = .; \
|
|
|
. = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__start___verbose) = .; \
|
|
|
- *(__verbose) \
|
|
|
+ KEEP(*(__verbose)) \
|
|
|
VMLINUX_SYMBOL(__stop___verbose) = .; \
|
|
|
LIKELY_PROFILE() \
|
|
|
BRANCH_PROFILE() \
|
|
@@ -271,10 +271,10 @@
|
|
|
VMLINUX_SYMBOL(__start_rodata) = .; \
|
|
|
*(.rodata) *(.rodata.*) \
|
|
|
RO_AFTER_INIT_DATA /* Read only after init */ \
|
|
|
- *(__vermagic) /* Kernel version magic */ \
|
|
|
+ KEEP(*(__vermagic)) /* Kernel version magic */ \
|
|
|
. = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
|
|
|
- *(__tracepoints_ptrs) /* Tracepoints: pointer array */\
|
|
|
+ KEEP(*(__tracepoints_ptrs)) /* Tracepoints: pointer array */ \
|
|
|
VMLINUX_SYMBOL(__stop___tracepoints_ptrs) = .; \
|
|
|
*(__tracepoints_strings)/* Tracepoints: strings */ \
|
|
|
} \
|
|
@@ -288,35 +288,35 @@
|
|
|
/* PCI quirks */ \
|
|
|
.pci_fixup : AT(ADDR(.pci_fixup) - LOAD_OFFSET) { \
|
|
|
VMLINUX_SYMBOL(__start_pci_fixups_early) = .; \
|
|
|
- *(.pci_fixup_early) \
|
|
|
+ KEEP(*(.pci_fixup_early)) \
|
|
|
VMLINUX_SYMBOL(__end_pci_fixups_early) = .; \
|
|
|
VMLINUX_SYMBOL(__start_pci_fixups_header) = .; \
|
|
|
- *(.pci_fixup_header) \
|
|
|
+ KEEP(*(.pci_fixup_header)) \
|
|
|
VMLINUX_SYMBOL(__end_pci_fixups_header) = .; \
|
|
|
VMLINUX_SYMBOL(__start_pci_fixups_final) = .; \
|
|
|
- *(.pci_fixup_final) \
|
|
|
+ KEEP(*(.pci_fixup_final)) \
|
|
|
VMLINUX_SYMBOL(__end_pci_fixups_final) = .; \
|
|
|
VMLINUX_SYMBOL(__start_pci_fixups_enable) = .; \
|
|
|
- *(.pci_fixup_enable) \
|
|
|
+ KEEP(*(.pci_fixup_enable)) \
|
|
|
VMLINUX_SYMBOL(__end_pci_fixups_enable) = .; \
|
|
|
VMLINUX_SYMBOL(__start_pci_fixups_resume) = .; \
|
|
|
- *(.pci_fixup_resume) \
|
|
|
+ KEEP(*(.pci_fixup_resume)) \
|
|
|
VMLINUX_SYMBOL(__end_pci_fixups_resume) = .; \
|
|
|
VMLINUX_SYMBOL(__start_pci_fixups_resume_early) = .; \
|
|
|
- *(.pci_fixup_resume_early) \
|
|
|
+ KEEP(*(.pci_fixup_resume_early)) \
|
|
|
VMLINUX_SYMBOL(__end_pci_fixups_resume_early) = .; \
|
|
|
VMLINUX_SYMBOL(__start_pci_fixups_suspend) = .; \
|
|
|
- *(.pci_fixup_suspend) \
|
|
|
+ KEEP(*(.pci_fixup_suspend)) \
|
|
|
VMLINUX_SYMBOL(__end_pci_fixups_suspend) = .; \
|
|
|
VMLINUX_SYMBOL(__start_pci_fixups_suspend_late) = .; \
|
|
|
- *(.pci_fixup_suspend_late) \
|
|
|
+ KEEP(*(.pci_fixup_suspend_late)) \
|
|
|
VMLINUX_SYMBOL(__end_pci_fixups_suspend_late) = .; \
|
|
|
} \
|
|
|
\
|
|
|
/* Built-in firmware blobs */ \
|
|
|
.builtin_fw : AT(ADDR(.builtin_fw) - LOAD_OFFSET) { \
|
|
|
VMLINUX_SYMBOL(__start_builtin_fw) = .; \
|
|
|
- *(.builtin_fw) \
|
|
|
+ KEEP(*(.builtin_fw)) \
|
|
|
VMLINUX_SYMBOL(__end_builtin_fw) = .; \
|
|
|
} \
|
|
|
\
|
|
@@ -394,7 +394,7 @@
|
|
|
\
|
|
|
/* Kernel symbol table: strings */ \
|
|
|
__ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
|
|
|
- KEEP(*(__ksymtab_strings)) \
|
|
|
+ *(__ksymtab_strings) \
|
|
|
} \
|
|
|
\
|
|
|
/* __*init sections */ \
|
|
@@ -407,14 +407,14 @@
|
|
|
/* Built-in module parameters. */ \
|
|
|
__param : AT(ADDR(__param) - LOAD_OFFSET) { \
|
|
|
VMLINUX_SYMBOL(__start___param) = .; \
|
|
|
- *(__param) \
|
|
|
+ KEEP(*(__param)) \
|
|
|
VMLINUX_SYMBOL(__stop___param) = .; \
|
|
|
} \
|
|
|
\
|
|
|
/* Built-in module versions. */ \
|
|
|
__modver : AT(ADDR(__modver) - LOAD_OFFSET) { \
|
|
|
VMLINUX_SYMBOL(__start___modver) = .; \
|
|
|
- *(__modver) \
|
|
|
+ KEEP(*(__modver)) \
|
|
|
VMLINUX_SYMBOL(__stop___modver) = .; \
|
|
|
. = ALIGN((align)); \
|
|
|
VMLINUX_SYMBOL(__end_rodata) = .; \
|
|
@@ -517,7 +517,7 @@
|
|
|
. = ALIGN(align); \
|
|
|
__ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { \
|
|
|
VMLINUX_SYMBOL(__start___ex_table) = .; \
|
|
|
- *(__ex_table) \
|
|
|
+ KEEP(*(__ex_table)) \
|
|
|
VMLINUX_SYMBOL(__stop___ex_table) = .; \
|
|
|
}
|
|
|
|
|
@@ -533,9 +533,9 @@
|
|
|
#ifdef CONFIG_CONSTRUCTORS
|
|
|
#define KERNEL_CTORS() . = ALIGN(8); \
|
|
|
VMLINUX_SYMBOL(__ctors_start) = .; \
|
|
|
- *(.ctors) \
|
|
|
- *(SORT(.init_array.*)) \
|
|
|
- *(.init_array) \
|
|
|
+ KEEP(*(.ctors)) \
|
|
|
+ KEEP(*(SORT(.init_array.*))) \
|
|
|
+ KEEP(*(.init_array)) \
|
|
|
VMLINUX_SYMBOL(__ctors_end) = .;
|
|
|
#else
|
|
|
#define KERNEL_CTORS()
|
|
@@ -659,7 +659,7 @@
|
|
|
. = ALIGN(8); \
|
|
|
__bug_table : AT(ADDR(__bug_table) - LOAD_OFFSET) { \
|
|
|
VMLINUX_SYMBOL(__start___bug_table) = .; \
|
|
|
- *(__bug_table) \
|
|
|
+ KEEP(*(__bug_table)) \
|
|
|
VMLINUX_SYMBOL(__stop___bug_table) = .; \
|
|
|
}
|
|
|
#else
|
|
@@ -671,7 +671,7 @@
|
|
|
. = ALIGN(4); \
|
|
|
.tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) { \
|
|
|
VMLINUX_SYMBOL(__tracedata_start) = .; \
|
|
|
- *(.tracedata) \
|
|
|
+ KEEP(*(.tracedata)) \
|
|
|
VMLINUX_SYMBOL(__tracedata_end) = .; \
|
|
|
}
|
|
|
#else
|
|
@@ -688,7 +688,7 @@
|
|
|
#define INIT_SETUP(initsetup_align) \
|
|
|
. = ALIGN(initsetup_align); \
|
|
|
VMLINUX_SYMBOL(__setup_start) = .; \
|
|
|
- *(.init.setup) \
|
|
|
+ KEEP(*(.init.setup)) \
|
|
|
VMLINUX_SYMBOL(__setup_end) = .;
|
|
|
|
|
|
#define INIT_CALLS_LEVEL(level) \
|