when using musl packages include netinet/ether.h break because struct ethhdr gets redefined.
this patch comes includes a patch originally from sabotage linux and it has been submitted upstream https://lkml.org/lkml/2014/3/14/266 Signed-off-by: Alejandro Mery <[email protected]> --- ...206-prevent-redefinition-of-struct-ethhdr.patch | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 target/linux/generic/patches-3.18/206-prevent-redefinition-of-struct-ethhdr.patch diff --git a/target/linux/generic/patches-3.18/206-prevent-redefinition-of-struct-ethhdr.patch b/target/linux/generic/patches-3.18/206-prevent-redefinition-of-struct-ethhdr.patch new file mode 100644 index 0000000..e888320 --- /dev/null +++ b/target/linux/generic/patches-3.18/206-prevent-redefinition-of-struct-ethhdr.patch @@ -0,0 +1,53 @@ +From 4ffbb51f2abfbefa73cbd418f55b20148d04959a Mon Sep 17 00:00:00 2001 +From: rofl0r <[email protected]> +Date: Wed, 22 Jan 2014 00:57:48 +0100 +Subject: [PATCH] libc-compat.h: prevent redefinition of struct ethhdr + +--- + generic/include/linux/if_ether.h | 4 +++- + generic/include/linux/libc-compat.h | 6 ++++++ + 2 files changed, 9 insertions(+), 1 deletion(-) + +Index: linux-3.19/include/uapi/linux/if_ether.h +=================================================================== +--- linux-3.19.orig/include/uapi/linux/if_ether.h ++++ linux-3.19/include/uapi/linux/if_ether.h +@@ -22,6 +22,7 @@ + #define _UAPI_LINUX_IF_ETHER_H + + #include <linux/types.h> ++#include <linux/libc-compat.h> + + /* + * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble +@@ -134,11 +135,12 @@ + * This is an Ethernet frame header. + */ + ++#if __UAPI_DEF_ETHHDR + struct ethhdr { + unsigned char h_dest[ETH_ALEN]; /* destination eth addr */ + unsigned char h_source[ETH_ALEN]; /* source ether addr */ + __be16 h_proto; /* packet type ID field */ + } __attribute__((packed)); +- ++#endif + + #endif /* _UAPI_LINUX_IF_ETHER_H */ +Index: linux-3.19/include/uapi/linux/libc-compat.h +=================================================================== +--- linux-3.18.16.orig/include/uapi/linux/libc-compat.h ++++ linux-3.18.16/include/uapi/linux/libc-compat.h +@@ -48,6 +48,12 @@ + #ifndef _UAPI_LIBC_COMPAT_H + #define _UAPI_LIBC_COMPAT_H + ++#ifdef _NETINET_IF_ETHER_H /* musl */ ++#define __UAPI_DEF_ETHHDR 0 ++#else /* glibc uses __NETINET_IF_ETHER_H, and includes the kernel header. */ ++#define __UAPI_DEF_ETHHDR 1 ++#endif ++ + /* We have included glibc headers... */ + #if defined(__GLIBC__) + -- 2.3.6 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
