mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-09-18 16:35:29 +00:00
restructure kernel builds into directories
Signed-off-by: Avi Deitcher <avi@deitcher.net>
This commit is contained in:
5197
kernel/5.11.x/config-aarch64
Normal file
5197
kernel/5.11.x/config-aarch64
Normal file
File diff suppressed because it is too large
Load Diff
4824
kernel/5.11.x/config-x86_64
Normal file
4824
kernel/5.11.x/config-x86_64
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,55 @@
|
||||
From 3635a8090f2271103511b68a5853b1d7e0a925b5 Mon Sep 17 00:00:00 2001
|
||||
From: Matt Redfearn <matt.redfearn@mips.com>
|
||||
Date: Wed, 3 Jan 2018 09:57:30 +0000
|
||||
Subject: [PATCH] include/uapi/linux/swab: Fix potentially missing
|
||||
__always_inline
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Commit bc27fb68aaad ("include/uapi/linux/byteorder, swab: force inlining
|
||||
of some byteswap operations") added __always_inline to swab functions
|
||||
and commit 283d75737837 ("uapi/linux/stddef.h: Provide __always_inline to
|
||||
userspace headers") added a definition of __always_inline for use in
|
||||
exported headers when the kernel's compiler.h is not available.
|
||||
|
||||
However, since swab.h does not include stddef.h, if the header soup does
|
||||
not indirectly include it, the definition of __always_inline is missing,
|
||||
resulting in a compilation failure, which was observed compiling the
|
||||
perf tool using exported headers containing this commit:
|
||||
|
||||
In file included from /usr/include/linux/byteorder/little_endian.h:12:0,
|
||||
from /usr/include/asm/byteorder.h:14,
|
||||
from tools/include/uapi/linux/perf_event.h:20,
|
||||
from perf.h:8,
|
||||
from builtin-bench.c:18:
|
||||
/usr/include/linux/swab.h:160:8: error: unknown type name ‘__always_inline’
|
||||
static __always_inline __u16 __swab16p(const __u16 *p)
|
||||
|
||||
Fix this by replacing the inclusion of linux/compiler.h with
|
||||
linux/stddef.h to ensure that we pick up that definition if required,
|
||||
without relying on it's indirect inclusion. compiler.h is then included
|
||||
indirectly, via stddef.h.
|
||||
|
||||
Fixes: 283d75737837 ("uapi/linux/stddef.h: Provide __always_inline to userspace headers")
|
||||
Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
|
||||
---
|
||||
include/uapi/linux/swab.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
|
||||
index 7272f85d6d6a..3736f2fe1541 100644
|
||||
--- a/include/uapi/linux/swab.h
|
||||
+++ b/include/uapi/linux/swab.h
|
||||
@@ -3,7 +3,7 @@
|
||||
#define _UAPI_LINUX_SWAB_H
|
||||
|
||||
#include <linux/types.h>
|
||||
-#include <linux/compiler.h>
|
||||
+#include <linux/stddef.h>
|
||||
#include <asm/bitsperlong.h>
|
||||
#include <asm/swab.h>
|
||||
|
||||
--
|
||||
2.26.2
|
||||
|
58
kernel/5.11.x/patches/0002-gcc12-subcmd-build-issues.patch
Normal file
58
kernel/5.11.x/patches/0002-gcc12-subcmd-build-issues.patch
Normal file
@@ -0,0 +1,58 @@
|
||||
From: Justin M. Forbes @ 2022-01-29 1:02 UTC (permalink / raw)
|
||||
To: Justin M. Forbes, linux-kernel; +Cc: jmforbes, Jakub Jelinek
|
||||
|
||||
While the current code builds fine with gcc 11, it does not with gcc 12,
|
||||
resulting in:
|
||||
|
||||
In file included from help.c:12:
|
||||
In function 'xrealloc',
|
||||
inlined from 'add_cmdname' at help.c:24:2:
|
||||
subcmd-util.h:56:23: error: pointer may be used after 'realloc' [-Werror=use-after-free]
|
||||
56 | ret = realloc(ptr, size);
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
subcmd-util.h:52:21: note: call to 'realloc' here
|
||||
52 | void *ret = realloc(ptr, size);
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
subcmd-util.h:58:31: error: pointer may be used after 'realloc' [-Werror=use-after-free]
|
||||
58 | ret = realloc(ptr, 1);
|
||||
| ^~~~~~~~~~~~~~~
|
||||
subcmd-util.h:52:21: note: call to 'realloc' here
|
||||
52 | void *ret = realloc(ptr, size);
|
||||
| ^~~~~~~~~~~~~~~~~~
|
||||
|
||||
The was mentioned in upstream gcc bug
|
||||
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104069 where it was
|
||||
determined that gcc was correct and the kernel needed to change. This
|
||||
fixes that use-after-free and makes things build again.
|
||||
|
||||
Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
|
||||
Cc: Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
---
|
||||
tools/lib/subcmd/subcmd-util.h | 9 ++++-----
|
||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tools/lib/subcmd/subcmd-util.h b/tools/lib/subcmd/subcmd-util.h
|
||||
index 794a375dad36..7009fc176636 100644
|
||||
--- a/tools/lib/subcmd/subcmd-util.h
|
||||
+++ b/tools/lib/subcmd/subcmd-util.h
|
||||
@@ -49,13 +49,12 @@ static NORETURN inline void die(const char *err, ...)
|
||||
|
||||
static inline void *xrealloc(void *ptr, size_t size)
|
||||
{
|
||||
- void *ret = realloc(ptr, size);
|
||||
- if (!ret && !size)
|
||||
- ret = realloc(ptr, 1);
|
||||
+ void *ret;
|
||||
+ if (!size)
|
||||
+ size = 1;
|
||||
+ ret = realloc(ptr, size);
|
||||
if (!ret) {
|
||||
ret = realloc(ptr, size);
|
||||
- if (!ret && !size)
|
||||
- ret = realloc(ptr, 1);
|
||||
if (!ret)
|
||||
die("Out of memory, realloc failed");
|
||||
}
|
||||
--
|
||||
2.34.1
|
Reference in New Issue
Block a user