aboutsummaryrefslogtreecommitdiffstats
path: root/include/kernel-build.mk
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2010-07-21 15:18:24 +0000
committerFelix Fietkau <nbd@openwrt.org>2010-07-21 15:18:24 +0000
commit0bc00cc46087df6ff79a7522242cf6a1bbf95ead (patch)
tree1ba1f04dc6423764eb6d8af2edfbc116eca1a066 /include/kernel-build.mk
parentf3ff256eda5621186e2b7b339949544f38cead68 (diff)
downloadmaster-187ad058-0bc00cc46087df6ff79a7522242cf6a1bbf95ead.tar.gz
master-187ad058-0bc00cc46087df6ff79a7522242cf6a1bbf95ead.tar.bz2
master-187ad058-0bc00cc46087df6ff79a7522242cf6a1bbf95ead.zip
add a build system option for collecting all kernel debug information (including modules) in a tarball
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22327 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'include/kernel-build.mk')
-rw-r--r--include/kernel-build.mk14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/kernel-build.mk b/include/kernel-build.mk
index 7c5d1fbe9c..648e65848a 100644
--- a/include/kernel-build.mk
+++ b/include/kernel-build.mk
@@ -44,6 +44,19 @@ define Download/kernel
MD5SUM:=$(LINUX_KERNEL_MD5SUM)
endef
+ifdef CONFIG_COLLECT_KERNEL_DEBUG
+ define Kernel/CollectDebug
+ rm -rf $(KERNEL_BUILD_DIR)/debug
+ mkdir -p $(KERNEL_BUILD_DIR)/debug/modules
+ $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/debug/
+ -$(CP) \
+ $(STAGING_DIR_ROOT)/lib/modules/$(LINUX_VERSION)/* \
+ $(KERNEL_BUILD_DIR)/debug/modules/
+ $(FIND) $(KERNEL_BUILD_DIR)/debug -type f | $(XARGS) $(KERNEL_CROSS)strip --only-keep-debug
+ $(TAR) c -C $(KERNEL_BUILD_DIR) debug | bzip2 -c -9 > $(BIN_DIR)/kernel-debug.tar.bz2
+ endef
+endif
+
define BuildKernel
$(if $(QUILT),$(Build/Quilt))
$(if $(LINUX_SITE),$(call Download,kernel))
@@ -86,6 +99,7 @@ define BuildKernel
$(LINUX_DIR)/.image: $(STAMP_CONFIGURED) $(if $(CONFIG_STRIP_KERNEL_EXPORTS),$(KERNEL_BUILD_DIR)/symtab.h) FORCE
$(Kernel/CompileImage)
+ $(Kernel/CollectDebug)
touch $$@
mostlyclean: FORCE