This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/3] Assume termios is available, remove support for termio and sgtty

On Thursday, November 02 2017, Pedro Alves wrote:

> On 11/02/2017 06:54 PM, Sergio Durigan Junior wrote:
>> On Thursday, November 02 2017, Pedro Alves wrote:
>>> This commit garbage collects the termio and sgtty support.
>>> GDB's terminal handling code still has support for the old termio and
>>> sgtty interfaces in addition to termios.  However, I think it's pretty
>>> safe to assume that for a long, long time, Unix-like systems provide
>>> termios.  GNU/Linux, Solaris, Cygwin, AIX, DJGPP, macOS and the BSDs
>>> all have had termios.h for many years.  Looking around the web, I
>>> found discussions about FreeBSD folks trying to get rid of old sgtty.h
>>> a decade ago:
>>> So I think support for termio and sgtty in GDB is just dead code that
>>> is never compiled anywhere and is just getting in the way.  For
>>> example, serial_noflush_set_tty_state and the raw<->cooked concerns
>>> mentioned in inflow.c only exist because of sgtty (see
>>> hardwire_noflush_set_tty_state).
>>> Regtested on GNU/Linux.
>>> Confirmed that I can still build Solaris, DJGPP and AIX GDB and that
>>> that GDB still includes the termios.h-guarded code.  Confirmed
>> "that that"
> Eh, that was actually on purpose.  It's "I confirmed that $something",
> with "$something == that GDB (the one I built) still includes".
> The first 'that' is the subordinating that, and the second 'that' is 
> a demonstrative pronoun.  It's not unlike:
> "I think that this thing is blue, and
>  I think that that other thing is white".

Ah, OK, it took me a while to understand what you were trying to say
there :-).  Sorry about the noise.

>>> mingw-w64 GDB still builds and skips the termios.h-guarded code.
>> Thanks for doing that.
>> You may remember that I also stumbled upon this while doing the
>> startup-with-shell, but I didn't have the necessary background knowledge
>> to do a deep cleanup.  It's always nice to see old code being removed.
> Well, it was only after banging my head against the terminal
> handling for a couple weeks that I realized that this is
> all dead code.  :-P


>>> --- a/gdb/gdbserver/remote-utils.c
>>> +++ b/gdb/gdbserver/remote-utils.c
>>> @@ -17,7 +17,9 @@
>>>     along with this program.  If not, see <>.  */
>>>  #include "server.h"
>>> -#include "gdb_termios.h"
>>> +#include <termios.h>
>>> +#endif
>>>  #include "target.h"
>>>  #include "gdbthread.h"
>>>  #include "tdesc.h"
>>> @@ -325,7 +327,7 @@ remote_open (const char *name)
>>>        if (remote_desc < 0)
>>>  	perror_with_name ("Could not open remote device");
>>> -#ifdef HAVE_TERMIOS
>> Why s/#ifdef/#if/?  I prefer #ifdef BTW.
> Yeah, I used #if here because it's what the file is already
> using for the other headers:
> #include <sys/ioctl.h>
> #endif
> #include <sys/file.h>
> #endif
> etc.

I see.  Up to you, but I'd use #ifdef everywhere.


GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]