Due to clashes in the namespace between the Linux Kernel headers and the netinet headers building arptables with the musl C library fails. Best advice from the musl developers is to not include both headers in a userspace tool (see the thread on the musl mailing list [1], especially [2]). Since arptables only requires a few definitions from the Linux Kernel headers we opt-out the clashing header files and define the needed definitions. [1] http://www.openwall.com/lists/musl/2012/10/09/1 [2] http://www.openwall.com/lists/musl/2012/10/11/1 Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> --- extensions/arpt_CLASSIFY.c | 7 +++++++ include/linux/netfilter_arp.h | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/extensions/arpt_CLASSIFY.c b/extensions/arpt_CLASSIFY.c index 7893aed..742be63 100644 --- a/extensions/arpt_CLASSIFY.c +++ b/extensions/arpt_CLASSIFY.c @@ -21,7 +21,14 @@ #include <stdio.h> #include <getopt.h> #include <arptables.h> + +#ifdef __KERNEL__ #include <linux/netfilter/xt_CLASSIFY.h> +#else +struct xt_classify_target_info { + uint32_t priority; +}; +#endif #define TC_H_MAJ_MASK (0xFFFF0000U) #define TC_H_MIN_MASK (0x0000FFFFU) diff --git a/include/linux/netfilter_arp.h b/include/linux/netfilter_arp.h index 92bc6dd..2a63e82 100644 --- a/include/linux/netfilter_arp.h +++ b/include/linux/netfilter_arp.h @@ -5,7 +5,18 @@ * (C)2002 Rusty Russell IBM -- This code is GPL. */ +#ifdef __KERNEL__ #include <linux/netfilter.h> +#else +/* Responses from hook functions. */ +#define NF_DROP 0 +#define NF_ACCEPT 1 +#define NF_STOLEN 2 +#define NF_QUEUE 3 +#define NF_REPEAT 4 +#define NF_STOP 5 +#define NF_MAX_VERDICT NF_STOP +#endif /* There is no PF_ARP. */ #define NF_ARP 0 -- 2.6.2 ��.n��������+%������w��{.n����z���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥