changeset 13022:63c614c3b5e9

signal: Undefine macro definitions in C++ mode.
author Bruno Haible <bruno@clisp.org>
date Sun, 21 Mar 2010 01:45:51 +0100
parents 239c17119e60
children 953c5d14818b
files ChangeLog lib/signal.in.h
diffstat 2 files changed, 38 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+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" { ... }.
--- a/lib/signal.in.h
+++ b/lib/signal.in.h
@@ -85,7 +85,12 @@
 # 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_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_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_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));