As with struct ethhdr, the musl libc provides its own definition of the iphdr struct. This guard ensures software like net-tools builds correctly on the musl libc. The __UAPI_DEF_IPHDR definition is in ip.h itself to prevent the issue in commit da360299b673 ("uapi/if_ether.h: move __UAPI_DEF_ETHHDR libc define") from being seen here. Signed-off-by: A. Wilcox <AWilcox@xxxxxxxxxxxxxxx> --- include/uapi/linux/ip.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/uapi/linux/ip.h b/include/uapi/linux/ip.h index e42d13b55cf3..d34a0d295672 100644 --- a/include/uapi/linux/ip.h +++ b/include/uapi/linux/ip.h @@ -83,6 +83,13 @@ #define IPV4_BEET_PHMAXLEN 8 +/* Allow libcs to deactivate this - musl has its own copy in <netinet/ip.h> */ + +#ifndef __UAPI_DEF_IPHDR +#define __UAPI_DEF_IPHDR 1 +#endif + +#if __UAPI_DEF_IPHDR struct iphdr { #if defined(__LITTLE_ENDIAN_BITFIELD) __u8 ihl:4, @@ -104,6 +111,7 @@ struct iphdr { __be32 daddr; /*The options start here. */ }; +#endif struct ip_auth_hdr { -- 2.22.1