diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Makefile.build | 61 | ||||
-rw-r--r-- | scripts/Makefile.extrawarn | 67 |
2 files changed, 67 insertions, 61 deletions
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 | ||