[PATCH 0/3 V3] Test mingw32 GDB in cygwin

Yao Qi
2013-07-29T08:46:40Z

This patch series try to fix the problems we've seen on running
mingw32 native for testing in cygwin. Patch 2/3 unbuffer the
stdout and stderr, so that dejagnu/expect can match the output in
the right order. Likewise, patch 3/3 sets stdin/stdout/stderr into
binary mode, so that dejagnu/expects can match the eol correctly
too. In order to avoid the side effects of these changes to native
win32 platform, we need some bits to detect whether GDB is running
in cygwin. This is what patch 1/3 tries to do, and most of
discussions are on it.

In V2, I proposed a new GDB option '--cygwin-tty' to tell GDB that
it is in cygwin. People don't like it, and Corinna gave an example
that we can detect whether GDB is in cygwin or not.

Thanks to Corinna's example, we can know whether GDB is in cygwin
by checking the file name of handler of stdin (or stdout). As a
result, a new option '--cygwin-tty' is avoided. Patch 1/3 is
almost rewritten in V3.

The whole series are tested on native mingw32 GDB running in cygwin.
Test results are improved dramatically.

My plan next step would be to wrap isatty by gdb_isatty, which uses
the logic in Corinna's example to return the correct result on
cygwin pty. I didn't include this change into this series, because
I get some exceptions when GDB starts up from time to time:

(gdb) Exception condition detected on fd 0
error detected on stdin

It takes time investigating and I decide to stop here.

V2 of this series can be found in
<http://sourceware.org/ml/gdb-patches/2013-07/msg00590.html>.

*** BLURB HERE ***

Yao Qi (3):
Detect GDB is in cygwin
Unbuffer stdout and stderr in cygwin
Set stdin/stdout/stderr to binary mode in cygwin.

gdb/config.in | 15 +++++++++
gdb/configure | 82 +++++++++++++++++++++++++++++++++++++++++++++++++
gdb/configure.ac | 40 ++++++++++++++++++++++++
gdb/defs.h | 4 ++
gdb/main.c | 25 +++++++++++++++
gdb/mingw-hdep.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 256 insertions(+), 0 deletions(-)

--
1.7.7.6