From 75ba4a547282f91d653872a4bba5f5eae234ea6c Mon Sep 17 00:00:00 2001 From: rofl0r Date: Wed, 22 Jan 2014 00:57:48 +0100 Subject: [PATCH 2/3] libc-compat.h: prevent redefinition of struct ethhdr --- Signed-off-by: Khem Raj Upstream-Status: Submitted include/uapi/linux/if_ether.h | 4 +++- include/uapi/linux/libc-compat.h | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/if_ether.h b/include/uapi/linux/if_ether.h index aa63ed0..e94da57 100644 --- a/include/uapi/linux/if_ether.h +++ b/include/uapi/linux/if_ether.h @@ -22,6 +22,7 @@ #define _UAPI_LINUX_IF_ETHER_H #include +#include /* * 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 */ diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h index afe15c2..7d0c78a 100644 --- a/include/uapi/linux/libc-compat.h +++ b/include/uapi/linux/libc-compat.h @@ -50,6 +50,12 @@ #ifndef __KERNEL__ /* we're used from userspace */ +#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 + /* Coordinate with libc netinet/in.h header. */ #if defined(_NETINET_IN_H) -- 2.6.4