|
@@ -0,0 +1,55 @@
|
|
|
|
+Remove kernel header includes causing issues with musl
|
|
|
|
+
|
|
|
|
+Include the kernel headers from netfilter causes a conflict with the
|
|
|
|
+<netinet/in.h> way of defining the IPPROTO_* constants, resulting in
|
|
|
|
+the following build failure:
|
|
|
|
+
|
|
|
|
+In file included from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/netdb.h:9:0,
|
|
|
|
+ from /home/peko/autobuild/instance-0/output/build/norm-1.5r6/protolib/include/protoAddress.h:13,
|
|
|
|
+ from /home/peko/autobuild/instance-0/output/build/norm-1.5r6/protolib/include/protoDetour.h:5,
|
|
|
|
+ from ../protolib/src/linux/linuxDetour.cpp:3:
|
|
|
|
+/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected identifier before numeric constant
|
|
|
|
+ IPPROTO_IP = 0, /* Dummy protocol for TCP */
|
|
|
|
+ ^
|
|
|
|
+/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected '}' before numeric constant
|
|
|
|
+/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected unqualified-id before numeric constant
|
|
|
|
+In file included from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/netfilter.h:7:0,
|
|
|
|
+ from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/netfilter_ipv4.h:8,
|
|
|
|
+ from ../protolib/src/linux/linuxDetour.cpp:10:
|
|
|
|
+/home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:79:1: error: expected declaration before '}' token
|
|
|
|
+ };
|
|
|
|
+ ^
|
|
|
|
+
|
|
|
|
+Since from musl's developers perspective including kernel headers is
|
|
|
|
+seen as being unsafe, we simply duplicate the necessary netfilter
|
|
|
|
+definitions (there are just a few) instead of including some kernel
|
|
|
|
+headers.
|
|
|
|
+
|
|
|
|
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
|
|
+
|
|
|
|
+Index: b/protolib/src/linux/linuxDetour.cpp
|
|
|
|
+===================================================================
|
|
|
|
+--- a/protolib/src/linux/linuxDetour.cpp
|
|
|
|
++++ b/protolib/src/linux/linuxDetour.cpp
|
|
|
|
+@@ -7,15 +7,18 @@
|
|
|
|
+ #include <stdlib.h> // for atoi(), getenv()
|
|
|
|
+ #include <stdio.h>
|
|
|
|
+ #include <unistd.h> // for close()
|
|
|
|
+-#include <linux/netfilter_ipv4.h> // for NF_IP_LOCAL_OUT, etc
|
|
|
|
+-#include <linux/netfilter_ipv6.h> // for NF_IP6_LOCAL_OUT, etc
|
|
|
|
+-#include <linux/netfilter.h> // for NF_ACCEPT, etc
|
|
|
|
+ #include <libnetfilter_queue/libnetfilter_queue.h>
|
|
|
|
+
|
|
|
|
+ #include <fcntl.h> // for fcntl(), etc
|
|
|
|
+ #include <linux/if_ether.h> // for ETH_P_IP
|
|
|
|
+ #include <net/if_arp.h> // for ARPHRD_ETHER
|
|
|
|
+
|
|
|
|
++/* From netfilter kernel headers */
|
|
|
|
++#define NF_IP_LOCAL_OUT 3
|
|
|
|
++
|
|
|
|
++#define NF_DROP 0
|
|
|
|
++#define NF_ACCEPT 1
|
|
|
|
++
|
|
|
|
+ /** NOTES:
|
|
|
|
+ *
|
|
|
|
+ * 1) This newer implementation of LinuxDetour uses netfilter_queue
|