| 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 |