bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

screen: GNU/kFreeBSD fix breaks GNU/Hurd


From: Thomas Schwinge
Subject: screen: GNU/kFreeBSD fix breaks GNU/Hurd
Date: Wed, 7 Oct 2009 10:47:19 +0200
User-agent: Mutt/1.5.11

unarchive 522689
reopen 522689
stop


Hello!

Unfortunately, the fix you installed for GNU/kFreeBSD now makes the
originally reported erroneous behavior (screen not passing signals)
appear on GNU/Hurd systems.

This is due to changing what was:

    # if defined(__osf__) || (BSD >= 199103) || defined(ISC)
      if (separate_sids)
        setsid();   /* should be already done */
    #  ifdef TIOCSCTTY
      ioctl(fd, TIOCSCTTY, (char *)0);
    #  endif
    # endif        

... to...

    # if defined(__FreeBSD_kernel__) && defined(TIOCSCTTY)
      ioctl(fd, TIOCSCTTY, (char *)0);
    # endif

... which causes that the TIOCSCTTY IOCTL will no longer be invoked for
us.  (By the way, I can confirm that the setsid() indeed doesn't seem to
be needed at this place.)

Possible solutions: restore the original #if conditions -- what was the
reason for changing these in the first place?  This information is
missing in the bug report, as well as in the screen patch.  Doesn't
GNU/kFreeBSD #define BSD >= 199103?  (I don't have access to (k)(Free)BSD
system, so I can't easily check.)  Otherwise, you could add ``||
defined(__GNU__)'' to cater for us (TIOCSCTTY is always #defined)
(supported by Samuel Thibault in
<http://lists.gnu.org/archive/html/bug-hurd/2009-10/msg00033.html>).  Or,
as per Roland McGrath (glibc), you could even unconditionally invoke the
TIOCSCTTY IOCTL (if available):
<http://lists.gnu.org/archive/html/bug-hurd/2009-10/msg00032.html>.  If
you want to have a look for yourself on a Debian GNU/Hurd system, see
here: <http://www.gnu.org/software/hurd/public_hurd_boxen.html>.


Regards,
 Thomas

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]