From 19b18f955ad20182755902a3d76e788349e9157c Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Mon, 11 Aug 2014 21:23:55 +0200 Subject: [PATCH] musl: remove linux-header patches $ tar -jtf download/mirror/l/linux-3.14.tar.bz2 | grep libc-compat.h linux-3.14/include/uapi/linux/libc-compat.h --- .../linux-header/libc-compat-if_ether.patch | 42 ------ base/musl/pkg/linux-header/libc-compat.patch | 135 ------------------ 2 files changed, 177 deletions(-) delete mode 100644 base/musl/pkg/linux-header/libc-compat-if_ether.patch delete mode 100644 base/musl/pkg/linux-header/libc-compat.patch diff --git a/base/musl/pkg/linux-header/libc-compat-if_ether.patch b/base/musl/pkg/linux-header/libc-compat-if_ether.patch deleted file mode 100644 index fac79ea0b..000000000 --- a/base/musl/pkg/linux-header/libc-compat-if_ether.patch +++ /dev/null @@ -1,42 +0,0 @@ -# --- SDE-COPYRIGHT-NOTE-BEGIN --- -# This copyright note is auto-generated by ./scripts/Create-CopyPatch. -# -# Filename: package/.../musl/pkg/linux-header/libc-compat-if_ether.patch -# Copyright (C) 2014 The OpenSDE Project -# -# More information can be found in the files COPYING and README. -# -# This patch file is dual-licensed. It is available under the license the -# patched project is licensed under, as long as it is an OpenSource license -# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms -# of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# --- SDE-COPYRIGHT-NOTE-END --- - -Avoid redefinition errors for 'struct ethhdr' - ---- 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 -@@ -130,11 +131,13 @@ - * 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/base/musl/pkg/linux-header/libc-compat.patch b/base/musl/pkg/linux-header/libc-compat.patch deleted file mode 100644 index c0c1fe338..000000000 --- a/base/musl/pkg/linux-header/libc-compat.patch +++ /dev/null @@ -1,135 +0,0 @@ -# --- SDE-COPYRIGHT-NOTE-BEGIN --- -# This copyright note is auto-generated by ./scripts/Create-CopyPatch. -# -# Filename: package/.../musl/pkg/linux-header/libc-compat.patch -# Copyright (C) 2014 The OpenSDE Project -# -# More information can be found in the files COPYING and README. -# -# This patch file is dual-licensed. It is available under the license the -# patched project is licensed under, as long as it is an OpenSource license -# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms -# of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. -# --- SDE-COPYRIGHT-NOTE-END --- - -Add a compatibility interface for userspace libc header -coordination. - -Origin: kernel-headers provided by sabotage-linux - -https://github.com/sabotage-linux/kernel-headers/blob/master/generic/include/linux/libc-compat.h - ---- /dev/null -+++ b/include/uapi/linux/libc-compat.h -@@ -0,0 +1,100 @@ -+/* -+ * Compatibility interface for userspace libc header coordination: -+ * -+ * Define compatibility macros that are used to control the inclusion or -+ * exclusion of UAPI structures and definitions in coordination with another -+ * userspace C library. -+ * -+ * This header is intended to solve the problem of UAPI definitions that -+ * conflict with userspace definitions. If a UAPI header has such conflicting -+ * definitions then the solution is as follows: -+ * -+ * * Synchronize the UAPI header and the libc headers so either one can be -+ * used and such that the ABI is preserved. If this is not possible then -+ * no simple compatibility interface exists (you need to write translating -+ * wrappers and rename things) and you can't use this interface. -+ * -+ * Then follow this process: -+ * -+ * (a) Include libc-compat.h in the UAPI header. -+ * e.g. #include -+ * This include must be as early as possible. -+ * -+ * (b) In libc-compat.h add enough code to detect that the comflicting -+ * userspace libc header has been included first. -+ * -+ * (c) If the userspace libc header has been included first define a set of -+ * guard macros of the form __UAPI_DEF_FOO and set their values to 1, else -+ * set their values to 0. -+ * -+ * (d) Back in the UAPI header with the conflicting definitions, guard the -+ * definitions with: -+ * #if __UAPI_DEF_FOO -+ * ... -+ * #endif -+ * -+ * This fixes the situation where the linux headers are included *after* the -+ * libc headers. To fix the problem with the inclusion in the other order the -+ * userspace libc headers must be fixed like this: -+ * -+ * * For all definitions that conflict with kernel definitions wrap those -+ * defines in the following: -+ * #if !__UAPI_DEF_FOO -+ * ... -+ * #endif -+ * -+ * This prevents the redefinition of a construct already defined by the kernel. -+ */ -+#ifndef _LIBC_COMPAT_H -+#define _LIBC_COMPAT_H -+ -+#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) -+ -+/* GLIBC headers included first so don't define anything -+ * that would already be defined. */ -+#define __UAPI_DEF_IN6_ADDR 0 -+#define __UAPI_DEF_IN6_ADDR_ALT 0 -+#define __UAPI_DEF_SOCKADDR_IN6 0 -+#define __UAPI_DEF_IPV6_MREQ 0 -+#define __UAPI_DEF_IPPROTO_V6 0 -+ -+#else /* defined(_NETINET_IN_H) */ -+ -+/* Linux headers included first, and we must define everything -+ * we need. The expectation is that the libc will check the -+ * __UAPI_DEF_* defines and adjust appropriately. */ -+#define __UAPI_DEF_IN6_ADDR 1 -+/* We unconditionally define the in6_addr macros and libc must -+ * coordinate. */ -+#define __UAPI_DEF_IN6_ADDR_ALT 1 -+#define __UAPI_DEF_SOCKADDR_IN6 1 -+#define __UAPI_DEF_IPV6_MREQ 1 -+#define __UAPI_DEF_IPPROTO_V6 1 -+ -+#endif /* _NETINET_IN_H */ -+ -+ -+/* If we did not see any headers from any supported C libraries, -+ * or we are being included in the kernel, then define everything -+ * that we need. */ -+#else /* __KERNEL__ */ -+ -+/* Definitions for in6.h */ -+#define __UAPI_DEF_IN6_ADDR 1 -+#define __UAPI_DEF_IN6_ADDR_ALT 1 -+#define __UAPI_DEF_SOCKADDR_IN6 1 -+#define __UAPI_DEF_IPV6_MREQ 1 -+#define __UAPI_DEF_IPPROTO_V6 1 -+ -+#endif /* __KERNEL__ */ -+ -+#endif /* _LIBC_COMPAT_H */ ---- a/include/uapi/linux/Kbuild -+++ b/include/uapi/linux/Kbuild -@@ -422,3 +422,6 @@ - header-y += xattr.h - header-y += xfrm.h - header-y += hw_breakpoint.h -+ -+# install compatibility interface for userspace libc header coordination -+header-y += libc-compat.h