[RFC 3/6] mingw-hdep: Add "maint set testuite-mode on/off" command.
Pedro Alves
palves@redhat.com
Mon Sep 30 09:38:00 GMT 2013
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
More information about the Gdb-patches
mailing list