summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"