Skip to content

Commit 3fe617c

Browse files
committed
Enable '-Werror' by default for all kernel builds
... but make it a config option so that broken environments can disable it when required. We really should always have a clean build, and will disable specific over-eager warnings as required, if we can't fix them. But while I fairly religiously enforce that in my own tree, it doesn't get enforced by various build robots that don't necessarily report warnings. So this just makes '-Werror' a default compiler flag, but allows people to disable it for their configuration if they have some particular issues. Occasionally, new compiler versions end up enabling new warnings, and it can take a while before we have them fixed (or the warnings disabled if that is what it takes), so the config option allows for that situation. Hopefully this will mean that I get fewer pull requests that have new warnings that were not noticed by various automation we have in place. Knock wood. Signed-off-by: Linus Torvalds <[email protected]>
1 parent fd47ff5 commit 3fe617c

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,9 @@ stackp-flags-$(CONFIG_STACKPROTECTOR_STRONG) := -fstack-protector-strong
785785

786786
KBUILD_CFLAGS += $(stackp-flags-y)
787787

788+
KBUILD_CFLAGS-$(CONFIG_WERROR) += -Werror
789+
KBUILD_CFLAGS += $(KBUILD_CFLAGS-y)
790+
788791
ifdef CONFIG_CC_IS_CLANG
789792
KBUILD_CPPFLAGS += -Qunused-arguments
790793
# The kernel builds with '-std=gnu89' so use of GNU extensions is acceptable.

init/Kconfig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,20 @@ config COMPILE_TEST
137137
here. If you are a user/distributor, say N here to exclude useless
138138
drivers to be distributed.
139139

140+
config WERROR
141+
bool "Compile the kernel with warnings as errors"
142+
default y
143+
help
144+
A kernel build should not cause any compiler warnings, and this
145+
enables the '-Werror' flag to enforce that rule by default.
146+
147+
However, if you have a new (or very old) compiler with odd and
148+
unusual warnings, or you have some architecture with problems,
149+
you may need to disable this config option in order to
150+
successfully build the kernel.
151+
152+
If in doubt, say Y.
153+
140154
config UAPI_HEADER_TEST
141155
bool "Compile test UAPI headers"
142156
depends on HEADERS_INSTALL && CC_CAN_LINK

0 commit comments

Comments
 (0)