From dade06cfdd09e14ebd04b8ffc61909228ec8fc9d Mon Sep 17 00:00:00 2001 From: Jesus Checa Hidalgo Date: Mon, 10 Jun 2024 11:39:04 +0200 Subject: [PATCH] use-correct-dwarf-default: Update test * The default version is now 5. If clang version is older than 18 then fall back to version 4. * Added optional env var to overwrite required dwarf version. * Updated fmf metadata to use dwarf4 in distros that don't support v5 * Fedora 38 is EOL, removed dead code. --- tests/use-correct-dwarf-default/main.fmf | 4 ++++ tests/use-correct-dwarf-default/runtest.sh | 21 +++++++-------------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/tests/use-correct-dwarf-default/main.fmf b/tests/use-correct-dwarf-default/main.fmf index 3dcde07..ed39bd9 100644 --- a/tests/use-correct-dwarf-default/main.fmf +++ b/tests/use-correct-dwarf-default/main.fmf @@ -25,3 +25,7 @@ adjust+: - llvm-toolset-15.0-clang - llvm-toolset-15.0-llvm when: "collection == llvm-toolset-15.0" + + - environment+: + DWARF_VERSION: 4 + when: distro < rhel-10 or distro < centos-stream-10 diff --git a/tests/use-correct-dwarf-default/runtest.sh b/tests/use-correct-dwarf-default/runtest.sh index 9918462..926658e 100755 --- a/tests/use-correct-dwarf-default/runtest.sh +++ b/tests/use-correct-dwarf-default/runtest.sh @@ -1,23 +1,16 @@ #!/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 +# Determine correct DWARF version to use. Defaults to version 5, but older +# distros might need to use version 4, which can be configured using the +# DWARF_VERSION env var +required_dwarf_version=${DWARF_VERSION:-5} # Get clang version CLANG_PKG=$(rpm -qf --queryformat '%{name}' $(readlink -f $(type -p clang))) clang_version=$(rpm -q --queryformat "%{version}" $CLANG_PKG | 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 +if [ $clang_version -lt 18 ]; then + >&2 echo "clang is older than version 18"; + required_dwarf_version=4 fi echo "int main(){ return 0; }" | clang -g -v -x c - 2> build.log