signal: Undefine macro definitions in C++ mode.
authorBruno Haible <bruno@clisp.org>
Sun, 21 Mar 2010 00:45:51 +0000 (01:45 +0100)
committerBruno Haible <bruno@clisp.org>
Sun, 21 Mar 2010 00:45:51 +0000 (01:45 +0100)
ChangeLog
lib/signal.in.h

index 23c4f63..d662425 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2010-03-20  Bruno Haible  <bruno@clisp.org>
 
+       signal: Undefine macro definitions in C++ mode.
+       * lib/signal.in.h (sigismember, sigemptyset, sigaddset, sigdelset,
+       sigfillset): Undefine macro definitions from the system header in C++
+       mode.
+       Reported by John W. Eaton <jwe@gnu.org>.
+
+2010-03-20  Bruno Haible  <bruno@clisp.org>
+
        Ensure no #include statements inside extern "C" { ... }.
        * lib/obstack.h: Shrink extern "C" { ... } region so that it does not
        contain #include statements.
index 4ee7406..620148d 100644 (file)
@@ -85,7 +85,12 @@ typedef int verify_NSIG_constraint[2 * (NSIG <= 32) - 1];
 # endif
 
 /* Test whether a given signal is contained in a signal set.  */
-# if !@HAVE_POSIX_SIGNALBLOCKING@
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigismember
+#  endif
+# else
 _GL_FUNCDECL_SYS (sigismember, int, (const sigset_t *set, int sig)
                                     _GL_ARG_NONNULL ((1)));
 # endif
@@ -93,14 +98,24 @@ _GL_CXXALIAS_SYS (sigismember, int, (const sigset_t *set, int sig));
 _GL_CXXALIASWARN (sigismember);
 
 /* Initialize a signal set to the empty set.  */
-# if !@HAVE_POSIX_SIGNALBLOCKING@
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigemptyset
+#  endif
+# else
 _GL_FUNCDECL_SYS (sigemptyset, int, (sigset_t *set) _GL_ARG_NONNULL ((1)));
 # endif
 _GL_CXXALIAS_SYS (sigemptyset, int, (sigset_t *set));
 _GL_CXXALIASWARN (sigemptyset);
 
 /* Add a signal to a signal set.  */
-# if !@HAVE_POSIX_SIGNALBLOCKING@
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigaddset
+#  endif
+# else
 _GL_FUNCDECL_SYS (sigaddset, int, (sigset_t *set, int sig)
                                   _GL_ARG_NONNULL ((1)));
 # endif
@@ -108,7 +123,12 @@ _GL_CXXALIAS_SYS (sigaddset, int, (sigset_t *set, int sig));
 _GL_CXXALIASWARN (sigaddset);
 
 /* Remove a signal from a signal set.  */
-# if !@HAVE_POSIX_SIGNALBLOCKING@
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigdelset
+#  endif
+# else
 _GL_FUNCDECL_SYS (sigdelset, int, (sigset_t *set, int sig)
                                   _GL_ARG_NONNULL ((1)));
 # endif
@@ -116,7 +136,12 @@ _GL_CXXALIAS_SYS (sigdelset, int, (sigset_t *set, int sig));
 _GL_CXXALIASWARN (sigdelset);
 
 /* Fill a signal set with all possible signals.  */
-# if !@HAVE_POSIX_SIGNALBLOCKING@
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X.  */
+#  if defined __cplusplus && defined GNULIB_NAMESPACE
+#   undef sigfillset
+#  endif
+# else
 _GL_FUNCDECL_SYS (sigfillset, int, (sigset_t *set) _GL_ARG_NONNULL ((1)));
 # endif
 _GL_CXXALIAS_SYS (sigfillset, int, (sigset_t *set));