summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndré Draszik <adraszik@tycoint.com>2017-08-03 23:37:02 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-08-29 11:57:28 +0100
commit6f6a73f7ada1624c288d89b8262f642c7ceaabe5 (patch)
tree4a9cdfa65f7d4ff0689cd7149463cc2a7ce0baea
parent2002de4eae4d1fa6d7187bdd557d6aadd9232205 (diff)
downloadpoky-6f6a73f7ada1624c288d89b8262f642c7ceaabe5.tar.gz
linux-libc-headers: fix duplicate IFF_LOWER_UP DORMANT ECHO on musl
musl _does_ define IFF_LOWER_UP DORMANT ECHO so we should prevent redefinition of these when on musl. As per the included patch, this can be triggered by (from connman 6to4.c): include <errno.h> include <stdio.h> include <stdlib.h> include <string.h> include <sys/socket.h> include <netinet/in.h> include <arpa/inet.h> include <net/if.h> include <linux/ip.h> include <linux/if_tunnel.h> include <linux/netlink.h> include <linux/rtnetlink.h> include <sys/ioctl.h> include <unistd.h> In file included from ../git/src/6to4.c:34:0: .../usr/include/linux/if.h:97:2: error: expected identifier before numeric constant IFF_LOWER_UP = 1<<16, /* __volatile__ */ ^ This is because at that time, IFF_LOWER_UP has been converted to 0x10000 already: enum net_device_flags { 0x10000 = 1<<16, 0x20000 = 1<<17, 0x40000 = 1<<18, }; Backport a patch that addresses this. (From OE-Core rev: 24dc2200047bae5d32c168d2625d96ac08a93d3d) (From OE-Core rev: 3683fdd01e76bc54121bb8421f908c183e8d66fc) Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch46
-rw-r--r--meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.10.bb1
2 files changed, 47 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch
new file mode 100644
index 0000000000..bde2132ebf
--- /dev/null
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch
@@ -0,0 +1,46 @@
1Content-Type: text/plain; charset="utf-8"
2MIME-Version: 1.0
3Content-Transfer-Encoding: 7bit
4Subject: [v2,2/3] uapi glibc compat: fix build if libc defines IFF_ECHO
5From: Hauke Mehrtens <hauke@hauke-m.de>
6X-Patchwork-Id: 9686293
7Message-Id: <20170418210036.26039-3-hauke@hauke-m.de>
8To: davem@davemloft.net, netdev@vger.kernel.org
9Cc: linux-kernel@vger.kernel.org, jarod@redhat.com, jogo@openwrt.org,
10 david.heidelberger@ixit.cz, maillist-linux@barfooze.de,
11 mikko.rapeli@iki.fi, dwmw2@infradead.org, Hauke Mehrtens <hauke@hauke-m.de>
12Date: Tue, 18 Apr 2017 23:00:35 +0200
13
14musl 1.1.15 defines IFF_ECHO and the other net_device_flags options.
15When a user application includes linux/if.h and net/if.h the compile
16will fail.
17
18Activate __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO only when
19it is needed. This should also make this work in case glibc will add
20these defines.
21
22Acked-by: Mikko Rapeli <mikko.rapeli@iki.fi>
23Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
24---
25Upstream-Status: Submitted [https://patchwork.kernel.org/patch/9686293/]
26Signed-off-by: André Draszik <adraszik@tycoint.com>
27Acked-by: Stephane Ayotte <sayotte@tycoint.com>
28 include/uapi/linux/libc-compat.h | 2 ++
29 1 file changed, 2 insertions(+)
30
31diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h
32index 43a81136ea6e..ce2fa8a4ced6 100644
33--- a/include/uapi/linux/libc-compat.h
34+++ b/include/uapi/linux/libc-compat.h
35@@ -64,9 +64,11 @@
36 /* Everything up to IFF_DYNAMIC, matches net/if.h until glibc 2.23 */
37 #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0
38 /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */
39+#ifndef IFF_ECHO
40 #ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO
41 #define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1
42 #endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */
43+#endif /* IFF_ECHO */
44
45 #else /* _NET_IF_H */
46
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.10.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.10.bb
index 108446aa34..29262789a8 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.10.bb
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.10.bb
@@ -4,6 +4,7 @@ SRC_URI_append_libc-musl = "\
4 file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ 4 file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \
5 file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \ 5 file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \
6 file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ 6 file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \
7 file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \
7 " 8 "
8 9
9SRC_URI[md5sum] = "b5e7f6b9b2fe1b6cc7bc56a3a0bfc090" 10SRC_URI[md5sum] = "b5e7f6b9b2fe1b6cc7bc56a3a0bfc090"