On Sat, 2010-08-14 at 02:01 +0530, Ritesh Raj Sarraf wrote: > tags 555549 +patch > thanks > > Hello Bastian, > > On Tuesday 10 Aug 2010 13:35:58 Bastian Blank wrote: > > > I tried re-building the kernel image with dh_strip -k but that did not > > > help. So, how is the linux-image-xxxx-dbg package created ? > > > > debian/rules.real shows it. > > Thanks for pointing this out. Attached patch adds .gnu_debuglink section to > the kernel modules pointing to the corresponding kernel modules containing > the > DWARF information. > > Please review the patch and apply. I've generated it against the debian/ > kernel trunk from the svn repository. I would like to see this be part of the > Squeeze release. So please apply this to the Squeeze kernel too. [...] > diff --git a/rules.real b/rules.real > index 0d938f3..bf1771e 100644 > --- a/rules.real > +++ b/rules.real > @@ -345,6 +345,9 @@ install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_plain: > DIR='$(DIR)' PACKAGE_DIR='$(PACKAGE_DIR)' > INSTALL_DIR='$(INSTALL_DIR)' REAL_VERSION='$(REAL_VERSION)' > ifeq ($(MODULES),True) > +$(MAKE_CLEAN) -C $(DIR) modules_install > INSTALL_MOD_PATH='$(CURDIR)'/$(PACKAGE_DIR) INSTALL_MOD_STRIP=1 > + find $(PACKAGE_DIR) -name '*.ko' | sed > 's|$(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/||' | while read module > ; do \ > + objcopy --add-gnu-debuglink=$(DIR)/$$module > $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/$$module; \ > + done [...]
We don't build debug information for all architectures, so this should be done only if DEBUG is True. [I also wonder why we are copying the unstripped modules into /usr/lib/debug and not just debug info? And shouldn't this really be part of Kbuild? Here's how we could do it in Kbuild: --- a/Makefile +++ b/Makefile @@ -623,8 +623,11 @@ export INSTALL_PATH ?= /boot # makefile but the argument can be passed to make if needed. # -MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) +MODLIB_DIR = /lib/modules/$(KERNELRELEASE) +MODLIB = $(INSTALL_MOD_PATH)$(MODLIB_DIR) +MODLIB_DEBUG = $(INSTALL_MOD_PATH)/usr/lib/debug$(MODLIB_DIR) export MODLIB +export MODLIB_DEBUG # # INSTALL_MOD_STRIP, if defined, will cause modules to be --- a/scripts/Makefile.modinst +++ b/scripts/Makefile.modinst @@ -17,7 +17,11 @@ __modinst: $(modules) @: quiet_cmd_modules_install = INSTALL $@ +ifdef INSTALL_MOD_DEBUGLINK + cmd_modules_install = mkdir -p $(2); mkdir -p $(3); $(OBJCOPY) --only-keep-debug $@ $(3)/$(@F) && $(OBJCOPY) --strip-debug --add-gnu-debuglink=$(3)/$(@F) $@ $(2)/$(@F) +else cmd_modules_install = mkdir -p $(2); cp $@ $(2) ; $(mod_strip_cmd) $(2)/$(notdir $@) +endif # Modules built outside the kernel source tree go into extra by default INSTALL_MOD_DIR ?= extra @@ -26,7 +30,7 @@ ext-mod-dir = $(INSTALL_MOD_DIR)$(subst $(patsubst %/,%,$(KBUILD_EXTMOD)),,$(@D) modinst_dir = $(if $(KBUILD_EXTMOD),$(ext-mod-dir),kernel/$(@D)) $(modules): - $(call cmd,modules_install,$(MODLIB)/$(modinst_dir)) + $(call cmd,modules_install,$(MODLIB)/$(modinst_dir),$(MODLIB_DEBUG)/$(modinst_dir)) # Declare the contents of the .PHONY variable as phony. We keep that --- END --- I'm less sure how we would invoke this in debian/rules.*. I think we would need to build the image and image-dbg packages at the same time.] Ben. -- Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse.
signature.asc
Description: This is a digitally signed message part