This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
DOS/Windows-specific code: inflow.c
* inflow.c:new_tty()
#if !defined(__GO32__) && !defined(_WIN32)
#ifdef TIOCNOTTY
/* Disconnect the child process from our controlling terminal. On some
systems (SVR4 for example), this may cause a SIGTTOU, so temporarily
ignore SIGTTOU. */
tty = open ("/dev/tty", O_RDWR);
if (tty > 0)
{
void (*osigttou) ();
osigttou = (void (*)()) signal (SIGTTOU, SIG_IGN);
ioctl (tty, TIOCNOTTY, 0);
close (tty);
signal (SIGTTOU, osigttou);
}
#endif
/* Now open the specified new terminal. */
#ifdef USE_O_NOCTTY
tty = open (inferior_thisrun_terminal, O_RDWR | O_NOCTTY);
#else
tty = open (inferior_thisrun_terminal, O_RDWR);
#endif
if (tty == -1)
{
print_sys_errmsg (inferior_thisrun_terminal, errno);
_exit (1);
}
This code assumes too many Posix features. Should we define
NO_NEW_TTY?
* inflow.c: pass_signal() [and many more functions that call kill()]
/* ARGSUSED */
static void
pass_signal (int signo)
{
#ifndef _WIN32
kill (PIDGET (inferior_pid), SIGINT);
#endif
}
I don't really understand why does the Windows build need to ifdef
away the calls to kill. In any case, it sounds like providing a no-op
version in win32-nat.c would be a better idea.