[prev in list] [next in list] [prev in thread] [next in thread]
List: gdb-cvs
Subject: [binutils-gdb] [gdb/contrib] Require minimal dwz version in cc-with-tweaks.sh
From: Tom de Vries via Gdb-cvs <gdb-cvs () sourceware ! org>
Date: 2023-08-31 13:25:41
Message-ID: 20230831132541.42CBD3858D37 () sourceware ! org
[Download RAW message or body]
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3f62178ed706bb390582623e704139a96619e7af
commit 3f62178ed706bb390582623e704139a96619e7af
Author: Tom de Vries <tdevries@suse.de>
Date: Thu Aug 31 15:25:31 2023 +0200
[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 <tom@tromey.com>
Diff:
---
gdb/contrib/cc-with-tweaks.sh | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
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"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic