kernel: introduce KERNEL_WERROR config option
authorPetr Štetiar <ynezz@true.cz>
Wed, 24 May 2023 07:46:45 +0000 (09:46 +0200)
committerChristian Marangi <ansuelsmth@gmail.com>
Tue, 4 Jul 2023 05:14:22 +0000 (07:14 +0200)
In commit b2d1eb717b65 ("generic: 5.15: enable Werror by default for
kernel compile") CONFIG_WERROR=y was enabled and all warnings/errors
reported with GCC 12 were fixed.

Keeping this in sync with past/future GCC versions is going to be uphill
battle, so lets introduce new KERNEL_WERROR config option, enable it by
default only for tested/known working combinations and on buildbots.

References: #12687
Signed-off-by: Petr Štetiar <ynezz@true.cz>
config/Config-kernel.in
target/linux/generic/config-5.15
target/linux/generic/config-6.1

index 7de0d17b5eaa58ceab885f4a931dc4acd118272c..a770a9d797371dd128fab7cfb4aa7430aebb6bd3 100644 (file)
@@ -1343,3 +1343,19 @@ config KERNEL_UBIFS_FS_SECURITY
 
 config KERNEL_JFFS2_FS_SECURITY
        bool "JFFS2 Security Labels"
+
+config KERNEL_WERROR
+       bool "Compile the kernel with warnings as errors"
+       default BUILDBOT
+       default y if GCC_USE_VERSION_12
+       help
+         A kernel build should not cause any compiler warnings, and this
+         enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags
+         to enforce that rule by default. Certain warnings from other tools
+         such as the linker may be upgraded to errors with this option as
+         well.
+
+         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.
index 251a6fbcc32f28cadb53a501466ea47cd2519619..a7308ede9d843f96b0586ce40ec188c0840f524b 100644 (file)
@@ -7472,7 +7472,7 @@ CONFIG_WATCHDOG_OPEN_TIMEOUT=0
 # CONFIG_WD80x3 is not set
 # CONFIG_WDAT_WDT is not set
 # CONFIG_WDTPCI is not set
-CONFIG_WERROR=y
+# CONFIG_WERROR is not set
 # CONFIG_WEXT_CORE is not set
 # CONFIG_WEXT_PRIV is not set
 # CONFIG_WEXT_PROC is not set
index 956738afe8e84583249c5daced087a7a5aef30fb..8bf9d4a3d856052e487a488281ee94bed641aec5 100644 (file)
@@ -7731,7 +7731,7 @@ CONFIG_WATCHDOG_OPEN_TIMEOUT=0
 # CONFIG_WD80x3 is not set
 # CONFIG_WDAT_WDT is not set
 # CONFIG_WDTPCI is not set
-CONFIG_WERROR=y
+# CONFIG_WERROR is not set
 # CONFIG_WEXT_CORE is not set
 # CONFIG_WEXT_PRIV is not set
 # CONFIG_WEXT_PROC is not set