release 6.12.4 (preliminary)
This commit is contained in:
76
debian/patches/patchset-xanmod/xanmod/0001-kbuild-Remove-GCC-minimal-function-alignment.patch
vendored
Normal file
76
debian/patches/patchset-xanmod/xanmod/0001-kbuild-Remove-GCC-minimal-function-alignment.patch
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
From 67e174927705e71b0d254ab6fab5af40193376a4 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Frade <kernel@xanmod.org>
|
||||
Date: Sat, 31 Aug 2024 16:57:41 +0000
|
||||
Subject: [PATCH 03/18] kbuild: Remove GCC minimal function alignment
|
||||
|
||||
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
|
||||
---
|
||||
Makefile | 7 -------
|
||||
arch/Kconfig | 12 ------------
|
||||
include/linux/compiler_types.h | 10 +++++-----
|
||||
3 files changed, 5 insertions(+), 24 deletions(-)
|
||||
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -996,15 +996,8 @@ export CC_FLAGS_FPU
|
||||
export CC_FLAGS_NO_FPU
|
||||
|
||||
ifneq ($(CONFIG_FUNCTION_ALIGNMENT),0)
|
||||
-# Set the minimal function alignment. Use the newer GCC option
|
||||
-# -fmin-function-alignment if it is available, or fall back to -falign-funtions.
|
||||
-# See also CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT.
|
||||
-ifdef CONFIG_CC_HAS_MIN_FUNCTION_ALIGNMENT
|
||||
-KBUILD_CFLAGS += -fmin-function-alignment=$(CONFIG_FUNCTION_ALIGNMENT)
|
||||
-else
|
||||
KBUILD_CFLAGS += -falign-functions=$(CONFIG_FUNCTION_ALIGNMENT)
|
||||
endif
|
||||
-endif
|
||||
|
||||
# arch Makefile may override CC so keep this after arch Makefile is included
|
||||
NOSTDINC_FLAGS += -nostdinc
|
||||
--- a/arch/Kconfig
|
||||
+++ b/arch/Kconfig
|
||||
@@ -1667,18 +1667,6 @@ config FUNCTION_ALIGNMENT
|
||||
default 4 if FUNCTION_ALIGNMENT_4B
|
||||
default 0
|
||||
|
||||
-config CC_HAS_MIN_FUNCTION_ALIGNMENT
|
||||
- # Detect availability of the GCC option -fmin-function-alignment which
|
||||
- # guarantees minimal alignment for all functions, unlike
|
||||
- # -falign-functions which the compiler ignores for cold functions.
|
||||
- def_bool $(cc-option, -fmin-function-alignment=8)
|
||||
-
|
||||
-config CC_HAS_SANE_FUNCTION_ALIGNMENT
|
||||
- # Set if the guaranteed alignment with -fmin-function-alignment is
|
||||
- # available or extra care is required in the kernel. Clang provides
|
||||
- # strict alignment always, even with -falign-functions.
|
||||
- def_bool CC_HAS_MIN_FUNCTION_ALIGNMENT || CC_IS_CLANG
|
||||
-
|
||||
config ARCH_NEED_CMPXCHG_1_EMU
|
||||
bool
|
||||
|
||||
--- a/include/linux/compiler_types.h
|
||||
+++ b/include/linux/compiler_types.h
|
||||
@@ -99,17 +99,17 @@ static inline void __chk_io_ptr(const vo
|
||||
* gcc: https://gcc.gnu.org/onlinedocs/gcc/Label-Attributes.html#index-cold-label-attribute
|
||||
*
|
||||
* When -falign-functions=N is in use, we must avoid the cold attribute as
|
||||
- * GCC drops the alignment for cold functions. Worse, GCC can implicitly mark
|
||||
- * callees of cold functions as cold themselves, so it's not sufficient to add
|
||||
- * __function_aligned here as that will not ensure that callees are correctly
|
||||
- * aligned.
|
||||
+ * contemporary versions of GCC drop the alignment for cold functions. Worse,
|
||||
+ * GCC can implicitly mark callees of cold functions as cold themselves, so
|
||||
+ * it's not sufficient to add __function_aligned here as that will not ensure
|
||||
+ * that callees are correctly aligned.
|
||||
*
|
||||
* See:
|
||||
*
|
||||
* https://lore.kernel.org/lkml/Y77%2FqVgvaJidFpYt@FVFF77S0Q05N
|
||||
* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88345#c9
|
||||
*/
|
||||
-#if defined(CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT) || (CONFIG_FUNCTION_ALIGNMENT == 0)
|
||||
+#if !defined(CONFIG_CC_IS_GCC) || (CONFIG_FUNCTION_ALIGNMENT == 0)
|
||||
#define __cold __attribute__((__cold__))
|
||||
#else
|
||||
#define __cold
|
Reference in New Issue
Block a user