From 236dd9d9a2c7563926ca0366e7dba3b60d89bcae Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Thu, 1 Mar 2012 15:13:26 +0000
Subject: [PATCH] kernel: keep more symbols in the kernel modules when doing
 profiling

SVN-Revision: 30762
---
 rules.mk              | 4 +++-
 scripts/strip-kmod.sh | 8 +++++---
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/rules.mk b/rules.mk
index a0ceca8c2e..6684c93c17 100644
--- a/rules.mk
+++ b/rules.mk
@@ -220,7 +220,9 @@ else
     endif
   endif
   RSTRIP:= \
-    export CROSS="$(TARGET_CROSS)" $(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1); \
+    export CROSS="$(TARGET_CROSS)" \
+		$(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1) \
+		$(if $(CONFIG_KERNEL_PROFILING),KEEP_SYMBOLS=1); \
     NM="$(TARGET_CROSS)nm" \
     STRIP="$(STRIP)" \
     STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \
diff --git a/scripts/strip-kmod.sh b/scripts/strip-kmod.sh
index 57207e3ae6..789364f97b 100755
--- a/scripts/strip-kmod.sh
+++ b/scripts/strip-kmod.sh
@@ -11,16 +11,18 @@ MODULE="$1"
 	exit 1
 }
 
+ARGS=
+[ -n "$KEEP_SYMBOLS" ] || ARGS="-x -G __this_module --strip-unneeded"
+
 ${CROSS}objcopy \
-	--strip-unneeded \
 	-R .comment \
 	-R .pdr \
 	-R .mdebug.abi32 \
 	-R .note.gnu.build-id \
 	-R .gnu.attributes \
 	-R .reginfo \
-	-G __this_module \
-	-x "$MODULE" "$MODULE.tmp"
+	$ARGS \
+	"$MODULE" "$MODULE.tmp"
 
 [ -n "$NO_RENAME" ] && {
 	mv "${MODULE}.tmp" "$MODULE"
-- 
GitLab