summaryrefslogtreecommitdiff
path: root/dh_strip
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2011-12-08 18:40:02 -0400
committerJoey Hess <joey@kitenet.net>2011-12-08 18:40:02 -0400
commit72b8aa1a2f706537a7941dd9d6c025612c5cc044 (patch)
tree16acb0de089daccbccee9f6ba2c590a3f3b62feb /dh_strip
parentc722e25aeb3ad55c3efa9e60503636939bed1bb2 (diff)
dh_strip: Use build-id in /usr/lib/debug. Closes: #642158 Thanks, Jakub Wilk
I see no reason to make this v9 only.
Diffstat (limited to 'dh_strip')
-rwxr-xr-xdh_strip9
1 files changed, 8 insertions, 1 deletions
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);