
Carlos O'Donell wrote:
diff --git a/include/uapi/linux/in6.h b/include/uapi/linux/in6.h index f79c372..a2b16a5 100644 --- a/include/uapi/linux/in6.h +++ b/include/uapi/linux/in6.h @@ -23,6 +23,13 @@
#include <linux/types.h>
+/* If a glibc-based userspace has already included in.h, then we will not + * define in6_addr (nor the defines), sockaddr_in6, or ipv6_mreq. The + * ABI used by the kernel and by glibc match exactly. Neither the kernel + * nor glibc should break this ABI without coordination. + */ +#ifndef _NETINET_IN_H + /* * IPv6 address structure */
This should be #if !defined(__GLIBC__) || !defined(_NETINET_IN_H)
@@ -30,12 +37,20 @@ struct in6_addr { union { __u8 u6_addr8[16]; +#if !defined(__GLIBC__) \ + || (defined(__GLIBC__) && (defined(__USE_MISC) || defined(__USE_GNU))) \ + || defined(__KERNEL__) __be16 u6_addr16[8]; __be32 u6_addr32[4]; +#endif } in6_u; +#if !defined(__GLIBC__) \ + || (defined(__GLIBC__) && (defined(__USE_MISC) || defined(__USE_GNU))) \ + || defined(__KERNEL__) #define s6_addr in6_u.u6_addr8 #define s6_addr16 in6_u.u6_addr16 #define s6_addr32 in6_u.u6_addr32 +#endif };
2nd "if" be after s6_addr? --yoshfuji