Commit 8b4be66a authored by Eli Schwartz's avatar Eli Schwartz Committed by Allan McRae
Browse files

libmakepkg/tidy: fix debug sources not being properly detected sometimes

DW_AT_comp_dir is meant to contain the directory in which the compiler
was run

DW_AT_name contains the source file the compiler was told to use.

In the event that DW_AT_name is an absolute path, it is (obviously) not
meant to be computed relative to DW_AT_comp_dir. However, we did not
handle this correctly, and as a result tried to copy source files using
doubled-up filepaths.

The correct approach should be to use DW_AT_name on its own, in the
event that it is an absolute path.



This fixes debug package generation for many packages that use absolute
paths in their build systems... like CMake.
Reported-by: default avatarJagannathan Tiruvallur Eachambadi <>
Signed-off-by: Eli Schwartz's avatarEli Schwartz <>
Signed-off-by: Allan McRae's avatarAllan McRae <>
parent 9a8c7154
......@@ -37,7 +37,7 @@ build_id() {
source_files() {
LANG=C readelf "$1" --debug-dump | \
awk '/DW_AT_name +:/{name=$8}/DW_AT_comp_dir +:/{print $8 "/" name}'
awk '/DW_AT_name +:/{name=$8}/DW_AT_comp_dir +:/{{if (name !~ /^\//) {printf "%s/", $8}}{print name}}'
strip_file() {
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment