From 1f67f80309fb595c21663733554b0755d6734e6c Mon Sep 17 00:00:00 2001 From: Ben Elliston Date: Mon, 30 Nov 2009 00:23:45 +0000 Subject: [PATCH] os_dep.c: Use the POSIX signal API in preference to the BSD API. * os_dep.c: Use the POSIX signal API in preference to the BSD API. Generate a compilation error if neither the POSIX nor BSD APIs can be detected. From-SVN: r154747 --- boehm-gc/ChangeLog | 6 ++++++ boehm-gc/os_dep.c | 14 ++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog index 9f05a75..5b615d9 100644 --- a/boehm-gc/ChangeLog +++ b/boehm-gc/ChangeLog @@ -1,3 +1,9 @@ +2009-11-30 Ben Elliston + + * os_dep.c: Use the POSIX signal API in preference to the BSD API. + Generate a compilation error if neither the POSIX nor BSD APIs can + be detected. + 2009-09-11 Ralf Wildenhues * Makefile.am (libgcjgc_la_LINK, gctest_LINK): New. diff --git a/boehm-gc/os_dep.c b/boehm-gc/os_dep.c index 3f0f20e..6f1e81a 100644 --- a/boehm-gc/os_dep.c +++ b/boehm-gc/os_dep.c @@ -501,7 +501,13 @@ void GC_enable_signals(void) && !defined(MACOS) && !defined(DJGPP) && !defined(DOS4GW) \ && !defined(NOSYS) && !defined(ECOS) -# if defined(sigmask) && !defined(UTS4) && !defined(HURD) +# if defined(SIG_BLOCK) + /* Use POSIX/SYSV interface */ +# define SIGSET_T sigset_t +# define SIG_DEL(set, signal) sigdelset(&(set), (signal)) +# define SIG_FILL(set) sigfillset(&set) +# define SIGSETMASK(old, new) sigprocmask(SIG_SETMASK, &(new), &(old)) +# elif defined(sigmask) && !defined(UTS4) && !defined(HURD) /* Use the traditional BSD interface */ # define SIGSET_T int # define SIG_DEL(set, signal) (set) &= ~(sigmask(signal)) @@ -511,11 +517,7 @@ void GC_enable_signals(void) /* a signal 32. */ # define SIGSETMASK(old, new) (old) = sigsetmask(new) # else - /* Use POSIX/SYSV interface */ -# define SIGSET_T sigset_t -# define SIG_DEL(set, signal) sigdelset(&(set), (signal)) -# define SIG_FILL(set) sigfillset(&set) -# define SIGSETMASK(old, new) sigprocmask(SIG_SETMASK, &(new), &(old)) +# error undetectable signal API # endif static GC_bool mask_initialized = FALSE; -- 2.7.4