diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | inet/netinet/in.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/bits/in.h | 8 |
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. */ |