help needed to fix contrib/ee crash/exit when receiving SIGWINCH
Alexander Best
alexbestms at math.uni-muenster.de
Fri Oct 23 13:26:21 UTC 2009
pluknet schrieb am 2009-10-23:
> 2009/10/23 Alexander Best <alexbestms at math.uni-muenster.de>:
> > Gary Jennejohn schrieb am 2009-10-23:
> >> On Fri, 23 Oct 2009 12:58:43 +0400
> >> pluknet <pluknet at gmail.com> wrote:
> >> > 2009/10/23 Antony Mawer <lists at mawer.org>:
> >> > > On Fri, Oct 23, 2009 at 1:35 PM, Alexander Best
> >> > > <alexbestms at math.uni-muenster.de> wrote:
> >> > >> hi everyone,
> >> > >> together with hugh mahon (the author of ee) i've been trying
> >> > >> to
> >> > >> fix a nasty
> >> > >> bug in ee. for some reason ee exits (not crashes) and leaves
> >> > >> the
> >> > >> console
> >> > >> corrupted when receiving SIGWINCH (`killall -SIGWINCH ee`
> >> > >> should
> >> > >> exit all
> >> > >> running ee instances).
> >> > > I noticed this the other day when working on a new 8.0-RC1
> >> > > system...
> >> > > in my case I was using putty (Windows ssh client) to access
> >> > > the
> >> > > system
> >> > > and maximised the window I had ee running in, and noticed ee
> >> > > just
> >> > > dumped me straight to the prompt.
> >> > > I am wondering if this has anything to do with the new tty
> >> > > subsystem
> >> > > in 8.0, as this wasn't a problem I've experienced before under
> >> > > 7.x...
> >> > No, that's a regression appeared in (FreeBSD'ish? version of) ee
> >> > 1.5.0.
> >> SIGWINCH is handled in new_curse.c, but it's not being
> >> compiled/linked.
> >> ---
> >> Gary Jennejohn
> > i think that file is only used on systems which have
> > termio.h/sgtty.h and ee
> > doesn't get linked against ncurses. on those systems (linux e.g.)
> > new_curse.c
> > is used to handle certain things which ncurses takes care under
> > freebsd.
> > this is under freebsd:
> > `make`:
> > Neither termio.h or sgtty.h are on this system!
> > Relying on local curses implementation.
> > Generating make.local
> > make -f make.local
> > cc ee.c -o ee -ggdb -DDIAG -DHAS_UNISTD -DHAS_STDARG -DHAS_STDLIB
> > -DHAS_CTYPE
> > -DHAS_SYS_IOCTL -DHAS_SYS_WAIT -DSLCT_HDR
> > -DTERMCAP="\"/usr/share/misc/termcap\"" -lcursesw
> > `ldd ee`:
> > libncursesw.so.8 => /lib/libncursesw.so.8 (0x2809b000)
> > libc.so.7 => /lib/libc.so.7 (0x280e9000)
> [Probably already mentioned.]
> btw, ee compiled under fbsd with new_curse.c
> (and not linked with curses/cursesw) goes fine with SIGWINCH.
> --- Makefile.old 2009-10-23 16:13:45.000000000 +0400
> +++ Makefile 2009-10-23 16:30:03.000000000 +0400
> @@ -3,15 +3,14 @@
> .PATH: ${.CURDIR}/../../contrib/ee
> CFLAGS+= -DHAS_NCURSES -DHAS_UNISTD -DHAS_STDARG -DHAS_STDLIB \
> - -DHAS_SYS_WAIT
> + -DHAS_SYS_WAIT -DCAP -DNCURSE
> PROG= ee
> +SRCS= ee.c new_curse.c
> LINKS= ${BINDIR}/ee ${BINDIR}/ree ${BINDIR}/ee ${BINDIR}/edit
> MLINKS= ee.1 ree.1 ee.1 edit.1
> -DPADD= ${LIBNCURSES}
> -LDADD= -lncurses
> -WARNS?= 2
> +WARNS?= 0
> NLS= en_US.US-ASCII fr_FR.ISO8859-1 de_DE.ISO8859-1
> pl_PL.ISO8859-2 \
> uk_UA.KOI8-U ru_RU.KOI8-R hu_HU.ISO8859-2
> $ ldd ./ee
> ./ee:
> libc.so.6 => /lib/libc.so.6 (0x2808a000)
> (yes, it's FreeBSD 6.x).
won't work under CURRENT i'm afraid:
Warning: Object directory not changed from original /usr/src/usr.bin/ee
cc -O2 -fno-strict-aliasing -pipe -march=native -DHAS_NCURSES -DHAS_UNISTD
-DHAS_STDARG -DHAS_STDLIB -DHAS_SYS_WAIT -DCAP -DNCURSE -std=gnu99
-fstack-protector -Wno-pointer-sign -c
/usr/src/usr.bin/ee/../../contrib/ee/ee.c
In file included from /usr/src/usr.bin/ee/../../contrib/ee/ee.c:68:
/usr/src/usr.bin/ee/../../contrib/ee/new_curse.h:47:19: error: sgtty.h: No
such file or directory
*** Error code 1
Stop in /usr/src/usr.bin/ee.
here's the entry in ObsoleteFiles.inc:
# 20080725: sgtty.h removed
OLD_FILES+=usr/include/sgtty.h
alex
More information about the freebsd-hackers
mailing list