[linux] 01/01: linux-image-dbg: Don't rely on upstream makefile to make .build-id links to vDSO debuginfo

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Tue Jan 19 19:17:36 UTC 2016


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch sid
in repository linux.

commit 33cd223d586dc562f96dbc9b701513ebd1099c08
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Tue Jan 19 17:32:46 2016 +0000

    linux-image-dbg: Don't rely on upstream makefile to make .build-id links to vDSO debuginfo
    
    Fixes FTBFS on arm64, s390.
---
 debian/changelog  |  7 +++++++
 debian/rules.real | 15 ++++++++-------
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 578a893..83d54a0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+linux (4.3.3-7) unstable; urgency=medium
+
+  * linux-image-dbg: Don't rely on upstream makefile to make .build-id
+    links to vDSO debuginfo (fixes FTBFS on arm64, s390)
+
+ -- Ben Hutchings <ben at decadent.org.uk>  Tue, 19 Jan 2016 17:29:21 +0000
+
 linux (4.3.3-6) unstable; urgency=medium
 
   [ Ben Hutchings ]
diff --git a/debian/rules.real b/debian/rules.real
index 9a284ba..a2db245 100644
--- a/debian/rules.real
+++ b/debian/rules.real
@@ -431,14 +431,15 @@ ifeq ($(MODULES),True)
 endif
 ifeq ($(VDSO),True)
 	+$(MAKE_CLEAN) -C $(DIR) vdso_install INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR)
-# Fix .build-id links
-	find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/.build-id -name '*.debug' | while read link; do \
-		rel_path="$${link#$(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/.build-id/}" && \
-		mkdir -p "$(DEBUG_DIR)/.build-id/$$(dirname "$$rel_path")" && \
-		ln -s -r -L "$$link" "$(DEBUG_DIR)/.build-id/$$rel_path" || \
-		exit; \
+# Create .build-id links.  Some architectures already do so, but in the
+# wrong place, so delete those first.
+	rm -rf $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/.build-id
+	find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/ -type f | while read vdso; do \
+		if buildid="$$(readelf -n "$$vdso" | sed -rne 's/^\s+Build ID: (.*)$$/\1/p')" && [ "$$buildid" ]; then \
+			mkdir -p "$(DEBUG_DIR)/.build-id/$${buildid:0:2}"; \
+			ln -s -r "$$vdso" "$(DEBUG_DIR)/.build-id/$${buildid:0:2}/$${buildid:2}.debug"; \
+		fi; \
 	done
-	rm -r $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/.build-id
 endif
 # Add symlinks to vmlinux from the locations expected by kdump-tools,
 # systemtap and others

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list