Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: zsh 3.0.2 and Linux/AXP signal problem



Last year ;) I emailed the list w.r.t. a problem I was having;
when a program exited with certain signals, zsh would fail to trap the
signals and would die:

On Sat, 28 Dec 1996, David Krinsky wrote:

> Under certain conditions--which I have been unable to pin down exactly
> (they seem to have something to do with programs exiting abnormally--they
> include terminating "last | less" by pressing "q" and running programs
> which dump core)--zsh dies with 
> 
> Command terminated on signal 11.

Anyway, I've tracked down the problem;  Src/signames.awk wasn't finding
the kernel header file with all the signal names.

It seems that on some kernel versions--I'm not sure which (2.0.18, the one
I currently have, has this problem;  2.0.27 doesn't seem to)--the names
are split from <asm/signal.h> into <asm/signum.h>.  The latter is included
by the former, but signames.awk obviously doesn't find it.  

The reason for this apparently has to do with using the same signal names
as Digital Unix--not other Linuces--and thus is an Alpha-only problem.

The following patch to configure fixes the problem;  please include it in
the distribution if possible. 

*** configure.orig	Thu Jan  2 14:39:05 1997
--- configure	Thu Jan  2 14:41:29 1997
***************
*** 2835,2843 ****
  echo "configure:2836: checking where signal.h is located" >&5
  if eval "test \"`echo '$''{'zsh_cv_path_signal_h'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
!   for SIGNAL_H in /usr/include/bsd/sys/signal.h                   /usr/include/asm/signal.h                       /usr/include/linux/signal.h                     /usr/include/sys/signal.h                       /dev/null;                     do
    test -f $SIGNAL_H && \
    grep '#[ 	]*define[ 	][ 	]*SIG[0-9A-Z]*[ 	]*[0-9][0-9]*' $SIGNAL_H > /dev/null && \
    break
  done
--- 2835,2843 ----
  echo "configure:2836: checking where signal.h is located" >&5
  if eval "test \"`echo '$''{'zsh_cv_path_signal_h'+set}'`\" = set"; then
    echo $ac_n "(cached) $ac_c" 1>&6
  else
!   for SIGNAL_H in /usr/include/bsd/sys/signal.h /usr/include/asm/signal.h /usr/include/linux/signal.h /usr/include/sys/signal.h /usr/include/asm/signum.h /dev/null; do
    test -f $SIGNAL_H && \
    grep '#[ 	]*define[ 	][ 	]*SIG[0-9A-Z]*[ 	]*[0-9][0-9]*' $SIGNAL_H > /dev/null && \
    break
  done




Messages sorted by: Reverse Date, Date, Thread, Author