From: André Draszik <adras...@tycoint.com> 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, }; By defining __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO to 0, we avoid the duplicated definition. Signed-off-by: André Draszik <adras...@tycoint.com> --- ....h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch | 62 ++++++++++++++++++++++ .../linux-libc-headers/linux-libc-headers_4.10.bb | 1 + 2 files changed, 63 insertions(+) create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch 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..fd1bb9edb8 --- /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,62 @@ +From 08a04c025395b0580913285045f2af36ee0985db Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adras...@tycoint.com> +Date: Thu, 15 Jun 2017 16:55:33 +0100 +Subject: [PATCH] libc-compat.h: musl _does_ define IFF_LOWER_UP DORMANT ECHO +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +To trigger this (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: +/scratch/yocto/build-tgm-r3-poky-fpp-tgm.pyro/tmp/work/tgm_r3-poky-linux-musl/connman/1.33-git4+AUTOINC+aa5b3dc12b-r0/recipe-sysroot/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, + +}; + +Upstream-Status: Pending +Signed-off-by: André Draszik <adras...@tycoint.com> +Acked-by: Stephane Ayotte <sayo...@tycoint.com> +--- + include/uapi/linux/libc-compat.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h +index f11ec0e..2003ae4 100644 +--- a/include/uapi/linux/libc-compat.h ++++ b/include/uapi/linux/libc-compat.h +@@ -70,7 +70,8 @@ + #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0 + /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */ + #ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO +-#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1 ++/* musl has these defined */ ++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0 + #endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */ + + #else /* _NET_IF_H */ +-- +2.11.0 + 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 = "\ file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \ file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ + file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \ " SRC_URI[md5sum] = "b5e7f6b9b2fe1b6cc7bc56a3a0bfc090" -- 2.11.0 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core