Re: [PATCH] scripts/Makefile.extrawarn: Respect CONFIG_WERROR / W=e for hostprogs
From: Thomas Weißschuh
Date: Tue Oct 07 2025 - 02:27:08 EST
On Mon, Oct 06, 2025 at 02:39:56PM -0700, Nathan Chancellor wrote:
> Commit 27758d8c2583 ("kbuild: enable -Werror for hostprogs")
> unconditionally enabled -Werror for the compiler, assembler, and linker
> when building the host programs, as the build footprint of the host
> programs is small (thus risk of build failures from warnings are low)
> and that stage of the build may not have Kconfig values (thus
> CONFIG_WERROR could not be used as a precondition).
>
> While turning warnings into errors unconditionally happens in a few
> places within the kernel, it can be disruptive to people who may be
> building with newer compilers, such as while doing a bisect. While it is
> possible to avoid this behavior by passing HOSTCFLAGS=-w or
> HOSTCFLAGS=-Wno-error, it may not be the most intuitive for regular
> users not intimately familiar with Kbuild.
>
> Avoid being disruptive to the entire build by depending on the explicit
> opt-in of CONFIG_WERROR or W=e to enable -Werror and the like while
> building the host programs. While this means there is a small portion of
> the build that does not have -Werror enabled (namely scripts/kconfig/*
> and scripts/basic/fixdep), it is better than not having it altogether.
>
> Fixes: 27758d8c2583 ("kbuild: enable -Werror for hostprogs")
> Link: https://lore.kernel.org/20251005011100.1035272-1-safinaskar@xxxxxxxxx/
Reported-by: Askar Safin <safinaskar@xxxxxxxxx>
Closes: https://lore.kernel.org/20251005011100.1035272-1-safinaskar@xxxxxxxxx/
> Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx>
Reviewed-by: Thomas Weißschuh <thomas.weissschuh@xxxxxxxxxxxxx>
Thanks and sorry for the trouble!
> ---
> scripts/Makefile.extrawarn | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
> index 1434cb6208cb..6af392f9cd02 100644
> --- a/scripts/Makefile.extrawarn
> +++ b/scripts/Makefile.extrawarn
> @@ -223,9 +223,11 @@ KBUILD_USERCFLAGS += -Werror
> KBUILD_USERLDFLAGS += -Wl,--fatal-warnings
> KBUILD_RUSTFLAGS += -Dwarnings
>
> -endif
> -
> -# Hostprog flags are used during build bootstrapping and can not rely on CONFIG_ symbols.
> +# While hostprog flags are used during build bootstrapping (thus should not
> +# depend on CONFIG_ symbols), -Werror is disruptive and should be opted into.
> +# Only apply -Werror to hostprogs built after the initial Kconfig stage.
> KBUILD_HOSTCFLAGS += -Werror
> KBUILD_HOSTLDFLAGS += -Wl,--fatal-warnings
> KBUILD_HOSTRUSTFLAGS += -Dwarnings
> +
> +endif
>
> ---
> base-commit: 2ea77fca84f07849aa995271271340d262d0c2e9
> change-id: 20251006-kbuild-hostprogs-werror-fix-be6a3e123dfc
>
> Best regards,
> --
> Nathan Chancellor <nathan@xxxxxxxxxx>
>