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 | |
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>
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | scripts/Makefile.build | 61 | ||||
-rw-r--r-- | scripts/Makefile.extrawarn | 67 |
3 files changed, 69 insertions, 65 deletions
@@ -105,10 +105,6 @@ ifeq ("$(origin O)", "command line") | |||
105 | KBUILD_OUTPUT := $(O) | 105 | KBUILD_OUTPUT := $(O) |
106 | endif | 106 | endif |
107 | 107 | ||
108 | ifeq ("$(origin W)", "command line") | ||
109 | export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W) | ||
110 | endif | ||
111 | |||
112 | # That's our default target when none is given on the command line | 108 | # That's our default target when none is given on the command line |
113 | PHONY := _all | 109 | PHONY := _all |
114 | _all: | 110 | _all: |
@@ -731,6 +727,8 @@ ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC)), y) | |||
731 | KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO | 727 | KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO |
732 | endif | 728 | endif |
733 | 729 | ||
730 | include $(srctree)/scripts/Makefile.extrawarn | ||
731 | |||
734 | # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments | 732 | # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments |
735 | KBUILD_CPPFLAGS += $(KCPPFLAGS) | 733 | KBUILD_CPPFLAGS += $(KCPPFLAGS) |
736 | KBUILD_AFLAGS += $(KAFLAGS) | 734 | KBUILD_AFLAGS += $(KAFLAGS) |
diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 003bc263105a..b5e02b669469 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build | |||
@@ -50,67 +50,6 @@ ifeq ($(KBUILD_NOPEDANTIC),) | |||
50 | endif | 50 | endif |
51 | endif | 51 | endif |
52 | 52 | ||
53 | # | ||
54 | # make W=... settings | ||
55 | # | ||
56 | # W=1 - warnings that may be relevant and does not occur too often | ||
57 | # W=2 - warnings that occur quite often but may still be relevant | ||
58 | # W=3 - the more obscure warnings, can most likely be ignored | ||
59 | # | ||
60 | # $(call cc-option, -W...) handles gcc -W.. options which | ||
61 | # are not supported by all versions of the compiler | ||
62 | ifdef KBUILD_ENABLE_EXTRA_GCC_CHECKS | ||
63 | warning- := $(empty) | ||
64 | |||
65 | warning-1 := -Wextra -Wunused -Wno-unused-parameter | ||
66 | warning-1 += -Wmissing-declarations | ||
67 | warning-1 += -Wmissing-format-attribute | ||
68 | warning-1 += $(call cc-option, -Wmissing-prototypes) | ||
69 | warning-1 += -Wold-style-definition | ||
70 | warning-1 += $(call cc-option, -Wmissing-include-dirs) | ||
71 | warning-1 += $(call cc-option, -Wunused-but-set-variable) | ||
72 | warning-1 += $(call cc-disable-warning, missing-field-initializers) | ||
73 | |||
74 | # Clang | ||
75 | warning-1 += $(call cc-disable-warning, initializer-overrides) | ||
76 | warning-1 += $(call cc-disable-warning, unused-value) | ||
77 | warning-1 += $(call cc-disable-warning, format) | ||
78 | warning-1 += $(call cc-disable-warning, unknown-warning-option) | ||
79 | warning-1 += $(call cc-disable-warning, sign-compare) | ||
80 | warning-1 += $(call cc-disable-warning, format-zero-length) | ||
81 | warning-1 += $(call cc-disable-warning, uninitialized) | ||
82 | warning-1 += $(call cc-option, -fcatch-undefined-behavior) | ||
83 | |||
84 | warning-2 := -Waggregate-return | ||
85 | warning-2 += -Wcast-align | ||
86 | warning-2 += -Wdisabled-optimization | ||
87 | warning-2 += -Wnested-externs | ||
88 | warning-2 += -Wshadow | ||
89 | warning-2 += $(call cc-option, -Wlogical-op) | ||
90 | warning-2 += $(call cc-option, -Wmissing-field-initializers) | ||
91 | |||
92 | warning-3 := -Wbad-function-cast | ||
93 | warning-3 += -Wcast-qual | ||
94 | warning-3 += -Wconversion | ||
95 | warning-3 += -Wpacked | ||
96 | warning-3 += -Wpadded | ||
97 | warning-3 += -Wpointer-arith | ||
98 | warning-3 += -Wredundant-decls | ||
99 | warning-3 += -Wswitch-default | ||
100 | warning-3 += $(call cc-option, -Wpacked-bitfield-compat) | ||
101 | warning-3 += $(call cc-option, -Wvla) | ||
102 | |||
103 | warning := $(warning-$(findstring 1, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | ||
104 | warning += $(warning-$(findstring 2, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | ||
105 | warning += $(warning-$(findstring 3, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) | ||
106 | |||
107 | ifeq ("$(strip $(warning))","") | ||
108 | $(error W=$(KBUILD_ENABLE_EXTRA_GCC_CHECKS) is unknown) | ||
109 | endif | ||
110 | |||
111 | KBUILD_CFLAGS += $(warning) | ||
112 | endif | ||
113 | |||
114 | include scripts/Makefile.lib | 53 | include scripts/Makefile.lib |
115 | 54 | ||
116 | ifdef host-progs | 55 | ifdef host-progs |
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 | ||