This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFC 3/6] mingw-hdep: Add "maint set testuite-mode on/off" command.
- From: Pedro Alves <palves at redhat dot com>
- To: Pierre Muller <pierre dot muller at ics-cnrs dot unistra dot fr>
- Cc: "'Yao Qi'" <yao at codesourcery dot com>, "'Tom Tromey'" <tromey at redhat dot com>, "'gdb-patches'" <gdb-patches at sourceware dot org>
- Date: Mon, 30 Sep 2013 10:38:01 +0100
- Subject: Re: [RFC 3/6] mingw-hdep: Add "maint set testuite-mode on/off" command.
- Authentication-results: sourceware.org; auth=none
- References: <002901cebaf2$35ec65a0$a1c530e0$ at muller@ics-cnrs.unistra.fr> <33207 dot 6293569573$1380225714 at news dot gmane dot org> <87pprufgl8 dot fsf at fleche dot redhat dot com> <5245c3a0 dot a3e2440a dot 4b98 dot ffffd279SMTPIN_ADDED_BROKEN at mx dot google dot com> <5245DE52 dot 8080800 at redhat dot com> <52482EBA dot 5010209 at codesourcery dot com> <5248768B dot 4090705 at redhat dot com> <003701cebd67$4c9ea6b0$e5dbf410$ at muller@ics-cnrs.unistra.fr>
On 09/29/2013 11:57 PM, Pierre Muller wrote:
> I found out that this patch
>
> $ cvs diff -up
> cvs diff: Diffing .
> Index: gdb.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/lib/gdb.exp,v
> retrieving revision 1.246
> diff -u -p -r1.246 gdb.exp
> --- gdb.exp 20 Sep 2013 21:47:05 -0000 1.246
> +++ gdb.exp 29 Sep 2013 22:50:10 -0000
> @@ -1454,6 +1454,9 @@ proc default_gdb_start { } {
> perror "Spawning $GDB failed."
> return 1
> }
> + if [ishost "*-*-mingw*"] {
> + fconfigure $res -translation {crlf crlf}
> + }
> gdb_expect 360 {
> -re "\[\r\n\]$gdb_prompt $" {
> verbose "GDB initialized."
>
>
> works...
That's great news!
> but only for cygwin dejagnu...
>
> It doesn't on the dejagnu I found for msys system :(
> After a looong debugging, it seems to turn out to be because
>
> (on msys)$ runtest --version
> WARNING: Couldn't find the global config file.
> Expect version is 5.26
> Tcl version is 8.4
> Framework version is 1.4.2.x
>
> while on cygwin:
> $ runtest --version
> Expect version is 5.45
> Tcl version is 8.5
> Framework version is 1.5
>
> Which leads to the fact that remote_spawn directly calls spawn in 5.26,
> while it uses open command in version 5.45...
> The problem is that only the open command returns a channeled suitable for
> fconfigure...
> which leads to the following error on msys:
>
> ERROR: tcl error sourcing ../../../puresrc/gdb/testsuite/gdb.base/co1.exp.
> ERROR: can not find channel named "6"
> while executing
> "fconfigure $res -translation {crlf crlf}"
> invoked from within
> "if [ishost "*-*-mingw*"] {
> fconfigure $res -translation {crlf crlf}
> }"
> (procedure "default_gdb_start" line 37)
> invoked from within
> "default_gdb_start"
> (procedure "gdb_start" line 2)
> invoked from within
> "gdb_start"
> (procedure "clean_restart" line 7)
> invoked from within
> "clean_restart $executable"
> (procedure "prepare_for_testing" line 6)
> invoked from within
> "prepare_for_testing $testfile.exp $testfile [list $srcfile $srcfile2] {debug n
> owarnings}"
> (file "../../../puresrc/gdb/testsuite/gdb.base/co1.exp" line 1)
> ("uplevel" body line 1)
> invoked from within
> "catch "uplevel #0 source $test_file_name""
>
> Any suggestions, other that throwing away the old dejagnu ...
You can always try overriding remote_spawn -- in tcl, whatever definition
of a procedure is loaded last overrides previous definitions. You could try
copying new newer remote_spawn that uses open to your board file. Or copy
the older remote_spawn, and tweak it just enough to use open. I have no idea
if that would require a cascading series of replacements or other functions,
but maybe still worth a try.
But, anyway, if an easy workaround is not found, just requiring a
newer dejagnu is reasonable and the way to go, IMO.
--
Pedro Alves