aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-03-01 15:13:26 +0000
committerFelix Fietkau <nbd@openwrt.org>2012-03-01 15:13:26 +0000
commit236dd9d9a2c7563926ca0366e7dba3b60d89bcae (patch)
tree96ec5c72f8acff2fbc383f3e45e112da3557c36e
parentedc3ad9100856c582e55f6809df24167e0866535 (diff)
downloadupstream-236dd9d9a2c7563926ca0366e7dba3b60d89bcae.tar.gz
upstream-236dd9d9a2c7563926ca0366e7dba3b60d89bcae.tar.bz2
upstream-236dd9d9a2c7563926ca0366e7dba3b60d89bcae.zip
kernel: keep more symbols in the kernel modules when doing profiling
SVN-Revision: 30762
-rw-r--r--rules.mk4
-rwxr-xr-xscripts/strip-kmod.sh8
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"