summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/string.in.h4
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0d0d9f0c81..1755e4d5d3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2010-09-04 Bruno Haible <bruno@clisp.org>
+ strdup: Fix compilation error in C++ mode.
+ * lib/string.in.h (strdup): In C++ mode with GNULIB_NAMESPACE, undefine
+ the macro.
+
+2010-09-04 Bruno Haible <bruno@clisp.org>
+
dirfd: Fix compilation error in C++ mode on MacOS X, *BSD, IRIX.
* lib/dirent.in.h (dirfd): In C++ mode with GNULIB_NAMESPACE, turn the
macro into a function.
diff --git a/lib/string.in.h b/lib/string.in.h
index bb6aa58e2f..db4c4aa645 100644
--- a/lib/string.in.h
+++ b/lib/string.in.h
@@ -311,6 +311,10 @@ _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - "
_GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)));
_GL_CXXALIAS_RPL (strdup, char *, (char const *__s));
# else
+# if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup
+ /* strdup exists as a function and as a macro. Get rid of the macro. */
+# undef strdup
+# endif
# if !(@HAVE_DECL_STRDUP@ || defined strdup)
_GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1)));
# endif