aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
authorJustin Stitt <justinstitt@google.com>2026-03-30 17:09:08 -0700
committerNicolas Schier <nsc@kernel.org>2026-04-07 21:48:44 +0200
commit404927758daac5ec4594071e033c1fa6ee9ca9b6 (patch)
tree3fc4165298f07310e3ca852367564148c160d893 /Makefile
parentd13a089d823e6b9a5a63728c4d1617ba1aca2740 (diff)
downloadlinux-next-history-404927758daac5ec4594071e033c1fa6ee9ca9b6.tar.gz
kbuild: expand inlining hints with -fdiagnostics-show-inlining-chain
Clang recently added -fdiagnostics-show-inlining-chain [1] to improve the visibility of inlining chains in diagnostics. This is particularly useful for CONFIG_FORTIFY_SOURCE where detections can happen deep in inlined functions. Add this flag to KBUILD_CFLAGS under a cc-option so it is enabled if the compiler supports it. Note that GCC does not have an equivalent flag as it supports a similar diagnostic structure unconditionally. Link: https://github.com/llvm/llvm-project/pull/174892 [1] Link: https://github.com/ClangBuiltLinux/linux/issues/1571 Signed-off-by: Justin Stitt <justinstitt@google.com> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Reviewed-by: Kees Cook <kees@kernel.org> Link: https://patch.msgid.link/20260330-kbuild-show-inlining-v2-1-c0c481a4ea7b@google.com Signed-off-by: Nicolas Schier <nsc@kernel.org>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile4
1 files changed, 4 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index a8d8ed711f9b3..c9d6f84ff4891 100644
--- a/Makefile
+++ b/Makefile
@@ -987,6 +987,10 @@ KBUILD_CFLAGS += $(call cc-option, -fno-stack-clash-protection)
# Get details on warnings generated due to GCC value tracking.
KBUILD_CFLAGS += $(call cc-option, -fdiagnostics-show-context=2)
+# Show inlining notes for __attribute__((warning/error)) call chains.
+# GCC supports this unconditionally while Clang 23+ provides a flag.
+KBUILD_CFLAGS += $(call cc-option, -fdiagnostics-show-inlining-chain)
+
# Clear used registers at func exit (to reduce data lifetime and ROP gadgets).
ifdef CONFIG_ZERO_CALL_USED_REGS
KBUILD_CFLAGS += -fzero-call-used-regs=used-gpr