about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWilco Dijkstra <wdijkstr@arm.com>2017-02-15 15:13:58 +0000
committerWilco Dijkstra <wdijkstr@arm.com>2017-02-15 15:13:58 +0000
commit3172b27b2b3b0033e85ddf3566c7533a8f3b4bda (patch)
tree60b9c9151fde381402925910ba64b5c7a5b73c99
parent4918e5f4cd63290bb0b2c614f52092ca6a779126 (diff)
downloadglibc-3172b27b2b3b0033e85ddf3566c7533a8f3b4bda.tar.gz
glibc-3172b27b2b3b0033e85ddf3566c7533a8f3b4bda.tar.xz
glibc-3172b27b2b3b0033e85ddf3566c7533a8f3b4bda.zip
The internal header include/string.h does not work in C++: it causes link errors
in several C++ debug tests when any of the functions it declares are called.
The best option would be to not use internal headers for tests (unless
explicitly needed).  Add guards so that it is safe to use include/string.h from
C++.

	* include/string.h: Add __cplusplus check.
-rw-r--r--ChangeLog4
-rw-r--r--include/string.h4
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 62961a2940..caf784ed17 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2017-02-15  Wilco Dijkstra  <wdijkstr@arm.com>
+
+	* include/string.h: Add __cplusplus check.
+
 2017-02-15  Gabriel F. T. Gomes  <gftg@linux.vnet.ibm.com>
 
 	[BZ #21134]
diff --git a/include/string.h b/include/string.h
index 07389f3278..45eca3c11c 100644
--- a/include/string.h
+++ b/include/string.h
@@ -1,6 +1,6 @@
 #ifndef _STRING_H
 
-#ifndef _ISOMAC
+#if !defined _ISOMAC && !defined __cplusplus
 #include <sys/types.h>
 
 extern void *__memccpy (void *__dest, const void *__src,
@@ -53,7 +53,7 @@ extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);
    above are defined as macros in the headers.  */
 #include <string/string.h>
 
-#ifndef _ISOMAC
+#if !defined _ISOMAC && !defined __cplusplus
 extern __typeof (strcoll_l) __strcoll_l;
 extern __typeof (strxfrm_l) __strxfrm_l;
 extern __typeof (strcasecmp_l) __strcasecmp_l;