This patch was made by Natanael Copa of the Alpine Linux project.
http://git.alpinelinux.org/cgit/aports/commit/?id=0f5076024a9700644ac9d542d2ca643fa38e77da

--- Makefile.orig
+++ Makefile
@@ -17,7 +17,7 @@
 SYSCONFIGDIR:=/etc/sysconfig
 DESTDIR:=
 
-CFLAGS:=-Wall -Wunused -Werror
+CFLAGS:=-Wall -Wunused
 CFLAGS_SH_LIB:=-fPIC -O3
 CC:=gcc
 
--- extensions/ebt_among.c.orig
+++ extensions/ebt_among.c
@@ -12,14 +12,14 @@
 #include <getopt.h>
 #include <ctype.h>
 #include <unistd.h>
-#include "../include/ebtables_u.h"
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <fcntl.h>
 #include <netinet/ether.h>
+#include "../include/ebtables_u.h"
 #include "../include/ethernetdb.h"
 #include <linux/if_ether.h>
 #include <linux/netfilter_bridge/ebt_among.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <fcntl.h>
 
 #define AMONG_DST '1'
 #define AMONG_SRC '2'
--- extensions/ebt_arpreply.c.orig
+++ extensions/ebt_arpreply.c
@@ -11,8 +11,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include <getopt.h>
-#include "../include/ebtables_u.h"
 #include <netinet/ether.h>
+#include "../include/ebtables_u.h"
 #include <linux/netfilter_bridge/ebt_arpreply.h>
 
 static int mac_supplied;
--- extensions/ebt_ip6.c.orig
+++ extensions/ebt_ip6.c
@@ -53,8 +53,8 @@
 
 struct icmpv6_names {
 	const char *name;
-	u_int8_t type;
-	u_int8_t code_min, code_max;
+	uint8_t type;
+	uint8_t code_min, code_max;
 };
 
 static const struct icmpv6_names icmpv6_codes[] = {
--- extensions/ebt_limit.c.orig
+++ extensions/ebt_limit.c
@@ -59,11 +59,11 @@
 "                                default %u\n", EBT_LIMIT_BURST);
 }
 
-static int parse_rate(const char *rate, u_int32_t *val)
+static int parse_rate(const char *rate, uint32_t *val)
 {
 	const char *delim;
-	u_int32_t r;
-	u_int32_t mult = 1;  /* Seconds by default. */
+	uint32_t r;
+	uint32_t mult = 1;  /* Seconds by default. */
 
 	delim = strchr(rate, '/');
 	if (delim) {
@@ -151,7 +151,7 @@
 struct rates
 {
 	const char *name;
-	u_int32_t mult;
+	uint32_t mult;
 };
 
 static struct rates g_rates[] =
@@ -162,7 +162,7 @@
 	{ "sec", EBT_LIMIT_SCALE }
 };
 
-static void print_rate(u_int32_t period)
+static void print_rate(uint32_t period)
 {
 	unsigned int i;
 
--- extensions/ebt_nat.c.orig
+++ extensions/ebt_nat.c
@@ -10,8 +10,8 @@
 #include <stdlib.h>
 #include <string.h>
 #include <getopt.h>
-#include "../include/ebtables_u.h"
 #include <netinet/ether.h>
+#include "../include/ebtables_u.h"
 #include <linux/netfilter_bridge/ebt_nat.h>
 
 static int to_source_supplied, to_dest_supplied;
--- include/ethernetdb.h.orig
+++ include/ethernetdb.h
@@ -30,6 +30,10 @@
 #define	_PATH_ETHERTYPES	"/etc/ethertypes"
 #endif				/* _PATH_ETHERTYPES */
 
+#ifndef __THROW
+#define __THROW
+#endif
+
 struct ethertypeent {
 	char *e_name;		/* Official ethernet type name.  */
 	char **e_aliases;	/* Alias list.  */
--- useful_functions.c.orig
+++ useful_functions.c
@@ -22,8 +22,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
-#include "include/ebtables_u.h"
-#include "include/ethernetdb.h"
+#define _GNU_SOURCE
 #include <stdio.h>
 #include <netinet/ether.h>
 #include <string.h>
@@ -33,6 +32,8 @@
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <arpa/inet.h>
+#include "include/ebtables_u.h"
+#include "include/ethernetdb.h"
 
 const unsigned char mac_type_unicast[ETH_ALEN] =   {0,0,0,0,0,0};
 const unsigned char msk_type_unicast[ETH_ALEN] =   {1,0,0,0,0,0};
