author: Linus Torvalds <torvalds@linux-foundation.org> 2020-08-04 13:38:35 -0700
committer: Linus Torvalds <torvalds@linux-foundation.org> 2020-08-04 13:38:35 -0700
commit: 5b5d3be5d690a94be390ccf3e4db8dcb7409bf75
parent: 3e4a12a1bafafecaf1631f02099e82b424967718
Commit Summary:
Diffstat:
1 file changed, 11 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index aef9ca61caf0..09c1bd1fcb64 100644
--- a/Makefile
+++ b/Makefile
@@ -803,11 +803,20 @@ KBUILD_CFLAGS += -fomit-frame-pointer
endif
endif
-# Initialize all stack variables with a pattern, if desired.
-ifdef CONFIG_INIT_STACK_ALL
+# Initialize all stack variables with a 0xAA pattern.
+ifdef CONFIG_INIT_STACK_ALL_PATTERN
KBUILD_CFLAGS += -ftrivial-auto-var-init=pattern
endif
+# Initialize all stack variables with a zero value.
+ifdef CONFIG_INIT_STACK_ALL_ZERO
+# Future support for zero initialization is still being debated, see
+# https://bugs.llvm.org/show_bug.cgi?id=45497. These flags are subject to being
+# renamed or dropped.
+KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
+KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
+endif
+
DEBUG_CFLAGS := $(call cc-option, -fno-var-tracking-assignments)
ifdef CONFIG_DEBUG_INFO