diff options
author | Allan McRae <allan@archlinux.org> | 2021-03-27 00:13:05 +0100 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2021-03-27 00:22:15 +0100 |
commit | bdf6aa3fb757a2363a4e708174b7d23a4997763d (patch) | |
tree | 6492a83937c1a587c0e97cae52d85d0bacc1b94e | |
parent | 1e60a5f00674a9a9b0c530c741bd6701d0e1e834 (diff) | |
download | pacman-bdf6aa3fb757a2363a4e708174b7d23a4997763d.tar.gz pacman-bdf6aa3fb757a2363a4e708174b7d23a4997763d.tar.xz |
libmakepkg: fix detection of source file names for debug packages
The current gcc build from git master give different output from
readelf:
gcc-10.2.0
$ readelf "hello" --debug-dump | grep hello
<11> DW_AT_name : (indirect string, offset: 0xbfc): hello.cpp
gcc-git
$ readelf "hello" --debug-dump | grep hello
<12> DW_AT_name : (indirect line string, offset: 0x0): hello.cpp
This causes the awk statement extracting the file name to fail as it
relied on the information being in the 8th field. Instead, extract
the information from the final field.
Fixes FS#70168
Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r-- | scripts/libmakepkg/tidy/strip.sh.in | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/libmakepkg/tidy/strip.sh.in b/scripts/libmakepkg/tidy/strip.sh.in index ceb2a108..737c5115 100644 --- a/scripts/libmakepkg/tidy/strip.sh.in +++ b/scripts/libmakepkg/tidy/strip.sh.in @@ -37,7 +37,7 @@ build_id() { source_files() { LANG=C readelf "$1" --debug-dump | \ - awk '/DW_AT_name +:/{name=$8}/DW_AT_comp_dir +:/{{if (name == "<artificial>") next}{if (name !~ /^[<\/]/) {printf "%s/", $8}}{print name}}' + awk '/DW_AT_name +:/{name=$NF}/DW_AT_comp_dir +:/{{if (name == "<artificial>") next}{if (name !~ /^[<\/]/) {printf "%s/", $NF}}{print name}}' } strip_file() { |