add a build system option for collecting all kernel debug information (including modules) in a tarball

SVN-Revision: 22327
lede-17.01
Felix Fietkau 2010-07-21 15:18:24 +00:00
parent 91edb99017
commit fd8142403e
2 changed files with 23 additions and 0 deletions

View File

@ -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

View File

@ -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