Compare commits

...
Sign in to create a new pull request.

3 commits

Author SHA1 Message Date
Konrad Kleine
0f7bbde4ae fix logic 2024-02-05 17:10:29 +01:00
Konrad Kleine
8ec2e68a96 Fixup 2024-02-05 15:07:47 +01:00
Konrad Kleine
be1f55b4be Use correct DWARF version
Instead of checking for DWARF4 only we now check for DWARF5 if clang is
greater or equal to version 18.

The grep in the output of `llvm-dwarfdump` could potentially match other
hex numbers and now only matches the version.
2024-02-02 10:35:33 +01:00
4 changed files with 30 additions and 9 deletions

2
use-correct-dwarf-default/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
a.out
build.log

View file

@ -7,8 +7,8 @@ tier: 1
component:
- llvm-toolset
- clang
extra-summary: /tools/clang/use-dwarf4-by-default
extra-task: /tools/clang/use-dwarf4-by-default
extra-summary: /tools/clang/use-correct-dwarf-default
extra-task: /tools/clang/use-correct-dwarf-default
extra-nitrate: TC#0614134
adjust:

View file

@ -0,0 +1,26 @@
#!/bin/sh -eux
# Determine correct DWARF version to use. If Clang is newer or equal to version
# 18, we want to use DWARF5 except for Fedora 38 where we still want DWARF4.
required_dwarf_version=4
# Get clang version
clang_version=$(rpm -q --queryformat "%{version}" clang | grep -ioP "^[0-9]+")
if [ $clang_version -ge 18 ]; then
>&2 echo "clang is greater or equal version 18";
required_dwarf_version=5
fi
if [ -e /etc/fedora-release ]; then
fedora_version=$(grep -ioP "Fedora release \K[0-9]+" /etc/fedora-release)
if [ $fedora_version -le 38 ]; then
required_dwarf_version=4
fi
fi
echo "int main(){ return 0; }" | clang -g -v -x c - 2> build.log
# Make sure that clang is using the expected flag to use the required DWARF version
grep -q "\-dwarf-version=$required_dwarf_version" build.log
# Inspect the binary to double check expected DWARF version
llvm-dwarfdump a.out | grep -ioP "version\s*=\s*0x000$required_dwarf_version"

View file

@ -1,7 +0,0 @@
#!/bin/sh -eux
echo "int main(){ return 0; }" | clang -g -v -x c - 2> build.log
# Make sure that clang is using the expected flag to use DWARF 4
grep -q "\-dwarf-version=4" build.log
# Inspect the binary to double check expected DWARF version
llvm-dwarfdump a.out | grep -i version | grep 0x0004