ebtables: enable for musl
authorBaruch Siach <baruch@tkos.co.il>
Thu, 16 Feb 2017 12:50:56 +0000 (14:50 +0200)
committerPeter Korsgaard <peter@korsgaard.com>
Fri, 17 Feb 2017 15:32:01 +0000 (16:32 +0100)
Add two patches that fix build with musl. The first patch is upstream. The
second patch uses the Buildroot workaround to suppress conflicting struct
ethhdr definitions.

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/ebtables/0001-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch [new file with mode: 0644]
package/ebtables/0002-Fix-musl-compatibility.patch [new file with mode: 0644]
package/ebtables/Config.in

diff --git a/package/ebtables/0001-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch b/package/ebtables/0001-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch
new file mode 100644 (file)
index 0000000..bd7bead
--- /dev/null
@@ -0,0 +1,50 @@
+From f8079671326e9fd079391d24911a9a8a77f1d6fd Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sat, 16 May 2015 12:31:58 +0200
+Subject: [PATCH] ethernetdb.h: Remove C++ specific compiler hint macro _THROW
+
+Fixes compilation with musl libc
+
+Signed-off-by: Felix Janda <felix.janda@posteo.de>
+Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+Patch status: upstream commit f8079671326e9fd0
+
+ include/ethernetdb.h | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/include/ethernetdb.h b/include/ethernetdb.h
+index 46d8bfd1b7e5..1683abe01987 100644
+--- a/include/ethernetdb.h
++++ b/include/ethernetdb.h
+@@ -38,21 +38,20 @@ struct ethertypeent {
+ /* Open ethertype data base files and mark them as staying open even
+    after a later search if STAY_OPEN is non-zero.  */
+-extern void setethertypeent(int __stay_open) __THROW;
++extern void setethertypeent(int __stay_open);
+ /* Close ethertype data base files and clear `stay open' flag.  */
+-extern void endethertypeent(void) __THROW;
++extern void endethertypeent(void);
+ /* Get next entry from ethertype data base file.  Open data base if
+    necessary.  */
+-extern struct ethertypeent *getethertypeent(void) __THROW;
++extern struct ethertypeent *getethertypeent(void);
+ /* Return entry from ethertype data base for network with NAME.  */
+-extern struct ethertypeent *getethertypebyname(__const char *__name)
+-    __THROW;
++extern struct ethertypeent *getethertypebyname(__const char *__name);
+ /* Return entry from ethertype data base which number is PROTO.  */
+-extern struct ethertypeent *getethertypebynumber(int __ethertype) __THROW;
++extern struct ethertypeent *getethertypebynumber(int __ethertype);
+ #endif                                /* ethernetdb.h */
+-- 
+2.11.0
+
diff --git a/package/ebtables/0002-Fix-musl-compatibility.patch b/package/ebtables/0002-Fix-musl-compatibility.patch
new file mode 100644 (file)
index 0000000..5e9f534
--- /dev/null
@@ -0,0 +1,30 @@
+From 138e7efdc8cad6453620c6366e6fa5e786593f7f Mon Sep 17 00:00:00 2001
+From: Baruch Siach <baruch@tkos.co.il>
+Date: Thu, 16 Feb 2017 14:41:48 +0200
+Subject: [PATCH] Fix musl compatibility
+
+Include netinet/ether.h before kernel headers to suppress the conflicting
+definition of struct ethhdr.
+
+Signed-off-by: Baruch Siach <baruch@tkos.co.il>
+---
+Upstream status: not upstreamable; depends on Buildroot local musl patch
+---
+ include/ebtables_u.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/ebtables_u.h b/include/ebtables_u.h
+index 35a5bcc54c86..268b1fd599d2 100644
+--- a/include/ebtables_u.h
++++ b/include/ebtables_u.h
+@@ -24,6 +24,7 @@
+ #ifndef EBTABLES_U_H
+ #define EBTABLES_U_H
+ #include <netinet/in.h>
++#include <netinet/ether.h>
+ #include <linux/netfilter_bridge/ebtables.h>
+ #include <linux/netfilter/x_tables.h>
+-- 
+2.11.0
+
index fa123b196e37a9b743a0f5afd7c7c81bf6ddca46..2fdac06cd17d65c441d96845b649cd45241c7e8f 100644 (file)
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_EBTABLES
        bool "ebtables"
-       depends on !BR2_TOOLCHAIN_USES_MUSL # mixes userspace and kernel headers
        depends on BR2_USE_MMU # fork()
        help
          Ethernet bridge frame table administration
@@ -8,5 +7,4 @@ config BR2_PACKAGE_EBTABLES
          http://ebtables.netfilter.org/
 
 comment "ebtables needs a glibc or uClibc toolchain"
-       depends on BR2_TOOLCHAIN_USES_MUSL
        depends on BR2_USE_MMU