summaryrefslogtreecommitdiff
path: root/socket/sys/socket.h
diff options
context:
space:
mode:
Diffstat (limited to 'socket/sys/socket.h')
-rw-r--r--socket/sys/socket.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/socket/sys/socket.h b/socket/sys/socket.h
index 3124de0e34..f445b4c77b 100644
--- a/socket/sys/socket.h
+++ b/socket/sys/socket.h
@@ -45,9 +45,11 @@ struct osockaddr
/* This is the type we use for generic socket address arguments.
- With GCC 2.7 and later, the funky union causes redeclarations or uses with
- any of the listed types to be allowed without complaint. */
-#if (!defined (__GNUC__) || __GNUC__ < 2 || \
+ With GCC 2.7 and later, the funky union causes redeclarations or
+ uses with any of the listed types to be allowed without complaint.
+ G++ 2.7 does not support transparent unions so there we want the
+ old-style declaration, too. */
+#if (!defined (__GNUC__) || __GNUC__ < 2 || defined(__cplusplus) || \
(__GNUC__ == 2 && __GNUC_MINOR__ < 7))
#define __SOCKADDR_ARG struct sockaddr *
#define __CONST_SOCKADDR_ARG __const struct sockaddr *