summaryrefslogtreecommitdiff
path: root/package/norm
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-08-26 22:08:14 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-08-27 14:45:08 +0200
commite74d4fc4932df4ea42381acb44d616241275b79a (patch)
treefa85ddbe7bad427f20facfe039a9b8471af142aa /package/norm
parent2ba72e02b0883e61a11160f0212b51ae1e4d0c70 (diff)
norm: add patch to fix musl build
Fixes: http://autobuild.buildroot.net/results/9c7130d5b5aad218c5c576761d495a3f403fdc5b/ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/norm')
-rw-r--r--package/norm/0003-remove-kernel-headers-include-musl-fix.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/package/norm/0003-remove-kernel-headers-include-musl-fix.patch b/package/norm/0003-remove-kernel-headers-include-musl-fix.patch
new file mode 100644
index 000000000..7581c10b7
--- /dev/null
+++ b/package/norm/0003-remove-kernel-headers-include-musl-fix.patch
@@ -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