changeset 37439:54c651f31def

strerror_r-posix: support compilation with C++ * lib/strerror_r.c: Add necessary C linkage declarations.
author Werner LEMBERG <wl@gnu.org>
date Mon, 15 Sep 2014 13:41:57 +0100
parents 6024c429bd6a
children 9142bbd14c01
files ChangeLog lib/strerror_r.c
diffstat 2 files changed, 18 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Sep 11 14:38:53 2014 +0100
+++ b/ChangeLog	Mon Sep 15 13:41:57 2014 +0100
@@ -1,3 +1,8 @@
+2014-09-15  Werner LEMBERG  <wl@gnu.org>
+
+	strerror_r-posix: support compilation with C++
+	* lib/strerror_r.c: Add necessary C linkage declarations.
+
 2014-09-11  Johannes Zarl  <johannes.zarl@jku.at>
 
 	fcntl-h: fix compilation with Intel C++ compiler (trivial)
--- a/lib/strerror_r.c	Thu Sep 11 14:38:53 2014 +0100
+++ b/lib/strerror_r.c	Mon Sep 15 13:41:57 2014 +0100
@@ -34,7 +34,11 @@
 #if (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__) && HAVE___XPG_STRERROR_R /* glibc >= 2.3.4, cygwin >= 1.7.9 */
 
 # define USE_XPG_STRERROR_R 1
-extern int __xpg_strerror_r (int errnum, char *buf, size_t buflen);
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int __xpg_strerror_r (int errnum, char *buf, size_t buflen);
 
 #elif HAVE_DECL_STRERROR_R && !(__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__)
 
@@ -63,6 +67,10 @@
 #   include <nl_types.h>
 #  endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Get sys_nerr, sys_errlist on HP-UX (otherwise only declared in C++ mode).
    Get sys_nerr, sys_errlist on IRIX (otherwise only declared with _SGIAPI).  */
 #  if defined __hpux || defined __sgi
@@ -75,6 +83,10 @@
 extern int sys_nerr;
 #  endif
 
+#ifdef __cplusplus
+}
+#endif
+
 # else
 
 #  include "glthread/lock.h"