diff options
| -rw-r--r-- | Documentation/kbuild/kbuild.txt | 5 | ||||
| -rw-r--r-- | Makefile | 5 | ||||
| -rw-r--r-- | scripts/Makefile.build | 35 |
3 files changed, 44 insertions, 1 deletions
diff --git a/Documentation/kbuild/kbuild.txt b/Documentation/kbuild/kbuild.txt index 4a990317b84a..376538c984ce 100644 --- a/Documentation/kbuild/kbuild.txt +++ b/Documentation/kbuild/kbuild.txt | |||
| @@ -196,3 +196,8 @@ to be included in the databases, separated by blank space. E.g.: | |||
| 196 | To get all available archs you can also specify all. E.g.: | 196 | To get all available archs you can also specify all. E.g.: |
| 197 | 197 | ||
| 198 | $ make ALLSOURCE_ARCHS=all tags | 198 | $ make ALLSOURCE_ARCHS=all tags |
| 199 | |||
| 200 | KBUILD_ENABLE_EXTRA_GCC_CHECKS | ||
| 201 | -------------------------------------------------- | ||
| 202 | If enabled over the make command line with "W=1", it turns on additional | ||
| 203 | gcc -W... options for more extensive build-time checking. | ||
| @@ -102,6 +102,10 @@ ifeq ("$(origin O)", "command line") | |||
| 102 | KBUILD_OUTPUT := $(O) | 102 | KBUILD_OUTPUT := $(O) |
| 103 | endif | 103 | endif |
| 104 | 104 | ||
| 105 | ifeq ("$(origin W)", "command line") | ||
| 106 | export KBUILD_ENABLE_EXTRA_GCC_CHECKS := 1 | ||
| 107 | endif | ||
| 108 | |||
| 105 | # That's our default target when none is given on the command line | 109 | # That's our default target when none is given on the command line |
| 106 | PHONY := _all | 110 | PHONY := _all |
| 107 | _all: | 111 | _all: |
| @@ -1262,6 +1266,7 @@ help: | |||
| 1262 | @echo ' make O=dir [targets] Locate all output files in "dir", including .config' | 1266 | @echo ' make O=dir [targets] Locate all output files in "dir", including .config' |
| 1263 | @echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)' | 1267 | @echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)' |
| 1264 | @echo ' make C=2 [targets] Force check of all c source with $$CHECK' | 1268 | @echo ' make C=2 [targets] Force check of all c source with $$CHECK' |
| 1269 | @echo ' make W=1 [targets] Enable extra gcc checks' | ||
| 1265 | @echo '' | 1270 | @echo '' |
| 1266 | @echo 'Execute "make" or "make all" to build all targets marked with [*] ' | 1271 | @echo 'Execute "make" or "make all" to build all targets marked with [*] ' |
| 1267 | @echo 'For further info see the ./README file' | 1272 | @echo 'For further info see the ./README file' |
diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 4eb99ab34053..d5f925abe4d2 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build | |||
| @@ -49,6 +49,40 @@ ifeq ($(KBUILD_NOPEDANTIC),) | |||
| 49 | $(error CFLAGS was changed in "$(kbuild-file)". Fix it to use EXTRA_CFLAGS) | 49 | $(error CFLAGS was changed in "$(kbuild-file)". Fix it to use EXTRA_CFLAGS) |
| 50 | endif | 50 | endif |
| 51 | endif | 51 | endif |
| 52 | |||
| 53 | # | ||
| 54 | # make W=1 settings | ||
| 55 | # | ||
| 56 | # $(call cc-option... ) handles gcc -W.. options which | ||
| 57 | # are not supported by all versions of the compiler | ||
| 58 | ifdef KBUILD_ENABLE_EXTRA_GCC_CHECKS | ||
| 59 | KBUILD_EXTRA_WARNINGS := -Wextra | ||
| 60 | KBUILD_EXTRA_WARNINGS += -Wunused -Wno-unused-parameter | ||
| 61 | KBUILD_EXTRA_WARNINGS += -Waggregate-return | ||
| 62 | KBUILD_EXTRA_WARNINGS += -Wbad-function-cast | ||
| 63 | KBUILD_EXTRA_WARNINGS += -Wcast-qual | ||
| 64 | KBUILD_EXTRA_WARNINGS += -Wcast-align | ||
| 65 | KBUILD_EXTRA_WARNINGS += -Wconversion | ||
| 66 | KBUILD_EXTRA_WARNINGS += -Wdisabled-optimization | ||
| 67 | KBUILD_EXTRA_WARNINGS += -Wlogical-op | ||
| 68 | KBUILD_EXTRA_WARNINGS += -Wmissing-declarations | ||
| 69 | KBUILD_EXTRA_WARNINGS += -Wmissing-format-attribute | ||
| 70 | KBUILD_EXTRA_WARNINGS += $(call cc-option, -Wmissing-include-dirs,) | ||
| 71 | KBUILD_EXTRA_WARNINGS += -Wmissing-prototypes | ||
| 72 | KBUILD_EXTRA_WARNINGS += -Wnested-externs | ||
| 73 | KBUILD_EXTRA_WARNINGS += -Wold-style-definition | ||
| 74 | KBUILD_EXTRA_WARNINGS += $(call cc-option, -Woverlength-strings,) | ||
| 75 | KBUILD_EXTRA_WARNINGS += -Wpacked | ||
| 76 | KBUILD_EXTRA_WARNINGS += -Wpacked-bitfield-compat | ||
| 77 | KBUILD_EXTRA_WARNINGS += -Wpadded | ||
| 78 | KBUILD_EXTRA_WARNINGS += -Wpointer-arith | ||
| 79 | KBUILD_EXTRA_WARNINGS += -Wredundant-decls | ||
| 80 | KBUILD_EXTRA_WARNINGS += -Wshadow | ||
| 81 | KBUILD_EXTRA_WARNINGS += -Wswitch-default | ||
| 82 | KBUILD_EXTRA_WARNINGS += $(call cc-option, -Wvla,) | ||
| 83 | KBUILD_CFLAGS += $(KBUILD_EXTRA_WARNINGS) | ||
| 84 | endif | ||
| 85 | |||
| 52 | include scripts/Makefile.lib | 86 | include scripts/Makefile.lib |
| 53 | 87 | ||
| 54 | ifdef host-progs | 88 | ifdef host-progs |
| @@ -403,7 +437,6 @@ ifneq ($(cmd_files),) | |||
| 403 | include $(cmd_files) | 437 | include $(cmd_files) |
| 404 | endif | 438 | endif |
| 405 | 439 | ||
| 406 | |||
| 407 | # Declare the contents of the .PHONY variable as phony. We keep that | 440 | # Declare the contents of the .PHONY variable as phony. We keep that |
| 408 | # information in a variable se we can use it in if_changed and friends. | 441 | # information in a variable se we can use it in if_changed and friends. |
| 409 | 442 | ||
