xref: /OK3568_Linux_fs/buildroot/package/arptables/0001-Fix-musl-build-issue.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom cbf84a0bc377c6a368d30571f37ebfab27784697 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
3*4882a593SmuzhiyunDate: Wed, 2 Dec 2015 04:57:33 +0100
4*4882a593SmuzhiyunSubject: [PATCH 4/4] Fix musl build issue
5*4882a593SmuzhiyunMIME-Version: 1.0
6*4882a593SmuzhiyunContent-Type: text/plain; charset=UTF-8
7*4882a593SmuzhiyunContent-Transfer-Encoding: 8bit
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunDue to clashes in the namespace between the Linux Kernel headers and the
10*4882a593Smuzhiyunnetinet headers building arptables with the musl C library fails.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunBest advice from the musl developers is to not include both headers in a
13*4882a593Smuzhiyunuserspace tool (see the thread on the musl mailing list [1], especially [2]).
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunSince arptables only requires a few definitions from the Linux Kernel headers
16*4882a593Smuzhiyunwe opt-out the clashing header files and define the needed definitions.
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun[1] http://www.openwall.com/lists/musl/2012/10/09/1
19*4882a593Smuzhiyun[2] http://www.openwall.com/lists/musl/2012/10/11/1
20*4882a593Smuzhiyun
21*4882a593SmuzhiyunSigned-off-by: Jörg Krause <joerg.krause@embedded.rocks>
22*4882a593Smuzhiyun---
23*4882a593Smuzhiyun extensions/arpt_CLASSIFY.c    |  7 +++++++
24*4882a593Smuzhiyun include/linux/netfilter_arp.h | 11 +++++++++++
25*4882a593Smuzhiyun 2 files changed, 18 insertions(+)
26*4882a593Smuzhiyun
27*4882a593Smuzhiyundiff --git a/extensions/arpt_CLASSIFY.c b/extensions/arpt_CLASSIFY.c
28*4882a593Smuzhiyunindex cb5770b..c58129f 100644
29*4882a593Smuzhiyun--- a/extensions/arpt_CLASSIFY.c
30*4882a593Smuzhiyun+++ b/extensions/arpt_CLASSIFY.c
31*4882a593Smuzhiyun@@ -21,7 +21,14 @@
32*4882a593Smuzhiyun #include <stdio.h>
33*4882a593Smuzhiyun #include <getopt.h>
34*4882a593Smuzhiyun #include <arptables.h>
35*4882a593Smuzhiyun+
36*4882a593Smuzhiyun+#ifdef __KERNEL__
37*4882a593Smuzhiyun #include <linux/netfilter/xt_CLASSIFY.h>
38*4882a593Smuzhiyun+#else
39*4882a593Smuzhiyun+struct xt_classify_target_info {
40*4882a593Smuzhiyun+	uint32_t priority;
41*4882a593Smuzhiyun+};
42*4882a593Smuzhiyun+#endif
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun #define TC_H_MAJ_MASK (0xFFFF0000U)
45*4882a593Smuzhiyun #define TC_H_MIN_MASK (0x0000FFFFU)
46*4882a593Smuzhiyundiff --git a/include/linux/netfilter_arp.h b/include/linux/netfilter_arp.h
47*4882a593Smuzhiyunindex 92bc6dd..2a63e82 100644
48*4882a593Smuzhiyun--- a/include/linux/netfilter_arp.h
49*4882a593Smuzhiyun+++ b/include/linux/netfilter_arp.h
50*4882a593Smuzhiyun@@ -5,7 +5,18 @@
51*4882a593Smuzhiyun  * (C)2002 Rusty Russell IBM -- This code is GPL.
52*4882a593Smuzhiyun  */
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun+#ifdef __KERNEL__
55*4882a593Smuzhiyun #include <linux/netfilter.h>
56*4882a593Smuzhiyun+#else
57*4882a593Smuzhiyun+/* Responses from hook functions. */
58*4882a593Smuzhiyun+#define NF_DROP 0
59*4882a593Smuzhiyun+#define NF_ACCEPT 1
60*4882a593Smuzhiyun+#define NF_STOLEN 2
61*4882a593Smuzhiyun+#define NF_QUEUE 3
62*4882a593Smuzhiyun+#define NF_REPEAT 4
63*4882a593Smuzhiyun+#define NF_STOP 5
64*4882a593Smuzhiyun+#define NF_MAX_VERDICT NF_STOP
65*4882a593Smuzhiyun+#endif
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun /* There is no PF_ARP. */
68*4882a593Smuzhiyun #define NF_ARP		0
69*4882a593Smuzhiyun--
70*4882a593Smuzhiyun2.6.2
71*4882a593Smuzhiyun
72