kernel-libc-headers: fix musl net headers conflicts

This commit is contained in:
John 2018-05-14 23:53:03 +02:00 committed by Enno Boland
parent cea983889b
commit 6e725564a7
2 changed files with 126 additions and 1 deletions

View File

@ -0,0 +1,125 @@
diff -u -r linux-4.9.8-bak/include/uapi/linux/if_arp.h linux-4.9.8/include/uapi/linux/if_arp.h
--- include/uapi/linux/if_arp.h 2018-05-14 23:49:28.882768986 +0200
+++ include/uapi/linux/if_arp.h 2018-05-14 23:50:03.156912981 +0200
@@ -24,6 +24,7 @@
#define _UAPI_LINUX_IF_ARP_H
#include <linux/netdevice.h>
+#include <linux/libc-compat.h>
/* ARP protocol HARDWARE identifiers. */
#define ARPHRD_NETROM 0 /* from KA9Q: NET/ROM pseudo */
@@ -108,7 +109,7 @@
#define ARPOP_InREPLY 9 /* InARP reply */
#define ARPOP_NAK 10 /* (ATM)ARP NAK */
-
+#if __UAPI_DEF_ARPREQ
/* ARP ioctl request. */
struct arpreq {
struct sockaddr arp_pa; /* protocol address */
@@ -117,13 +118,15 @@
struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
char arp_dev[16];
};
-
+#endif
+#if __UAPI_DEF_ARPREQ_OLD
struct arpreq_old {
struct sockaddr arp_pa; /* protocol address */
struct sockaddr arp_ha; /* hardware address */
int arp_flags; /* flags */
struct sockaddr arp_netmask; /* netmask (only for proxy arps) */
};
+#endif
/* ARP Flag values. */
#define ATF_COM 0x02 /* completed entry (ha valid) */
@@ -133,7 +136,7 @@
#define ATF_NETMASK 0x20 /* want to use a netmask (only
for proxy entries) */
#define ATF_DONTPUB 0x40 /* don't answer this addresses */
-
+#if __UAPI_DEF_ARPHDR
/*
* This structure defines an ethernet arp header.
*/
@@ -156,6 +159,6 @@
#endif
};
-
+#endif
#endif /* _UAPI_LINUX_IF_ARP_H */
diff -u -r linux-4.9.8-bak/include/uapi/linux/if_ether.h linux-4.9.8/include/uapi/linux/if_ether.h
--- include/uapi/linux/if_ether.h 2018-05-14 23:49:28.882768986 +0200
+++ include/uapi/linux/if_ether.h 2018-05-14 23:50:03.155912977 +0200
@@ -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
@@ -137,12 +138,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 -u -r linux-4.9.8-bak/include/uapi/linux/libc-compat.h linux-4.9.8/include/uapi/linux/libc-compat.h
--- include/uapi/linux/libc-compat.h 2018-05-14 23:49:28.885768999 +0200
+++ include/uapi/linux/libc-compat.h 2018-05-14 23:50:03.156912981 +0200
@@ -51,6 +51,11 @@
/* We have included glibc headers... */
#if defined(__GLIBC__)
+#define __UAPI_DEF_ETHHDR 1
+#define __UAPI_DEF_ARPREQ 1
+#define __UAPI_DEF_ARPREQ_OLD 1
+#define __UAPI_DEF_ARPHDR 1
+
/* Coordinate with glibc net/if.h header. */
#if defined(_NET_IF_H) && defined(__USE_MISC)
@@ -73,7 +78,6 @@
/* Linux headers included first, and we must define everything
* we need. The expectation is that glibc will check the
* __UAPI_DEF_* defines and adjust appropriately. */
-
#define __UAPI_DEF_IF_IFCONF 1
#define __UAPI_DEF_IF_IFMAP 1
#define __UAPI_DEF_IF_IFNAMSIZ 1
@@ -256,6 +260,21 @@
#define __UAPI_DEF_XATTR 1
#endif
+#ifdef _NETINET_IF_ETHER_H /* musl */
+#define __UAPI_DEF_ETHHDR 0
+#else
+#define __UAPI_DEF_ETHHDR 1
+#endif
+
+#ifdef _NET_IF_ARP_H
+#define __UAPI_DEF_ARPREQ 0
+#define __UAPI_DEF_ARPREQ_OLD 0
+#define __UAPI_DEF_ARPHDR 0
+#else
+#define __UAPI_DEF_ARPREQ 1
+#define __UAPI_DEF_ARPREQ_OLD 1
+#define __UAPI_DEF_ARPHDR 1
+#endif
/* If we did not see any headers from any supported C libraries,
* or we are being included in the kernel, then define everything

View File

@ -1,7 +1,7 @@
# Template file for 'kernel-libc-headers'
pkgname=kernel-libc-headers
version=4.9.8
revision=3
revision=4
bootstrap=yes
nostrip=yes
noverifyrdeps=yes