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 <paul.barker...@bp.renesas.com>
---
Changes v1->v2:
  - s/the kernel/U-Boot/

 Kconfig                    | 11 +++++++++++
 scripts/Makefile.extrawarn |  3 +++
 2 files changed, 14 insertions(+)

diff --git a/Kconfig b/Kconfig
index 6379a4541664..70dc385dd2f2 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 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
-- 
2.43.0

Reply via email to