[source] kernel: fix ftrace support on 4.9

LEDE Commits lede-commits at lists.infradead.org
Wed Oct 18 13:59:22 PDT 2017


nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/7c42f15c2406481784d654d99244539d71522582

commit 7c42f15c2406481784d654d99244539d71522582
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Wed Oct 18 22:46:29 2017 +0200

    kernel: fix ftrace support on 4.9
    
    When porting the kernel patches from 4.4 to 4.9, they were missing a
    small chunk that ensures that ftrace sections are kept in the vmlinux
    image, even when linked with --gc-sections
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 .../linux/generic/hack-4.9/220-gc_sections.patch   | 27 ++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/target/linux/generic/hack-4.9/220-gc_sections.patch b/target/linux/generic/hack-4.9/220-gc_sections.patch
index 428fcb6..eda8bb8 100644
--- a/target/linux/generic/hack-4.9/220-gc_sections.patch
+++ b/target/linux/generic/hack-4.9/220-gc_sections.patch
@@ -201,6 +201,33 @@ Signed-off-by: Gabor Juhos <juhosg at openwrt.org>
  
 --- a/include/asm-generic/vmlinux.lds.h
 +++ b/include/asm-generic/vmlinux.lds.h
+@@ -105,7 +105,7 @@
+ #ifdef CONFIG_FTRACE_MCOUNT_RECORD
+ #define MCOUNT_REC()	. = ALIGN(8);				\
+ 			VMLINUX_SYMBOL(__start_mcount_loc) = .; \
+-			*(__mcount_loc)				\
++			KEEP(*(__mcount_loc))			\
+ 			VMLINUX_SYMBOL(__stop_mcount_loc) = .;
+ #else
+ #define MCOUNT_REC()
+@@ -113,7 +113,7 @@
+ 
+ #ifdef CONFIG_TRACE_BRANCH_PROFILING
+ #define LIKELY_PROFILE()	VMLINUX_SYMBOL(__start_annotated_branch_profile) = .; \
+-				*(_ftrace_annotated_branch)			      \
++				KEEP(*(_ftrace_annotated_branch))		      \
+ 				VMLINUX_SYMBOL(__stop_annotated_branch_profile) = .;
+ #else
+ #define LIKELY_PROFILE()
+@@ -121,7 +121,7 @@
+ 
+ #ifdef CONFIG_PROFILE_ALL_BRANCHES
+ #define BRANCH_PROFILE()	VMLINUX_SYMBOL(__start_branch_profile) = .;   \
+-				*(_ftrace_branch)			      \
++				KEEP(*(_ftrace_branch))			      \
+ 				VMLINUX_SYMBOL(__stop_branch_profile) = .;
+ #else
+ #define BRANCH_PROFILE()
 @@ -130,7 +130,7 @@
  #ifdef CONFIG_KPROBES
  #define KPROBE_BLACKLIST()	. = ALIGN(8);				      \



More information about the lede-commits mailing list