summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog2
-rwxr-xr-xdh_strip9
2 files changed, 10 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog
index a3a72c7a..13320c2c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
debhelper (8.9.13) UNRELEASED; urgency=low
* Pass CPPFLAGS to qmake. Closes: #646129 Thanks, Felix Geyert
+ * dh_strip: Use build-id in /usr/lib/debug.
+ Closes: #642158 Thanks, Jakub Wilk
-- Joey Hess <joeyh@debian.org> Thu, 08 Dec 2011 18:27:02 -0400
diff --git a/dh_strip b/dh_strip
index 4dc69616..be0b000d 100755
--- a/dh_strip
+++ b/dh_strip
@@ -161,7 +161,14 @@ sub make_debug {
return unless get_file_type($file) =~ /not stripped/;
my ($base_file)=$file=~/^\Q$tmp\E(.*)/;
- my $debug_path=$desttmp."/usr/lib/debug/".$base_file;
+ my $debug_path;
+ my $elfnotes=`readelf -n $file`;
+ if ($elfnotes =~ /^\s+Build ID: ([0-9a-f]{2})([0-9a-f]+)$/m) {
+ $debug_path=$desttmp."/usr/lib/debug/.build-id/$1/$2.debug"
+ }
+ else {
+ $debug_path=$desttmp."/usr/lib/debug/".$base_file;
+ }
my $debug_dir=dirname($debug_path);
if (! -d $debug_dir) {
doit("install", "-d", $debug_dir);