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