From patchwork Wed Jan 7 00:13:19 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 4534 Received: (qmail 13655 invoked by alias); 7 Jan 2015 00:13:45 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 13644 invoked by uid 89); 7 Jan 2015 00:13:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-pa0-f49.google.com X-Received: by 10.68.69.66 with SMTP id c2mr158675965pbu.81.1420589620989; Tue, 06 Jan 2015 16:13:40 -0800 (PST) From: Cong Wang To: libc-alpha@sourceware.org Cc: Cong Wang , Carlos O'Donell Subject: [PATCH] Coordinate in6_pktinfo and ip6_mtuinfo for kernel and glibc Date: Tue, 6 Jan 2015 16:13:19 -0800 Message-Id: <1420589599-9094-1-git-send-email-xiyou.wangcong@gmail.com> Similarly to what we did for in6_addr, we need a macro to guard in6_pktinfo and ip6_mtuinfo too. Cc: Carlos O'Donell Signed-off-by: Cong Wang --- inet/netinet/in.h | 3 ++- sysdeps/unix/sysv/linux/bits/in.h | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/inet/netinet/in.h b/inet/netinet/in.h index bf3c8b1..f541c58 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 b80a27f..b1d2cf6 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. */