diff options
Diffstat (limited to 'mcon/U/d_keepsig.U')
-rw-r--r-- | mcon/U/d_keepsig.U | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/mcon/U/d_keepsig.U b/mcon/U/d_keepsig.U new file mode 100644 index 0000000..dfa13fd --- /dev/null +++ b/mcon/U/d_keepsig.U @@ -0,0 +1,81 @@ +?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: d_keepsig.U,v $ +?RCS: Revision 3.0.1.4 1995/07/25 13:57:56 ram +?RCS: patch56: made cc and ccflags optional dependencies +?RCS: +?RCS: Revision 3.0.1.3 1995/01/11 15:26:25 ram +?RCS: patch45: protected "sh -c" within backquotes for Linux and SGI +?RCS: +?RCS: Revision 3.0.1.2 1994/10/29 16:13:59 ram +?RCS: patch36: call ./bsd explicitly instead of relying on PATH +?RCS: +?RCS: Revision 3.0.1.1 1993/10/16 13:48:47 ram +?RCS: patch12: comment for SIGNALS_KEPT was the other way round +?RCS: +?RCS: Revision 3.0 1993/08/18 12:06:26 ram +?RCS: Baseline for dist 3.0 netwide release. +?RCS: +?MAKE:d_keepsig: cat Compile rm Guess contains echo n c Setvar run +?MAKE: -pick add $@ %< +?S:d_keepsig: +?S: This variable contains the eventual value of the SIGNALS_KEPT symbol, +?S: which indicates to the C program if signal handlers need not reinstated +?S: after receipt of a signal. +?S:. +?C:SIGNALS_KEPT (PERSISTENT_SIGNAL): +?C: This symbol is defined if signal handlers needn't be reinstated after +?C: receipt of a signal. +?C:. +?H:#$d_keepsig SIGNALS_KEPT /**/ +?H:. +?F:!try !try.out +?LINT:set d_keepsig +: see if signals are kept +val="$undef"; +echo " " +echo "Checking to see if signal handlers stick around..." >&4 +$cat >try.c <<'EOCP' +foo() {} + +int main() +{ + signal(2, foo); + kill(getpid(), 2); + kill(getpid(), 2); + printf("abc\n"); +} +EOCP +set try +if eval $compile; then +?X: On AIX a single ./try will not work (with ksh) +?X: Backquotes required on Linux and SGI (prevents "ambiguous output redirect") +?X: (reported by Xavier LeVourch <xavierl@eiffel.com>) + echo `sh -c $run ./try >try.out 2>/dev/null` >/dev/null + if $contains abc try.out >/dev/null 2>&1; then + echo "Yes, they do." + val="$define"; + else + echo "No, they don't." + fi +else + $echo $n "(I can't seem to compile the test program. Assuming $c" + if ./bsd; then + echo "they do.)" + val="$define" + else + echo "they don't.)" + fi +fi +set d_keepsig +eval $setvar +$rm -f try* + |