[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
signature.asc
Description: Digital signature