diff options
author | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-07-21 15:18:24 +0000 |
---|---|---|
committer | nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2010-07-21 15:18:24 +0000 |
commit | 7b7e4702ef82aa74b69b2a57a835893cfc38691a (patch) | |
tree | 1ba1f04dc6423764eb6d8af2edfbc116eca1a066 | |
parent | b80f2ac0369dfb116e787412e2aab6e0f5f3a11a (diff) |
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
-rw-r--r-- | Config.in | 9 | ||||
-rw-r--r-- | include/kernel-build.mk | 14 |
2 files changed, 23 insertions, 0 deletions
@@ -155,6 +155,15 @@ menu "Global build settings" help This removes all ipkg/opkg status data files from the target directory before building the root fs + config COLLECT_KERNEL_DEBUG + bool + prompt "Colllect kernel debug information" + select KERNEL_DEBUG_INFO + default n + help + This collects debugging symbols from the kernel and all compiled modules. + Useful for release builds, so that kernel issues can be debugged offline later. + comment "Kernel build options" config KERNEL_DEBUG_FS diff --git a/include/kernel-build.mk b/include/kernel-build.mk index 7c5d1fbe9..648e65848 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 |