From nobody Wed Dec 17 21:02:30 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E194D20DD45 for ; Fri, 14 Mar 2025 19:29:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741980574; cv=none; b=OBmq+uy5JaoqrSlzLxVCaAHRJd370KPIaw/JL6PQC3Sr7YxRA1eXQ4/R2t87F8vWYlNFiRwwy52v077keDr58kj9CEYTkrT+osO9vU1t4u8kB+5t0FNx4DCus0rV0CaTHomSMcnj2xph3XqM7GuPkZLWrzrBJP6nxiEDiy6bItE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741980574; c=relaxed/simple; bh=MuEUQXRk4MGKZ+To5bORRPLRoNHakjJEWiddaL41TJc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Bm9SS2FpwSo8enYHdVvu/qgmTGs37jeNTsYLc4IRD59KO33LAqeLxMRQyQJV3aKm7CPl2ESg3LvmpKkLF/arqNWmTvyyjHjIMm6qjVQAas8baGsuAe5Wvbl0jRBsVTPIEQ0AccuNm2CIJoyDWKGt+zNzRVE/o8zrVw5dBp8yajI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cuZYKOeF; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cuZYKOeF" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8529FC4CEEC; Fri, 14 Mar 2025 19:29:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741980573; bh=MuEUQXRk4MGKZ+To5bORRPLRoNHakjJEWiddaL41TJc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cuZYKOeFT39LOsL9h+w7Ag+3V8hADSWC1DjT8PERQwD+q2+ykQJ+qVV2WZd23XQiM 1EipFpDf2edZzLvtEsSiplQlo5Lnge7qNAKMfDdHXCbKerueX84yynK8aG3MtMGzX7 qhepZGzLKwKjxve0tXT9+DiR+JOaIkKk3WhA652CfSjOb4NYV8Sw2gkjDLywbMXxoS Hp8MQF10SbSBaDNIjSVVLs3coiQ+vIHzKnKnnFnUKseVg46DzIXCB242tH30dNIoTF vqmYouOrNNFl2mLLbLuyK/3jXwg4lbpttdFGn+qGukYiYokHMS1DZQ3ZAi3vOya3df wXQ30p37vM7IQ== From: Josh Poimboeuf To: x86@kernel.org Cc: linux-kernel@vger.kernel.org, Peter Zijlstra , Brendan Jackman , Nathan Chancellor Subject: [PATCH 13/13] objtool: Add CONFIG_OBJTOOL_WERROR Date: Fri, 14 Mar 2025 12:29:11 -0700 Message-ID: <3e7c109313ff15da6c80788965cc7450115b0196.1741975349.git.jpoimboe@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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: Brendan Jackman Signed-off-by: Josh Poimboeuf Reviewed-by: Miroslav Benes --- lib/Kconfig.debug | 12 ++++++++++++ scripts/Makefile.lib | 1 + 2 files changed, 13 insertions(+) diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 35796c290ca3..bbfb9d575f97 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -545,6 +545,18 @@ config FRAME_POINTER config OBJTOOL bool =20 +config OBJTOOL_WERROR + bool "Upgrade objtool warnings to errors" + default y + 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 diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index cad20f0e66ee..99e281966ba3 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -277,6 +277,7 @@ objtool-args-$(CONFIG_HAVE_STATIC_CALL_INLINE) +=3D --= static-call objtool-args-$(CONFIG_HAVE_UACCESS_VALIDATION) +=3D --uaccess objtool-args-$(CONFIG_GCOV_KERNEL) +=3D --no-unreachable objtool-args-$(CONFIG_PREFIX_SYMBOLS) +=3D --prefix=3D$(CONFIG_FUNCTION_= PADDING_BYTES) +objtool-args-$(CONFIG_OBJTOOL_WERROR) +=3D --Werror --backtrace =20 objtool-args =3D $(objtool-args-y) \ $(if $(delay-objtool), --link) \ --=20 2.48.1