summaryrefslogtreecommitdiff
path: root/mcon/U/abortsig.U
diff options
context:
space:
mode:
authorManoj Srivastava <srivasta@debian.org>2008-05-30 12:42:47 -0700
committerManoj Srivastava <srivasta@debian.org>2008-05-30 12:42:47 -0700
commitceb3507a8fca872770b3dcd7e5c5b36179ab95b0 (patch)
treeb46b4e25cfff5f4c13a330b8428ceed343e3796c /mcon/U/abortsig.U
Import dist_3.5-236.orig.tar.gz
[dgit import orig dist_3.5-236.orig.tar.gz]
Diffstat (limited to 'mcon/U/abortsig.U')
-rw-r--r--mcon/U/abortsig.U80
1 files changed, 80 insertions, 0 deletions
diff --git a/mcon/U/abortsig.U b/mcon/U/abortsig.U
new file mode 100644
index 0000000..f0bc51c
--- /dev/null
+++ b/mcon/U/abortsig.U
@@ -0,0 +1,80 @@
+?RCS: $Id$
+?RCS:
+?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic License,
+?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 License; 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 explicitly 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
+/* FIXME: Missing #include <stdlib.h>*/
+#include <signal.h>
+caught() { exit(0); } /* FIXME: Use _exit() or _Exit() in signal handler */
+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
+