include/asm-generic/vmlinux.lds.h | 52 +++++++++++++++---------------------- 1 files changed, 21 insertions(+), 31 deletions(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 48c5299..b91a555 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -91,51 +91,50 @@ #define MEM_DISCARD(sec) *(.mem##sec) #endif +#define SYMBOL_SECTION(name, section) \ + . = ALIGN(32); \ + VMLINUX_SYMBOL(__start_##section) = .; \ + *(name) \ + VMLINUX_SYMBOL(__stop_##section) = .; + #ifdef CONFIG_FTRACE_MCOUNT_RECORD -#define MCOUNT_REC() . = ALIGN(8); \ - VMLINUX_SYMBOL(__start_mcount_loc) = .; \ - *(__mcount_loc) \ - VMLINUX_SYMBOL(__stop_mcount_loc) = .; +#define MCOUNT_REC() \ + SYMBOL_SECTION(__mcount_lock, mcount_loc) #else #define MCOUNT_REC() #endif #ifdef CONFIG_TRACE_BRANCH_PROFILING -#define LIKELY_PROFILE() VMLINUX_SYMBOL(__start_annotated_branch_profile) = .; \ - *(_ftrace_annotated_branch) \ - VMLINUX_SYMBOL(__stop_annotated_branch_profile) = .; +#define LIKELY_PROFILE() \ + SYMBOL_SECTION(_ftrace_annotated_branch, annotated_branch_profile) #else #define LIKELY_PROFILE() #endif #ifdef CONFIG_PROFILE_ALL_BRANCHES -#define BRANCH_PROFILE() VMLINUX_SYMBOL(__start_branch_profile) = .; \ - *(_ftrace_branch) \ - VMLINUX_SYMBOL(__stop_branch_profile) = .; +#define BRANCH_PROFILE() \ + SYMBOL_SECTION(_ftrace_branch, branch_profile) #else #define BRANCH_PROFILE() #endif #ifdef CONFIG_EVENT_TRACING -#define FTRACE_EVENTS() VMLINUX_SYMBOL(__start_ftrace_events) = .; \ - *(_ftrace_events) \ - VMLINUX_SYMBOL(__stop_ftrace_events) = .; +#define FTRACE_EVENTS() \ + SYMBOL_SECTION(_ftrace_events, ftrace_events) #else #define FTRACE_EVENTS() #endif #ifdef CONFIG_TRACING -#define TRACE_PRINTKS() VMLINUX_SYMBOL(__start___trace_bprintk_fmt) = .; \ - *(__trace_printk_fmt) /* Trace_printk fmt' pointer */ \ - VMLINUX_SYMBOL(__stop___trace_bprintk_fmt) = .; +#define TRACE_PRINTKS() \ + SYMBOL_SECTION(__trace_printk_fmt, __trace_bprintk_fmt) #else #define TRACE_PRINTKS() #endif #ifdef CONFIG_FTRACE_SYSCALLS -#define TRACE_SYSCALLS() VMLINUX_SYMBOL(__start_syscalls_metadata) = .; \ - *(__syscalls_metadata) \ - VMLINUX_SYMBOL(__stop_syscalls_metadata) = .; +#define TRACE_SYSCALLS() \ + SYMBOL_SECTION(__syscalls_metadata, syscalls_metadata) #else #define TRACE_SYSCALLS() #endif @@ -150,19 +149,10 @@ CPU_KEEP(exit.data) \ MEM_KEEP(init.data) \ MEM_KEEP(exit.data) \ - . = ALIGN(8); \ - VMLINUX_SYMBOL(__start___markers) = .; \ - *(__markers) \ - VMLINUX_SYMBOL(__stop___markers) = .; \ - . = ALIGN(32); \ - VMLINUX_SYMBOL(__start___tracepoints) = .; \ - *(__tracepoints) \ - VMLINUX_SYMBOL(__stop___tracepoints) = .; \ + SYMBOL_SECTION(__markers, __markers) \ + SYMBOL_SECTION(__tracepoints, __tracepoints); \ /* implement dynamic printk debug */ \ - . = ALIGN(8); \ - VMLINUX_SYMBOL(__start___verbose) = .; \ - *(__verbose) \ - VMLINUX_SYMBOL(__stop___verbose) = .; \ + SYMBOL_SECTION(__verbose, __verbose) \ LIKELY_PROFILE() \ BRANCH_PROFILE() \ TRACE_PRINTKS() \