summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCong Wang <xiyou.wangcong@gmail.com>2015-01-06 16:13:19 -0800
committerMike Frysinger <vapier@gentoo.org>2015-02-25 00:13:28 -0500
commitcb43bb0d68f001fc3d6e054d712ab8794b5fd1de (patch)
tree897c2c16196db9b988c0e26bf8ce52be225aab38
parent9be1052b6f7583fad365643169cfc6732c96aee3 (diff)
in.h: Coordinate in6_pktinfo and ip6_mtuinfo for kernel and glibc [BZ #15850]
Similarly to what we did for in6_addr, we need a macro to guard in6_pktinfo and ip6_mtuinfo too. Cc: Carlos O'Donell <carlos@redhat.com> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
-rw-r--r--ChangeLog8
-rw-r--r--inet/netinet/in.h3
-rw-r--r--sysdeps/unix/sysv/linux/bits/in.h8
3 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 76ad507015..e13f9f912b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-02-25 Cong Wang <xiyou.wangcong@gmail.com>
+
+ [BZ #15850]
+ * inet/netinet/in.h [!__USE_KERNEL_IPV6_DEFS]: Put in6_pktinfo
+ and ip6_mtuinfo definitions here.
+ * sysdeps/unix/sysv/linux/bits/in.h [_UAPI_IPV6_H]: Wrap code
+ in this define too. Update comment.
+
2015-02-24 Benno Schulenberg <bensberg@justemail.net>
* elf/sprof.c (load_shobj): Tweak error message to match others.
diff --git a/inet/netinet/in.h b/inet/netinet/in.h
index bf3c8b1730..f541c5809d 100644
--- a/inet/netinet/in.h
+++ b/inet/netinet/in.h
@@ -530,6 +530,7 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
#ifdef __USE_GNU
struct cmsghdr; /* Forward declaration. */
+#ifndef __USE_KERNEL_IPV6_DEFS
/* IPv6 packet information. */
struct in6_pktinfo
{
@@ -543,7 +544,7 @@ struct ip6_mtuinfo
struct sockaddr_in6 ip6m_addr; /* dst address including zone ID */
uint32_t ip6m_mtu; /* path MTU in host byte order */
};
-
+#endif /* !__USE_KERNEL_IPV6_DEFS */
/* Obsolete hop-by-hop and Destination Options Processing (RFC 2292). */
extern int inet6_option_space (int __nbytes)
diff --git a/sysdeps/unix/sysv/linux/bits/in.h b/sysdeps/unix/sysv/linux/bits/in.h
index b80a27fa43..b1d2cf60f3 100644
--- a/sysdeps/unix/sysv/linux/bits/in.h
+++ b/sysdeps/unix/sysv/linux/bits/in.h
@@ -23,10 +23,10 @@
/* If the application has already included linux/in6.h from a linux-based
kernel then we will not define the IPv6 IPPROTO_* defines, in6_addr (nor the
- defines), sockaddr_in6, or ipv6_mreq. The ABI used by the linux-kernel and
- glibc match exactly. Neither the linux kernel nor glibc should break this
- ABI without coordination. */
-#ifdef _UAPI_LINUX_IN6_H
+ defines), sockaddr_in6, or ipv6_mreq. Same for in6_ptkinfo or ip6_mtuinfo
+ in linux/ipv6.h. The ABI used by the linux-kernel and glibc match exactly.
+ Neither the linux kernel nor glibc should break this ABI without coordination. */
+#if defined _UAPI_LINUX_IN6_H || defined _UAPI_IPV6_H
/* This is not quite the same API since the kernel always defines s6_addr16 and
s6_addr32. This is not a violation of POSIX since POSIX says "at least the
following member" and that holds true. */