kernel: use upstream patches for musl
[openwrt/openwrt.git] / toolchain / musl / patches / 010-kernel-suppress-some-more-Linux-uapi-definitions.patch
diff --git a/toolchain/musl/patches/010-kernel-suppress-some-more-Linux-uapi-definitions.patch b/toolchain/musl/patches/010-kernel-suppress-some-more-Linux-uapi-definitions.patch
new file mode 100644 (file)
index 0000000..78b487f
--- /dev/null
@@ -0,0 +1,59 @@
+From 8e85d2c268000b51cc690f3a55a820d8f8a6c0bc Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Thu, 22 Jun 2017 22:04:28 +0200
+Subject: [PATCH] Add additional uapi guards for Linux kernel header files
+
+With Linux kernel 4.15 it will be possible to guard more parts of the
+Linux header files from a libc. Make use of this in musl to guard all
+the structures and other definitions from the Linux header files which
+are also defined by the header files provided by musl. This will make
+musl compile with the unmodified Linux kernel user space headers.
+
+This extends the definitions done in commit 04983f227238 ("make
+netinet/in.h suppress clashing definitions from kernel headers")
+
+The needed patches were recently accepted for Linux 4.15:
+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c0bace798436bca0fdc221ff61143f1376a9c3de
+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6926e041a8920c8ec27e4e155efa760aa01551fd
+---
+ include/net/if.h           | 7 +++++++
+ include/netinet/if_ether.h | 1 +
+ include/sys/xattr.h        | 2 ++
+ 3 files changed, 10 insertions(+)
+
+--- a/include/net/if.h
++++ b/include/net/if.h
+@@ -125,6 +125,13 @@ struct ifconf {
+ #define ifc_req               ifc_ifcu.ifcu_req
+ #define _IOT_ifconf _IOT(_IOTS(struct ifconf),1,0,0,0,0)
++#define __UAPI_DEF_IF_IFCONF                                  0
++#define __UAPI_DEF_IF_IFMAP                                   0
++#define __UAPI_DEF_IF_IFNAMSIZ                                        0
++#define __UAPI_DEF_IF_IFREQ                                   0
++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS                                0
++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO  0
++
+ #endif
+ #ifdef __cplusplus
+--- a/include/netinet/if_ether.h
++++ b/include/netinet/if_ether.h
+@@ -133,5 +133,6 @@ do { \
+       (enaddr)[5] = ((uint8_t *)ipaddr)[3]; \
+ } while(0)
++#define __UAPI_DEF_ETHHDR     0
+ #endif
+--- a/include/sys/xattr.h
++++ b/include/sys/xattr.h
+@@ -24,6 +24,8 @@ int removexattr(const char *, const char
+ int lremovexattr(const char *, const char *);
+ int fremovexattr(int, const char *);
++#define __UAPI_DEF_XATTR      0
++
+ #ifdef __cplusplus
+ }
+ #endif