Remove kernel header includes causing issues with musl Include the kernel headers from netfilter causes a conflict with the 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 Index: b/protolib/src/linux/linuxDetour.cpp =================================================================== --- a/protolib/src/linux/linuxDetour.cpp +++ b/protolib/src/linux/linuxDetour.cpp @@ -7,15 +7,18 @@ #include // for atoi(), getenv() #include #include // for close() -#include // for NF_IP_LOCAL_OUT, etc -#include // for NF_IP6_LOCAL_OUT, etc -#include // for NF_ACCEPT, etc #include #include // for fcntl(), etc #include // for ETH_P_IP #include // 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