help needed to fix contrib/ee crash/exit when receiving SIGWINCH

pluknet pluknet at gmail.com
Fri Oct 23 13:32:35 UTC 2009


2009/10/23 Alexander Best <alexbestms at math.uni-muenster.de>:
> 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
>

Ah, OK. Just a stupid and not-tested guess.


-- 
wbr,
pluknet


More information about the freebsd-hackers mailing list