From: Tom de Vries Date: Thu, 18 Apr 2024 15:02:13 +0000 (+0200) Subject: [gdb/testsuite] Use find_gnatmake instead of gdb_find_gnatmake X-Git-Tag: gdb-15-branchpoint~351 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4c8fc167568d60a44f5a1f98bcb788a65af7a7ae;p=thirdparty%2Fbinutils-gdb.git [gdb/testsuite] Use find_gnatmake instead of gdb_find_gnatmake On SLE-11, with an older dejagnu version, I ran into: ... Running gdb.ada/mi_prot.exp ... UNRESOLVED: gdb.ada/mi_prot.exp: \ testcase aborted due to invalid command name: gdb_find_gnatmake ERROR: tcl error sourcing gdb.ada/mi_prot.exp. ERROR: invalid command name "gdb_find_gnatmake" while executing "::gdb_tcl_unknown gdb_find_gnatmake" ("uplevel" body line 1) invoked from within "uplevel 1 ::gdb_tcl_unknown $args" (procedure "::unknown" line 5) invoked from within "gdb_find_gnatmake" (procedure "gnatmake_version_at_least" line 2) invoked from within ... Proc gdb_find_gnatmake is actually a backup for find_gnatmake: ... if {[info procs find_gnatmake] == ""} { rename gdb_find_gnatmake find_gnatmake ... so gnatmake_version_at_least should use find_gnatmake instead. For a recent dejagnu with find_gnatmake, gdb_find_gnatmake is kept, and we don't run into this error. For an older dejagnu without find_gnatmake, gdb_find_gnatmake is renamed to find_gnatmake, and we do run into the error. It's confusing that we're using the gdb_ prefix for gdb_find_gnatmake, it seems something legitimate to use. Maybe we should use future_ or gdb_future_ prefix instead to make this more clear, but I've left that alone for now. Fix this by: - triggering the same error with a recent dejagnu by removing gdb_find_gnatmake unless used (and likewise for other procs in future.exp), and - using find_gnatmake in gnatmake_version_at_least. Tested on x86_64-linux. Approved-By: Tom Tromey PR testsuite/31647 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31647 --- diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp index 558e73f3232..1bc0dc1d438 100644 --- a/gdb/testsuite/lib/ada.exp +++ b/gdb/testsuite/lib/ada.exp @@ -151,7 +151,7 @@ proc find_ada_tool {tool} { # Return 1 if gnatmake is at least version $MAJOR.x.x proc gnatmake_version_at_least { major } { - set gnatmake [gdb_find_gnatmake] + set gnatmake [find_gnatmake] set gnatmake [lindex [split $gnatmake] 0] if {[catch {exec $gnatmake --version} output]} { return 0 diff --git a/gdb/testsuite/lib/future.exp b/gdb/testsuite/lib/future.exp index 3512fadf2ed..62913cb0855 100644 --- a/gdb/testsuite/lib/future.exp +++ b/gdb/testsuite/lib/future.exp @@ -694,12 +694,16 @@ if {[info procs find_gnatmake] == ""} { rename gdb_find_gnatmake find_gnatmake set use_gdb_compile(ada) 1 gdb_note [join [list $note_prefix "Ada" $note_suffix] ""] +} else { + rename gdb_find_gnatmake "" } if {[info procs find_gfortran] == ""} { rename gdb_find_gfortran find_gfortran set use_gdb_compile(fortran) 1 gdb_note [join [list $note_prefix "Fortran" $note_suffix] ""] +} else { + rename gdb_find_gfortran "" } if {[info procs find_go_linker] == ""} { @@ -707,24 +711,33 @@ if {[info procs find_go_linker] == ""} { rename gdb_find_go_linker find_go_linker set use_gdb_compile(go) 1 gdb_note [join [list $note_prefix "Go" $note_suffix] ""] +} else { + rename gdb_find_go "" + rename gdb_find_go_linker "" } if {[info procs find_gdc] == ""} { rename gdb_find_gdc find_gdc set use_gdb_compile(d) 1 gdb_note [join [list $note_prefix "D" $note_suffix] ""] +} else { + rename gdb_find_gdc "" } if {[info procs find_rustc] == ""} { rename gdb_find_rustc find_rustc set use_gdb_compile(rust) 1 gdb_note [join [list $note_prefix "Rust" $note_suffix] ""] +} else { + rename gdb_find_rustc "" } if {[info procs find_hipcc] == ""} { rename gdb_find_hipcc find_hipcc set use_gdb_compile(hip) 1 gdb_note [join [list $note_prefix "HIP" $note_suffix] ""] +} else { + rename gdb_find_hipcc "" } # If dejagnu's default_target_compile is missing support for any language, @@ -732,6 +745,8 @@ if {[info procs find_hipcc] == ""} { if { [array size use_gdb_compile] != 0 } { catch {rename default_target_compile dejagnu_default_target_compile} rename gdb_default_target_compile default_target_compile +} else { + rename gdb_default_target_compile "" }