summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--5.10/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch28
-rw-r--r--5.10/00_all_0003-convert-PAGE_SIZE-usage.patch54
-rw-r--r--5.10/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch54
-rw-r--r--5.10/00_all_0005-unifdef-drop-unused-errno.h-include.patch32
-rw-r--r--5.10/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch33
-rw-r--r--5.10/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch43
-rw-r--r--5.10/00_all_0008-uapi-fix-System-V-buf-header-includes.patch28
-rw-r--r--5.10/00_all_0009_glibc-specific-inclusion-of-sysinfo.h-in-kernel.h.patch46
8 files changed, 318 insertions, 0 deletions
diff --git a/5.10/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch b/5.10/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch
new file mode 100644
index 0000000..24a4199
--- /dev/null
+++ b/5.10/00_all_0001-linux-stat.h-remove-__GLIBC__-checks.patch
@@ -0,0 +1,28 @@
+From 1f4498530090a5fe7f6b2c46f2beb8818d7cb27b Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 29 Dec 2008 06:52:59 -0500
+Subject: [PATCH] linux/stat.h: remove __GLIBC__ checks
+
+Only check __KERNEL__ so we don't assume the C library is glibc.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/stat.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/uapi/linux/stat.h b/include/uapi/linux/stat.h
+index 7b35e98d3c58..eb7474652d27 100644
+--- a/include/uapi/linux/stat.h
++++ b/include/uapi/linux/stat.h
+@@ -4,7 +4,7 @@
+
+ #include <linux/types.h>
+
+-#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ < 2)
++#if defined(__KERNEL__)
+
+ #define S_IFMT 00170000
+ #define S_IFSOCK 0140000
+--
+2.16.1
+
diff --git a/5.10/00_all_0003-convert-PAGE_SIZE-usage.patch b/5.10/00_all_0003-convert-PAGE_SIZE-usage.patch
new file mode 100644
index 0000000..fbc2c45
--- /dev/null
+++ b/5.10/00_all_0003-convert-PAGE_SIZE-usage.patch
@@ -0,0 +1,54 @@
+From 25f2bcfa6c8a9e7cee2b92a823495479fe0ccc92 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 13 Feb 2010 03:09:23 -0500
+Subject: [PATCH] convert PAGE_SIZE usage
+
+The size of a page may change at runtime or based on kernel settings, so
+a static value at compile time doesn't work. More importantly, no one
+exports PAGE_SIZE to user space anymore.
+
+URL: http://bugs.gentoo.org/301431
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/binfmts.h | 3 ++-
+ include/uapi/linux/resource.h | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/include/uapi/linux/binfmts.h b/include/uapi/linux/binfmts.h
+index 4abad03a8853..3e98cfc84d1c 100644
+--- a/include/uapi/linux/binfmts.h
++++ b/include/uapi/linux/binfmts.h
+@@ -2,6 +2,7 @@
+ #ifndef _UAPI_LINUX_BINFMTS_H
+ #define _UAPI_LINUX_BINFMTS_H
+
++#include <unistd.h>
+ #include <linux/capability.h>
+
+ struct pt_regs;
+@@ -12,7 +13,7 @@ struct pt_regs;
+ * prevent the kernel from being unduly impacted by misaddressed pointers.
+ * MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer.
+ */
+-#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
++#define MAX_ARG_STRLEN (sysconf(_SC_PAGESIZE) * 32)
+ #define MAX_ARG_STRINGS 0x7FFFFFFF
+
+ /* sizeof(linux_binprm->buf) */
+diff --git a/include/uapi/linux/resource.h b/include/uapi/linux/resource.h
+index cc00fd079631..6f9e76f513b5 100644
+--- a/include/uapi/linux/resource.h
++++ b/include/uapi/linux/resource.h
+@@ -69,7 +69,8 @@ struct rlimit64 {
+ * GPG2 wants 64kB of mlocked memory, to make sure pass phrases
+ * and other sensitive information are never written to disk.
+ */
+-#define MLOCK_LIMIT ((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024)
++/* No one currently defines PAGE_SIZE bigger than 64kB */
++#define MLOCK_LIMIT (64 * 1024)
+
+ /*
+ * Due to binary compatibility, the actual resource numbers
+--
+2.16.1
+
diff --git a/5.10/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch b/5.10/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch
new file mode 100644
index 0000000..625fb6e
--- /dev/null
+++ b/5.10/00_all_0004-asm-generic-fcntl.h-namespace-kernel-file-structs.patch
@@ -0,0 +1,54 @@
+From 091dfce6aed898f4bc4eaca0edab942dd03b8016 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 29 Dec 2008 07:39:14 -0500
+Subject: [PATCH] asm-generic/fcntl.h: namespace kernel file structs
+
+No one should be using these structs, but just in case they are,
+keep them available in the __kernel_ namespace.
+
+Otherwise, trying to include something like:
+ #include <fcntl.h>
+ #include <linux/inotify.h>
+leads to horrible failure.
+
+URL: http://bugs.gentoo.org/244470
+URL: http://bugs.gentoo.org/388633
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/asm-generic/fcntl.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/include/uapi/asm-generic/fcntl.h b/include/uapi/asm-generic/fcntl.h
+index 9dc0bf0c5a6e..dc9b2e467ad9 100644
+--- a/include/uapi/asm-generic/fcntl.h
++++ b/include/uapi/asm-generic/fcntl.h
+@@ -153,7 +153,7 @@
+ #define F_OWNER_PID 1
+ #define F_OWNER_PGRP 2
+
+-struct f_owner_ex {
++struct __kernel_f_owner_ex {
+ int type;
+ __kernel_pid_t pid;
+ };
+@@ -193,7 +193,7 @@ struct f_owner_ex {
+ #define __ARCH_FLOCK_PAD
+ #endif
+
+-struct flock {
++struct __kernel_flock {
+ short l_type;
+ short l_whence;
+ __kernel_off_t l_start;
+@@ -208,7 +208,7 @@ struct flock {
+ #define __ARCH_FLOCK64_PAD
+ #endif
+
+-struct flock64 {
++struct __kernel_flock64 {
+ short l_type;
+ short l_whence;
+ __kernel_loff_t l_start;
+--
+2.16.1
+
diff --git a/5.10/00_all_0005-unifdef-drop-unused-errno.h-include.patch b/5.10/00_all_0005-unifdef-drop-unused-errno.h-include.patch
new file mode 100644
index 0000000..617eb9a
--- /dev/null
+++ b/5.10/00_all_0005-unifdef-drop-unused-errno.h-include.patch
@@ -0,0 +1,32 @@
+From c4d1a109c5c0b1bd27d2b5448a1306a2f6005339 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 6 Dec 2011 17:22:42 -0500
+Subject: [PATCH] unifdef: drop unused errno.h include
+
+This is the only header on my system that ends up requiring kernel
+headers, so if the kernel headers aren't available, we end up being
+unable to install kernel headers :).
+
+Since this file doesn't actually use anything from errno.h, drop
+the include so it at least makes us a bit more robust on glibc.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ scripts/unifdef.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/scripts/unifdef.c b/scripts/unifdef.c
+index 7493c0ee51cc..c5dfae538b08 100644
+--- a/scripts/unifdef.c
++++ b/scripts/unifdef.c
+@@ -48,7 +48,6 @@
+
+ #include <ctype.h>
+ #include <err.h>
+-#include <errno.h>
+ #include <stdarg.h>
+ #include <stdbool.h>
+ #include <stdio.h>
+--
+2.16.1
+
diff --git a/5.10/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch b/5.10/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch
new file mode 100644
index 0000000..c4af343
--- /dev/null
+++ b/5.10/00_all_0006-x86-do-not-build-relocs-tool-when-installing-headers.patch
@@ -0,0 +1,33 @@
+From 57875de37c5375ea95e1e949ec7c741d0038d3a1 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 15 Nov 2014 03:37:38 -0500
+Subject: [PATCH] x86: do not build relocs tool when installing headers
+
+This isn't needed to install headers, so don't bother building it.
+Otherwise we run into a chicken/egg issue where we need the kernel
+headers in order to install the kernel headers. It's also a waste
+of time.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ arch/x86/Makefile | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/x86/Makefile b/arch/x86/Makefile
+index 60135cbd905c..9b15b2daa77f 100644
+--- a/arch/x86/Makefile
++++ b/arch/x86/Makefile
+@@ -249,8 +249,10 @@ ifneq ($(RETPOLINE_CFLAGS),)
+ endif
+ endif
+
++ifneq ($(filter-out headers_install,$(MAKECMDGOALS)),)
+ archscripts: scripts_basic
+ $(Q)$(MAKE) $(build)=arch/x86/tools relocs
++endif
+
+ ###
+ # Syscall table generation
+--
+2.16.1
+
diff --git a/5.10/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch b/5.10/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
new file mode 100644
index 0000000..1fed99d
--- /dev/null
+++ b/5.10/00_all_0007-netlink-drop-int-cast-on-length-arg-in-NLMSG_OK.patch
@@ -0,0 +1,43 @@
+From cb87a9562cca933c97a482f09a36542b876608e8 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Thu, 5 Mar 2015 00:26:58 -0500
+Subject: [PATCH] netlink: drop (int) cast on length arg in NLMSG_OK
+
+The NLMSG_OK macro compares three things:
+ - the len arg from the user
+ - a size_t: sizeof(struct nlmsghdr)
+ - an int: sizeof(struct nlmsghdr) casted
+ - an u32: the nlmsghdr->nlmsg_len member
+
+When building with -Wsign-compare, this macro triggers a signed compare
+warning. This is because it compares len to an int, and then compares
+it to a u32. If len is signed, we get a warning due to the last test.
+If len is unsigned, we get a warning due to the first test. Like in
+strace:
+socketutils.c:145:8: warning: comparison between signed and unsigned
+ integer expressions [-Wsign-compare]
+
+Lets drop the int cast on the first sizeof. This way, once the user
+casts len to an unsigned value, everything shakes out correctly.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ include/uapi/linux/netlink.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h
+index 776bc92e9118..d0c4df5fa670 100644
+--- a/include/uapi/linux/netlink.h
++++ b/include/uapi/linux/netlink.h
+@@ -94,7 +94,7 @@ struct nlmsghdr {
+ #define NLMSG_DATA(nlh) ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
+ #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
+ (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
+-#define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
++#define NLMSG_OK(nlh,len) ((len) >= sizeof(struct nlmsghdr) && \
+ (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
+ (nlh)->nlmsg_len <= (len))
+ #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
+--
+2.16.1
+
diff --git a/5.10/00_all_0008-uapi-fix-System-V-buf-header-includes.patch b/5.10/00_all_0008-uapi-fix-System-V-buf-header-includes.patch
new file mode 100644
index 0000000..987a98d
--- /dev/null
+++ b/5.10/00_all_0008-uapi-fix-System-V-buf-header-includes.patch
@@ -0,0 +1,28 @@
+From beac664726b0b5b5c833aaf6576ca583534406ba Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 2 Nov 2015 13:30:12 -0500
+Subject: [PATCH] uapi: fix System V buf header includes
+
+These headers rely on kernel types but don't include the other headers
+that define them. So when you try to include them directly, you often
+hit build failures due to unknown types.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+
+diff --git a/include/uapi/asm-generic/shmbuf.h b/include/uapi/asm-generic/shmbuf.h
+index 2b6c3bb97f97..a0171147d796 100644
+--- a/include/uapi/asm-generic/shmbuf.h
++++ b/include/uapi/asm-generic/shmbuf.h
+@@ -2,7 +2,9 @@
+ #ifndef __ASM_GENERIC_SHMBUF_H
+ #define __ASM_GENERIC_SHMBUF_H
+
++
+ #include <asm/bitsperlong.h>
++#include <asm/ipcbuf.h>
+
+ /*
+ * The shmid64_ds structure for x86 architecture.
+--
+2.16.1
+
diff --git a/5.10/00_all_0009_glibc-specific-inclusion-of-sysinfo.h-in-kernel.h.patch b/5.10/00_all_0009_glibc-specific-inclusion-of-sysinfo.h-in-kernel.h.patch
new file mode 100644
index 0000000..df075dc
--- /dev/null
+++ b/5.10/00_all_0009_glibc-specific-inclusion-of-sysinfo.h-in-kernel.h.patch
@@ -0,0 +1,46 @@
+https://lore.kernel.org/patchwork/patch/449607/
+https://gitweb.gentoo.org/proj/musl.git/tree/sys-kernel/linux-headers/files/libc-5.1-remove-sysinfo_h-from-kernel_h.patch
+
+Date: Fri, 14 Mar 2014 17:14:10 +0100
+From: David Heidelberger <david.heidelberger@ixit.cz>
+To: linux-kernel@vger.kernel.org
+Cc: maillist-linux@barfooze.de, torvalds@linux-foundation.org
+Subject: [PATCH 1/4] glibc specific inclusion of sysinfo.h in kernel.h
+Message-ID: <130a9e0c237bae10e631a5ae52c5e2c8@ixit.cz>
+User-Agent: Roundcube Webmail/0.9.5
+Sender: linux-kernel-owner@vger.kernel.org
+List-ID: <linux-kernel.vger.kernel.org>
+X-Mailing-List: linux-kernel@vger.kernel.org
+
+including sysinfo.h from kernel.h makes no sense whatsoever,
+but removing it breaks glibc's userspace header,
+which includes kernel.h instead of sysinfo.h from their sys/sysinfo.h.
+this seems to be a historical mistake.
+on musl, including any header that uses kernel.h directly or indirectly
+plus sys/sysinfo.h will produce a compile error due to redefinition of
+struct sysinfo.h.
+so for now, only include it on glibc in order not to break their
+headers.
+
+Signed-off-by: John Spencer <maillist-linux@barfooze.de>
+Signed-off-by: David Heidelberger <david.heidelberger@ixit.cz>
+---
+ include/uapi/linux/kernel.h | 2 ++
+ 1 file changed, 2 insertion(+)
+
+ */
+
+diff --git a/include/uapi/linux/kernel.h b/include/uapi/linux/kernel.h
+index 321e399..8c45eeb 100644
+--- a/include/uapi/linux/kernel.h
++++ b/include/uapi/linux/kernel.h
+@@ -1,7 +1,9 @@
+ #ifndef _UAPI_LINUX_KERNEL_H
+ #define _UAPI_LINUX_KERNEL_H
+
++#ifdef __GLIBC__
+ #include <linux/sysinfo.h>
++#endif
+
+ /*
+ * 'kernel.h' contains some often-used function prototypes etc