diff options
Diffstat (limited to 'mcon/U/abortsig.U')
-rw-r--r-- | mcon/U/abortsig.U | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/mcon/U/abortsig.U b/mcon/U/abortsig.U new file mode 100644 index 0000000..a13f30f --- /dev/null +++ b/mcon/U/abortsig.U @@ -0,0 +1,79 @@ +?RCS: $Id$ +?RCS: +?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi +?RCS: +?RCS: You may redistribute only under the terms of the Artistic Licence, +?RCS: as specified in the README file that comes with the distribution. +?RCS: You may reuse parts of this distribution only within the terms of +?RCS: that same Artistic Licence; a copy of which may be found at the root +?RCS: of the source tree for dist 4.0. +?RCS: +?RCS: $Log: abortsig.U,v $ +?RCS: Revision 3.0.1.1 1994/10/29 16:02:19 ram +?RCS: patch36: call ./usg explicitely instead of relying on PATH +?RCS: +?RCS: Revision 3.0 1993/08/18 12:05:20 ram +?RCS: Baseline for dist 3.0 netwide release. +?RCS: +?MAKE:abortsig: Myread Oldconfig Guess cat +cc ccflags rm +?MAKE: -pick add $@ %< +?S:abortsig: +?S: This variable holds the name of the signal used by the abort() call. +?S:. +?C:ABORTSIG: +?C: This symbol holds the signal number (symbol) used by the abort() call. To +?C: actually define the signal symbol, <signal.h> should be included. +?C:. +?H:#define ABORTSIG $abortsig /**/ +?H:. +?T:signal +: which signal is sent by abort ? +echo " " +case "$abortsig" in +'') + echo "Checking to see which signal is sent to the process by abort()..." >&4 + echo "abort" > abort.sh + chmod +x abort.sh +?X: SIGABRT should replace SIGIOT on USG machines in a near future (1991). + for signal in SIGIOT SIGILL SIGABRT; do + case "$abortsig" in + '') $cat >abort.c <<EOP +#include <signal.h> +caught() { exit(0); } +int main() +{ +#ifdef $signal + signal($signal, caught); +#endif + if (-1 == abort()) + exit(1); + exit(1); +} +EOP +?X: We have to use the abort.sh script otherwise sh behaves strangely on AIX. + if $cc $ccflags -o abort abort.c >/dev/null 2>&1; then + (./abort.sh) >/dev/null 2>&1 + case $? in + 0) abortsig="$signal";; + esac + fi + ;; + esac + done + ;; +esac +case "$abortsig" in +'') echo "(I wasn't able to compute the signal name--guessing)" + if ./usg; then + dflt="SIGIOT" + else + dflt="SIGILL" + fi;; +*) dflt="$abortsig" + ;; +esac +rp="Which signal does abort() send to the process (signal name)?" +. ./myread +abortsig="$ans" +$rm -f core abort.sh abort abort.c + |