mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge tag 'hardening-v5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull compiler hardening updates from Kees Cook: "These are various compiler-related hardening feature updates. Notable is the addition of an explicit limited rationale for, and deprecation schedule of, gcc-plugins. gcc-plugins: - remove support for GCC 4.9 and older (Ard Biesheuvel) - remove duplicate include in gcc-common.h (Ye Guojin) - Explicitly document purpose and deprecation schedule (Kees Cook) - Remove cyc_complexity (Kees Cook) instrumentation: - Avoid harmless Clang option under CONFIG_INIT_STACK_ALL_ZERO (Kees Cook) Clang LTO: - kallsyms: strip LTO suffixes from static functions (Nick Desaulniers)" * tag 'hardening-v5.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: gcc-plugins: remove duplicate include in gcc-common.h gcc-plugins: Remove cyc_complexity gcc-plugins: Explicitly document purpose and deprecation schedule kallsyms: strip LTO suffixes from static functions gcc-plugins: remove support for GCC 4.9 and older hardening: Avoid harmless Clang option under CONFIG_INIT_STACK_ALL_ZERO
This commit is contained in:
commit
f594e28d80
13 files changed
+77
-322
No files matched your search
@@ -23,13 +23,16 @@ config CC_HAS_AUTO_VAR_INIT_PATTERN
|
||||
def_bool $(cc-option,-ftrivial-auto-var-init=pattern)
|
||||
|
||||
config CC_HAS_AUTO_VAR_INIT_ZERO
|
||||
# GCC ignores the -enable flag, so we can test for the feature with
|
||||
# a single invocation using the flag, but drop it as appropriate in
|
||||
# the Makefile, depending on the presence of Clang.
|
||||
def_bool $(cc-option,-ftrivial-auto-var-init=zero -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang)
|
||||
|
||||
choice
|
||||
prompt "Initialize kernel stack variables at function entry"
|
||||
default GCC_PLUGIN_STRUCTLEAK_BYREF_ALL if COMPILE_TEST && GCC_PLUGINS
|
||||
default INIT_STACK_ALL_PATTERN if COMPILE_TEST && CC_HAS_AUTO_VAR_INIT_PATTERN
|
||||
default INIT_STACK_ALL_ZERO if CC_HAS_AUTO_VAR_INIT_PATTERN
|
||||
default INIT_STACK_ALL_ZERO if CC_HAS_AUTO_VAR_INIT_ZERO
|
||||
default INIT_STACK_NONE
|
||||
help
|
||||
This option enables initialization of stack variables at
|
||||
@@ -53,7 +56,8 @@ choice
|
||||
|
||||
config GCC_PLUGIN_STRUCTLEAK_USER
|
||||
bool "zero-init structs marked for userspace (weak)"
|
||||
depends on GCC_PLUGINS
|
||||
# Plugin can be removed once the kernel only supports GCC 12+
|
||||
depends on GCC_PLUGINS && !CC_HAS_AUTO_VAR_INIT_ZERO
|
||||
select GCC_PLUGIN_STRUCTLEAK
|
||||
help
|
||||
Zero-initialize any structures on the stack containing
|
||||
@@ -64,7 +68,8 @@ choice
|
||||
|
||||
config GCC_PLUGIN_STRUCTLEAK_BYREF
|
||||
bool "zero-init structs passed by reference (strong)"
|
||||
depends on GCC_PLUGINS
|
||||
# Plugin can be removed once the kernel only supports GCC 12+
|
||||
depends on GCC_PLUGINS && !CC_HAS_AUTO_VAR_INIT_ZERO
|
||||
depends on !(KASAN && KASAN_STACK)
|
||||
select GCC_PLUGIN_STRUCTLEAK
|
||||
help
|
||||
@@ -82,7 +87,8 @@ choice
|
||||
|
||||
config GCC_PLUGIN_STRUCTLEAK_BYREF_ALL
|
||||
bool "zero-init everything passed by reference (very strong)"
|
||||
depends on GCC_PLUGINS
|
||||
# Plugin can be removed once the kernel only supports GCC 12+
|
||||
depends on GCC_PLUGINS && !CC_HAS_AUTO_VAR_INIT_ZERO
|
||||
depends on !(KASAN && KASAN_STACK)
|
||||
select GCC_PLUGIN_STRUCTLEAK
|
||||
help
|
||||
|
||||
Reference in new issue
Block a user