From: Tom de Vries Date: Thu, 31 Aug 2023 13:25:31 +0000 (+0200) Subject: [gdb/contrib] Require minimal dwz version in cc-with-tweaks.sh X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3f62178ed706bb390582623e704139a96619e7af;p=binutils-gdb.git [gdb/contrib] Require minimal dwz version in cc-with-tweaks.sh I usually run target boards cc-with-dwz and cc-with-dwz-m using a dwz build from current trunk, but the pathname to the build dir changed and I forgot to update my test scripts, so the test scripts reverted to using system dwz, version 0.12. Consequently, I ran into: ... (gdb) p ZERO^M No symbol "ZERO" in current context.^M (gdb) FAIL: gdb.base/enumval.exp: p ZERO ... which is due to PR dwz/24468, which was fixed in version 0.13. Fix this by minimally requiring dwz version 0.13 in cc-with-tweaks.sh, such that this situation is detected and we get instead: ... gdb compile failed, cc-with-tweaks.sh: dwz version 0.12 detected, version \ 0.13 or higher required ... Tested on x86_64-linux, verified with shellcheck. Approved-By: Tom Tromey --- diff --git a/gdb/contrib/cc-with-tweaks.sh b/gdb/contrib/cc-with-tweaks.sh index 8add32d54a3..62d3bcf9707 100755 --- a/gdb/contrib/cc-with-tweaks.sh +++ b/gdb/contrib/cc-with-tweaks.sh @@ -209,6 +209,24 @@ if [ "$want_index" = true ]; then [ $rc != 0 ] && exit $rc fi +if [ "$want_dwz" = true ] || [ "$want_multi" = true ]; then + # Require dwz version with PR dwz/24468 fixed. + dwz_version_major_required=0 + dwz_version_minor_required=13 + dwz_version_line=$($DWZ --version 2>&1 | head -n 1) + dwz_version=${dwz_version_line//dwz version /} + dwz_version_major=${dwz_version//\.*/} + dwz_version_minor=${dwz_version//*\./} + if [ "$dwz_version_major" -lt "$dwz_version_major_required" ] \ + || { [ "$dwz_version_major" -eq "$dwz_version_major_required" ] \ + && [ "$dwz_version_minor" -lt "$dwz_version_minor_required" ]; }; then + detected="$dwz_version_major.$dwz_version_minor" + required="$dwz_version_major_required.$dwz_version_minor_required" + echo "$myname: dwz version $detected detected, version $required or higher required" + exit 1 + fi +fi + if [ "$want_dwz" = true ]; then # Validate dwz's result by checking if the executable was modified. cp "$output_file" "${output_file}.copy"