diff options
author | Masahiro Yamada <yamada.m@jp.panasonic.com> | 2014-04-14 05:27:10 -0400 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2014-04-16 17:28:41 -0400 |
commit | a86fe3537350613c0181ce936884036a9695ceea (patch) | |
tree | 7572e2131dc2c9e014c4c22302336c5812912393 /scripts/Makefile.extrawarn | |
parent | c9eaa447e77efe77b7fa4c953bd62de8297fd6c5 (diff) |
kbuild: move extra gcc checks to scripts/Makefile.extrawarn
W=... provides extra gcc checks.
Having such code in scripts/Makefile.build results in the same flags
being added to KBUILD_CFLAGS multiple times becuase
scripts/Makefile.build is invoked every time Kbuild descends into
the subdirectories.
Since the top Makefile is already too cluttered, this commit moves
all of extra gcc check stuff to a new file scripts/Makefile.extrawarn,
which is included from the top Makefile.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
CC: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Diffstat (limited to 'scripts/Makefile.extrawarn')
-rw-r--r-- | scripts/Makefile.extrawarn | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn new file mode 100644 index 000000000000..65643506c71c --- /dev/null +++ b/scripts/Makefile.extrawarn | |||
@@ -0,0 +1,67 @@ | |||
1 | # ========================================================================== | ||
2 | # | ||
3 | # make W=... settings | ||
4 | # | ||
5 | # W=1 - warnings that may be relevant and does not occur too often | ||
6 | # W=2 - warnings that occur quite often but may still be relevant | ||
7 | # W=3 - the more obscure warnings, can most likely be ignored | ||
8 | # | ||
9 | # $(call cc-option, -W...) handles gcc -W.. options which | ||
10 | # are not supported by all versions of the compiler | ||
11 | # ========================================================================== | ||
12 | |||
13 | ifeq ("$(origin W)", "command line") | ||
14 | export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W) | ||
15 | endif | ||
16 | |||
17 | ifdef KBUILD_ENABLE_EXTRA_GCC_CHECKS | ||
18 | warning- := $(empty) | ||
19 | |||
20 | warning-1 := -Wextra -Wunused -Wno-unused-parameter | ||
21 | warning-1 += -Wmissing-declarations | ||
22 | warning-1 += -Wmissing-format-attribute | ||
23 | warning-1 += $(call cc-option, -Wmissing-prototypes) | ||
24 | warning-1 += -Wold-style-definition | ||
25 | warning-1 += $(call cc-option, -Wmissing-include-dirs) | ||
26 | warning-1 += $(call cc-option, -Wunused-but-set-variable) | ||
27 | warning-1 += $(call cc-disable-warning, missing-field-initializers) | ||
28 | |||
29 | # Clang | ||
30 | warning-1 += $(call cc-disable-warning, initializer-overrides) | ||
31 | warning-1 += $(call cc-disable-warning, unused-value) | ||
32 | warning-1 += $(call cc-disable-warning, format) | ||
33 | warning-1 += $(call cc-disable-warning, unknown-warning-option) | ||
34 | warning-1 += $(call cc-disable-warning, sign-compare) | ||
35 | warning-1 += $(call cc-disable-warning, format-zero-length) | ||
36 | warning-1 += $(call cc-disable-warning, uninitialized) | ||
37 | warning-1 += $(call cc-option, -fcatch-undefined-behavior) | ||
38 | |||
39 | warning-2 := -Waggregate-return | ||
40 | warning-2 += -Wcast-align | ||
41 | warning-2 += -Wdisabled-optimization | ||
42 | warning-2 += -Wnested-externs | ||
43 | warning-2 += -Wshadow | ||
44 | warning-2 += $(call cc-option, -Wlogical-op) | ||
45 | warning-2 += $(call cc-option, -Wmissing-field-initializers) | ||
46 | |||
47 | warning-3 := -Wbad-function-cast | ||
48 | warning-3 += -Wcast-qual | ||
49 | warning-3 += -Wconversion | ||
50 | warning-3 += -Wpacked | ||
51 | warning-3 += -Wpadded | ||
52 | warning-3 += -Wpointer-arith | ||
53 | warning-3 += -Wredundant-decls | ||
54 | warning-3 += -Wswitch-default | ||
55 | warning-3 += $(call cc-option, -Wpacked-bitfield-compat) | ||
56 | warning-3 += $(call cc-option, -Wvla) | ||
57 | |||
58 | warning := $(warning-$(findstring 1, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | ||
59 | warning += $(warning-$(findstring 2, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | ||
60 | warning += $(warning-$(findstring 3, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | ||
61 | |||
62 | ifeq ("$(strip $(warning))","") | ||
63 | $(error W=$(KBUILD_ENABLE_EXTRA_GCC_CHECKS) is unknown) | ||
64 | endif | ||
65 | |||
66 | KBUILD_CFLAGS += $(warning) | ||
67 | endif | ||