OSDN Git Service

* os_dep.c: Use the POSIX signal API in preference to the BSD API.
authorbje <bje@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Nov 2009 00:23:45 +0000 (00:23 +0000)
committerbje <bje@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 30 Nov 2009 00:23:45 +0000 (00:23 +0000)
Generate a compilation error if neither the POSIX nor BSD APIs can
be detected.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154747 138bc75d-0d04-0410-961f-82ee72b054a4

boehm-gc/ChangeLog
boehm-gc/os_dep.c

index 9f05a75..5b615d9 100644 (file)
@@ -1,3 +1,9 @@
+2009-11-30  Ben Elliston  <bje@au.ibm.com>
+
+       * 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  <Ralf.Wildenhues@gmx.de>
 
        * Makefile.am (libgcjgc_la_LINK, gctest_LINK): New.
index 3f0f20e..6f1e81a 100644 (file)
@@ -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;