On 27/02/2025 22:00, Paul Barker wrote:
> Add a new config option under "General setup" to enable the -Werror flag
> when building U-Boot. This is useful during development to help catch
> mistakes.
> 
> This is based on a similar config option added to the Linux kernel by
> Linus in 2021 - see Linux commit 3fe617ccafd6 ("Enable '-Werror' by
> default for all kernel builds"). The modification of KBUILD_CFLAGS is
> done in Makefile.extrawarn, matching where it was moved in the kernel by
> Linux commit e88ca24319e4 ("kbuild: consolidate warning flags in
> scripts/Makefile.extrawarn").
> 
> Signed-off-by: Paul Barker <[email protected]>
> ---
>  Kconfig                    | 11 +++++++++++
>  scripts/Makefile.extrawarn |  3 +++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/Kconfig b/Kconfig
> index 6379a4541664..4fbe65222952 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -27,6 +27,17 @@ config DEPRECATED
>         code that relies on deprecated features that will be removed and
>         the conversion deadline has passed.
>  
> +config WERROR
> +     bool "Compile U-Boot with warnings as errors"
> +     help
> +       A U-Boot build should not cause any compiler warnings, and this
> +       enables the '-Werror' flag to enforce that rule.
> +
> +       However, if you have a new (or very old) compiler or linker with odd
> +       and unusual warnings, or you have some architecture with problems,
> +       you may need to disable this config option in order to
> +       successfully build the kernel.

I notice as soon as I send this.... s/kernel/U-Boot/ !

> +
>  config LOCALVERSION
>       string "Local version - append to U-Boot release"
>       help
> diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn
> index 7d39b27d24a9..f687515fc799 100644
> --- a/scripts/Makefile.extrawarn
> +++ b/scripts/Makefile.extrawarn
> @@ -13,6 +13,9 @@
>  
>  KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned)
>  
> +KBUILD_CPPFLAGS-$(CONFIG_WERROR) += -Werror
> +KBUILD_CPPFLAGS += $(KBUILD_CPPFLAGS-y)
> +
>  ifeq ("$(origin W)", "command line")
>    export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
>  endif

Thanks,

-- 
Paul Barker

Attachment: OpenPGP_0x27F4B3459F002257.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to