<div><div dir="auto">I would rather fix the package instead of kernel headers unless kernel community accepts this patch </div><br><div class="gmail_quote"><div>On Thu, Jun 22, 2017 at 11:14 AM André Draszik &lt;<a href="mailto:git@andred.net">git@andred.net</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: André Draszik &lt;<a href="mailto:adraszik@tycoint.com" target="_blank">adraszik@tycoint.com</a>&gt;<br>
<br>
musl _does_ define IFF_LOWER_UP DORMANT ECHO so we should<br>
prevent redefinition of these when on musl.<br>
<br>
As per the included patch, this can be triggered by<br>
(from connman 6to4.c):<br>
    include &lt;errno.h&gt;<br>
    include &lt;stdio.h&gt;<br>
    include &lt;stdlib.h&gt;<br>
    include &lt;string.h&gt;<br>
    include &lt;sys/socket.h&gt;<br>
    include &lt;netinet/in.h&gt;<br>
    include &lt;arpa/inet.h&gt;<br>
    include &lt;net/if.h&gt;<br>
    include &lt;linux/ip.h&gt;<br>
    include &lt;linux/if_tunnel.h&gt;<br>
    include &lt;linux/netlink.h&gt;<br>
    include &lt;linux/rtnetlink.h&gt;<br>
    include &lt;sys/ioctl.h&gt;<br>
    include &lt;unistd.h&gt;<br>
<br>
In file included from ../git/src/6to4.c:34:0:<br>
.../usr/include/linux/if.h:97:2: error: expected identifier before numeric constant<br>
  IFF_LOWER_UP   = 1&lt;&lt;16, /* __volatile__ */<br>
  ^<br>
<br>
This is because at that time, IFF_LOWER_UP has been converted<br>
to 0x10000 already:<br>
enum net_device_flags {<br>
 0x10000 = 1&lt;&lt;16,<br>
 0x20000 = 1&lt;&lt;17,<br>
 0x40000 = 1&lt;&lt;18,<br>
<br>
};<br>
<br>
By defining __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO<br>
to 0, we avoid the duplicated definition.<br>
<br>
Signed-off-by: André Draszik &lt;<a href="mailto:adraszik@tycoint.com" target="_blank">adraszik@tycoint.com</a>&gt;<br>
---<br>
 ....h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch | 62 ++++++++++++++++++++++<br>
 .../linux-libc-headers/<a href="http://linux-libc-headers_4.10.bb" rel="noreferrer" target="_blank">linux-libc-headers_4.10.bb</a>  |  1 +<br>
 2 files changed, 63 insertions(+)<br>
 create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch<br>
<br>
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<br>
new file mode 100644<br>
index 0000000000..fd1bb9edb8<br>
--- /dev/null<br>
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch<br>
@@ -0,0 +1,62 @@<br>
+From 08a04c025395b0580913285045f2af36ee0985db Mon Sep 17 00:00:00 2001<br>
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= &lt;<a href="mailto:adraszik@tycoint.com" target="_blank">adraszik@tycoint.com</a>&gt;<br>
+Date: Thu, 15 Jun 2017 16:55:33 +0100<br>
+Subject: [PATCH] libc-compat.h: musl _does_ define IFF_LOWER_UP DORMANT ECHO<br>
+MIME-Version: 1.0<br>
+Content-Type: text/plain; charset=UTF-8<br>
+Content-Transfer-Encoding: 8bit<br>
+<br>
+To trigger this (from connman 6to4.c):<br>
+    include &lt;errno.h&gt;<br>
+    include &lt;stdio.h&gt;<br>
+    include &lt;stdlib.h&gt;<br>
+    include &lt;string.h&gt;<br>
+    include &lt;sys/socket.h&gt;<br>
+    include &lt;netinet/in.h&gt;<br>
+    include &lt;arpa/inet.h&gt;<br>
+    include &lt;net/if.h&gt;<br>
+    include &lt;linux/ip.h&gt;<br>
+    include &lt;linux/if_tunnel.h&gt;<br>
+    include &lt;linux/netlink.h&gt;<br>
+    include &lt;linux/rtnetlink.h&gt;<br>
+    include &lt;sys/ioctl.h&gt;<br>
+    include &lt;unistd.h&gt;<br>
+<br>
+In file included from ../git/src/6to4.c:34:0:<br>
+/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<br>
+  IFF_LOWER_UP   = 1&lt;&lt;16, /* __volatile__ */<br>
+  ^<br>
+<br>
+This is because at that time, IFF_LOWER_UP has been converted<br>
+to 0x10000 already:<br>
+enum net_device_flags {<br>
+ 0x10000 = 1&lt;&lt;16,<br>
+ 0x20000 = 1&lt;&lt;17,<br>
+ 0x40000 = 1&lt;&lt;18,<br>
+<br>
+};<br>
+<br>
+Upstream-Status: Pending<br>
+Signed-off-by: André Draszik &lt;<a href="mailto:adraszik@tycoint.com" target="_blank">adraszik@tycoint.com</a>&gt;<br>
+Acked-by: Stephane Ayotte &lt;<a href="mailto:sayotte@tycoint.com" target="_blank">sayotte@tycoint.com</a>&gt;<br>
+---<br>
+ include/uapi/linux/libc-compat.h | 3 ++-<br>
+ 1 file changed, 2 insertions(+), 1 deletion(-)<br>
+<br>
+diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h<br>
+index f11ec0e..2003ae4 100644<br>
+--- a/include/uapi/linux/libc-compat.h<br>
++++ b/include/uapi/linux/libc-compat.h<br>
+@@ -70,7 +70,8 @@<br>
+ #define __UAPI_DEF_IF_NET_DEVICE_FLAGS 0<br>
+ /* For the future if glibc adds IFF_LOWER_UP, IFF_DORMANT and IFF_ECHO */<br>
+ #ifndef __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO<br>
+-#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 1<br>
++/* musl has these defined */<br>
++#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0<br>
+ #endif /* __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO */<br>
+<br>
+ #else /* _NET_IF_H */<br>
+--<br>
+2.11.0<br>
+<br>
diff --git a/meta/recipes-kernel/linux-libc-headers/<a href="http://linux-libc-headers_4.10.bb" rel="noreferrer" target="_blank">linux-libc-headers_4.10.bb</a> b/meta/recipes-kernel/linux-libc-headers/<a href="http://linux-libc-headers_4.10.bb" rel="noreferrer" target="_blank">linux-libc-headers_4.10.bb</a><br>
index 108446aa34..29262789a8 100644<br>
--- a/meta/recipes-kernel/linux-libc-headers/<a href="http://linux-libc-headers_4.10.bb" rel="noreferrer" target="_blank">linux-libc-headers_4.10.bb</a><br>
+++ b/meta/recipes-kernel/linux-libc-headers/<a href="http://linux-libc-headers_4.10.bb" rel="noreferrer" target="_blank">linux-libc-headers_4.10.bb</a><br>
@@ -4,6 +4,7 @@ SRC_URI_append_libc-musl = &quot;\<br>
     file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \<br>
     file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \<br>
     file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \<br>
+    file://0001-libc-compat.h-musl-_does_-define-IFF_LOWER_UP-DORMAN.patch \<br>
    &quot;<br>
<br>
 SRC_URI[md5sum] = &quot;b5e7f6b9b2fe1b6cc7bc56a3a0bfc090&quot;<br>
--<br>
2.11.0<br>
<br>
--<br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote></div></div>