| From cbf84a0bc377c6a368d30571f37ebfab27784697 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks> |
| Date: Wed, 2 Dec 2015 04:57:33 +0100 |
| Subject: [PATCH 4/4] Fix musl build issue |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| 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 cb5770b..c58129f 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 |
| |