diff options
author | André Draszik <adraszik@tycoint.com> | 2017-06-23 12:42:13 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-06-28 20:55:08 +0100 |
commit | 868486c238780ce4a11d9ec9a38e40cb6c1cfc01 (patch) | |
tree | dd5c81191743ba98afe3e31df233e8da19f0c18e /meta | |
parent | 15b2d550e079b02995f94d7eed466556cc35657d (diff) | |
download | poky-868486c238780ce4a11d9ec9a38e40cb6c1cfc01.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)
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>
Diffstat (limited to 'meta')
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 @@ | |||
1 | Content-Type: text/plain; charset="utf-8" | ||
2 | MIME-Version: 1.0 | ||
3 | Content-Transfer-Encoding: 7bit | ||
4 | Subject: [v2,2/3] uapi glibc compat: fix build if libc defines IFF_ECHO | ||
5 | From: Hauke Mehrtens <hauke@hauke-m.de> | ||
6 | X-Patchwork-Id: 9686293 | ||
7 | Message-Id: <20170418210036.26039-3-hauke@hauke-m.de> | ||
8 | To: davem@davemloft.net, netdev@vger.kernel.org | ||
9 | Cc: 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> | ||
12 | Date: Tue, 18 Apr 2017 23:00:35 +0200 | ||
13 | |||
14 | musl 1.1.15 defines IFF_ECHO and the other net_device_flags options. | ||
15 | When a user application includes linux/if.h and net/if.h the compile | ||
16 | will fail. | ||
17 | |||
18 | Activate __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO only when | ||
19 | it is needed. This should also make this work in case glibc will add | ||
20 | these defines. | ||
21 | |||
22 | Acked-by: Mikko Rapeli <mikko.rapeli@iki.fi> | ||
23 | Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> | ||
24 | --- | ||
25 | Upstream-Status: Submitted [https://patchwork.kernel.org/patch/9686293/] | ||
26 | Signed-off-by: André Draszik <adraszik@tycoint.com> | ||
27 | Acked-by: Stephane Ayotte <sayotte@tycoint.com> | ||
28 | include/uapi/linux/libc-compat.h | 2 ++ | ||
29 | 1 file changed, 2 insertions(+) | ||
30 | |||
31 | diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h | ||
32 | index 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 | ||
9 | SRC_URI[md5sum] = "b5e7f6b9b2fe1b6cc7bc56a3a0bfc090" | 10 | SRC_URI[md5sum] = "b5e7f6b9b2fe1b6cc7bc56a3a0bfc090" |