ebtables: enable for musl

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>
This commit is contained in:
Baruch Siach 2017-02-16 14:50:56 +02:00 committed by Peter Korsgaard
parent 194cb3f320
commit 30c4b5843f
3 changed files with 80 additions and 2 deletions

View file

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

View file

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

View 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