diff options
author | neilbrown <neilbrown> | 2005-12-20 04:12:42 +0000 |
---|---|---|
committer | neilbrown <neilbrown> | 2005-12-20 04:12:42 +0000 |
commit | ac5b03be829b4c9369ebfb07a688308721103228 (patch) | |
tree | 90fd0ee1a8e08c241bf3fd0d54690b888e4b5926 /aclocal/bsdsignals.m4 | |
parent | 371ca25167a217d647971384c37aa3fcee8a4aef (diff) | |
download | nfs-utils-ac5b03be829b4c9369ebfb07a688308721103228.tar.gz nfs-utils-ac5b03be829b4c9369ebfb07a688308721103228.tar.xz nfs-utils-ac5b03be829b4c9369ebfb07a688308721103228.zip |
Autogen update
Diffstat (limited to 'aclocal/bsdsignals.m4')
-rw-r--r-- | aclocal/bsdsignals.m4 | 29 |
1 files changed, 29 insertions, 0 deletions
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 <signal.h> + #include <unistd.h> + #include <sys/wait.h> + + 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 |