X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=aclocal%2Fbsdsignals.m4;fp=aclocal%2Fbsdsignals.m4;h=e9511947bcce6f193e403663c8ba17097ae94c4c;hp=0000000000000000000000000000000000000000;hb=ac5b03be829b4c9369ebfb07a688308721103228;hpb=371ca25167a217d647971384c37aa3fcee8a4aef diff --git a/aclocal/bsdsignals.m4 b/aclocal/bsdsignals.m4 new file mode 100644 index 0000000..e951194 --- /dev/null +++ b/aclocal/bsdsignals.m4 @@ -0,0 +1,29 @@ +dnl *********** BSD vs. POSIX signal handling ************** +AC_DEFUN([AC_BSD_SIGNALS], [ + AC_MSG_CHECKING(for BSD signal semantics) + AC_CACHE_VAL(knfsd_cv_bsd_signals, + [AC_TRY_RUN([ + #include + #include + #include + + static int counter = 0; + static RETSIGTYPE handler(int num) { counter++; } + + int main() + { + int s; + if ((s = fork()) < 0) return 1; + if (s != 0) { + if (wait(&s) < 0) return 1; + return WIFSIGNALED(s)? 1 : 0; + } + + signal(SIGHUP, handler); + kill(getpid(), SIGHUP); kill(getpid(), SIGHUP); + return (counter == 2)? 0 : 1; + } + ], knfsd_cv_bsd_signals=yes, knfsd_cv_bsd_signals=no)]) dnl + AC_MSG_RESULT($knfsd_cv_bsd_signals) + test $knfsd_cv_bsd_signals = yes && AC_DEFINE(HAVE_BSD_SIGNALS, 1, [Define this if you want to use BSD signal semantics]) +])dnl