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
commitd8d82fb79d5fb242b3685318ba5fdf29da8111b5 (patch)
tree66930e31cf682fe578a74f9e53af5e60f969068c
parent99dfff5e689f4edcf8710b7d958e3139f1154ba5 (diff)
downloadupstream-d8d82fb79d5fb242b3685318ba5fdf29da8111b5.tar.gz
upstream-d8d82fb79d5fb242b3685318ba5fdf29da8111b5.tar.bz2
upstream-d8d82fb79d5fb242b3685318ba5fdf29da8111b5.zip
kernel: keep more symbols in the kernel modules when doing profiling
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30762 3c298f89-4303-0410-b956-a3cf2f4a3e73
-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"