Commit 36799069 authored by Josh Poimboeuf's avatar Josh Poimboeuf Committed by Peter Zijlstra
Browse files

objtool: Add CONFIG_OBJTOOL_WERROR



Objtool warnings can be indicative of crashes, broken live patching, or
even boot failures.  Ignoring them is not recommended.

Add CONFIG_OBJTOOL_WERROR to upgrade objtool warnings to errors by
enabling the objtool --Werror option.  Also set --backtrace to print the
branches leading up to the warning, which can help considerably when
debugging certain warnings.

To avoid breaking bots too badly for now, make it the default for real
world builds only (!COMPILE_TEST).

Co-developed-by: default avatarBrendan Jackman <jackmanb@google.com>
Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/3e7c109313ff15da6c80788965cc7450115b0196.1741975349.git.jpoimboe@kernel.org
parent aa8b3e64
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -545,6 +545,17 @@ config FRAME_POINTER
config OBJTOOL
	bool

config OBJTOOL_WERROR
	bool "Upgrade objtool warnings to errors"
	depends on OBJTOOL && !COMPILE_TEST
	help
	  Fail the build on objtool warnings.

	  Objtool warnings can indicate kernel instability, including boot
	  failures.  This option is highly recommended.

	  If unsure, say Y.

config STACK_VALIDATION
	bool "Compile-time stack metadata validation"
	depends on HAVE_STACK_VALIDATION && UNWINDER_FRAME_POINTER
+1 −0
Original line number Diff line number Diff line
@@ -277,6 +277,7 @@ objtool-args-$(CONFIG_HAVE_STATIC_CALL_INLINE) += --static-call
objtool-args-$(CONFIG_HAVE_UACCESS_VALIDATION)		+= --uaccess
objtool-args-$(CONFIG_GCOV_KERNEL)			+= --no-unreachable
objtool-args-$(CONFIG_PREFIX_SYMBOLS)			+= --prefix=$(CONFIG_FUNCTION_PADDING_BYTES)
objtool-args-$(CONFIG_OBJTOOL_WERROR)			+= --Werror --backtrace

objtool-args = $(objtool-args-y)					\
	$(if $(delay-objtool), --link)					\