blob: 6ad479863ef481cf992a98bcc3c1e922afb28f17 [file] [log] [blame]
Patrick Williamsd8c66bc2016-06-20 12:57:21 -05001From 2872f5d8bcef84e62b15b37ba4ffeccfb6402dad Mon Sep 17 00:00:00 2001
2From: rofl0r <retnyg@gmx.net>
3Date: Wed, 22 Jan 2014 00:48:28 +0100
4Subject: [PATCH 1/3] libc-compat.h: fix some issues arising from in6.h
5
6namely redefinition of some structs provided by netinet/in.h.
7---
8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9Upstream-Status: Submitted
10
11 include/uapi/linux/libc-compat.h | 25 ++++++++-----------------
12 1 file changed, 8 insertions(+), 17 deletions(-)
13
14Index: linux-4.4/include/uapi/linux/libc-compat.h
15===================================================================
16--- linux-4.4.orig/include/uapi/linux/libc-compat.h
17+++ linux-4.4/include/uapi/linux/libc-compat.h
18@@ -48,13 +48,12 @@
19 #ifndef _UAPI_LIBC_COMPAT_H
20 #define _UAPI_LIBC_COMPAT_H
21
22-/* We have included glibc headers... */
23-#if defined(__GLIBC__)
24+#ifndef __KERNEL__ /* we're used from userspace */
25
26-/* Coordinate with glibc netinet/in.h header. */
27+/* Coordinate with libc netinet/in.h header. */
28 #if defined(_NETINET_IN_H)
29
30-/* GLIBC headers included first so don't define anything
31+/* LIBC headers included first so don't define anything
32 * that would already be defined. */
33 #define __UAPI_DEF_IN_ADDR 0
34 #define __UAPI_DEF_IN_IPPROTO 0
35@@ -64,15 +63,7 @@
36 #define __UAPI_DEF_IN_CLASS 0
37
38 #define __UAPI_DEF_IN6_ADDR 0
39-/* The exception is the in6_addr macros which must be defined
40- * if the glibc code didn't define them. This guard matches
41- * the guard in glibc/inet/netinet/in.h which defines the
42- * additional in6_addr macros e.g. s6_addr16, and s6_addr32. */
43-#if defined(__USE_MISC) || defined (__USE_GNU)
44 #define __UAPI_DEF_IN6_ADDR_ALT 0
45-#else
46-#define __UAPI_DEF_IN6_ADDR_ALT 1
47-#endif
48 #define __UAPI_DEF_SOCKADDR_IN6 0
49 #define __UAPI_DEF_IPV6_MREQ 0
50 #define __UAPI_DEF_IPPROTO_V6 0
51@@ -80,10 +71,10 @@
52 #define __UAPI_DEF_IN6_PKTINFO 0
53 #define __UAPI_DEF_IP6_MTUINFO 0
54
55-#else
56+#else /* defined(_NETINET_IN_H) */
57
58 /* Linux headers included first, and we must define everything
59- * we need. The expectation is that glibc will check the
60+ * we need. The expectation is that libc will check the
61 * __UAPI_DEF_* defines and adjust appropriately. */
62 #define __UAPI_DEF_IN_ADDR 1
63 #define __UAPI_DEF_IN_IPPROTO 1
64@@ -93,7 +84,7 @@
65 #define __UAPI_DEF_IN_CLASS 1
66
67 #define __UAPI_DEF_IN6_ADDR 1
68-/* We unconditionally define the in6_addr macros and glibc must
69+/* We unconditionally define the in6_addr macros and libc must
70 * coordinate. */
71 #define __UAPI_DEF_IN6_ADDR_ALT 1
72 #define __UAPI_DEF_SOCKADDR_IN6 1
73@@ -115,7 +106,7 @@
74 /* If we did not see any headers from any supported C libraries,
75 * or we are being included in the kernel, then define everything
76 * that we need. */
77-#else /* !defined(__GLIBC__) */
78+#else /* __KERNEL__ */
79
80 /* Definitions for in.h */
81 #define __UAPI_DEF_IN_ADDR 1
82@@ -138,6 +129,6 @@
83 /* Definitions for xattr.h */
84 #define __UAPI_DEF_XATTR 1
85
86-#endif /* __GLIBC__ */
87+#endif /* __KERNEL__ */
88
89 #endif /* _UAPI_LIBC_COMPAT_H */