Blame view

scripts/Makefile.extrawarn 2.37 KB
a86fe3537   Masahiro Yamada   kbuild: move extr...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  # ==========================================================================
  #
  # make W=... settings
  #
  # W=1 - warnings that may be relevant and does not occur too often
  # W=2 - warnings that occur quite often but may still be relevant
  # W=3 - the more obscure warnings, can most likely be ignored
  #
  # $(call cc-option, -W...) handles gcc -W.. options which
  # are not supported by all versions of the compiler
  # ==========================================================================
  
  ifeq ("$(origin W)", "command line")
    export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
  endif
  
  ifdef KBUILD_ENABLE_EXTRA_GCC_CHECKS
  warning-  := $(empty)
  
  warning-1 := -Wextra -Wunused -Wno-unused-parameter
  warning-1 += -Wmissing-declarations
  warning-1 += -Wmissing-format-attribute
  warning-1 += $(call cc-option, -Wmissing-prototypes)
  warning-1 += -Wold-style-definition
  warning-1 += $(call cc-option, -Wmissing-include-dirs)
  warning-1 += $(call cc-option, -Wunused-but-set-variable)
  warning-1 += $(call cc-disable-warning, missing-field-initializers)
a86fe3537   Masahiro Yamada   kbuild: move extr...
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  warning-2 := -Waggregate-return
  warning-2 += -Wcast-align
  warning-2 += -Wdisabled-optimization
  warning-2 += -Wnested-externs
  warning-2 += -Wshadow
  warning-2 += $(call cc-option, -Wlogical-op)
  warning-2 += $(call cc-option, -Wmissing-field-initializers)
  
  warning-3 := -Wbad-function-cast
  warning-3 += -Wcast-qual
  warning-3 += -Wconversion
  warning-3 += -Wpacked
  warning-3 += -Wpadded
  warning-3 += -Wpointer-arith
  warning-3 += -Wredundant-decls
  warning-3 += -Wswitch-default
  warning-3 += $(call cc-option, -Wpacked-bitfield-compat)
  warning-3 += $(call cc-option, -Wvla)
  
  warning := $(warning-$(findstring 1, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS)))
  warning += $(warning-$(findstring 2, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS)))
  warning += $(warning-$(findstring 3, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS)))
  
  ifeq ("$(strip $(warning))","")
          $(error W=$(KBUILD_ENABLE_EXTRA_GCC_CHECKS) is unknown)
  endif
  
  KBUILD_CFLAGS += $(warning)
26ea6bb1f   Behan Webster   kbuild, LLVMLinux...
56
57
58
59
60
61
62
63
64
65
66
  else
  
  ifeq ($(COMPILER),clang)
  KBUILD_CFLAGS += $(call cc-disable-warning, initializer-overrides)
  KBUILD_CFLAGS += $(call cc-disable-warning, unused-value)
  KBUILD_CFLAGS += $(call cc-disable-warning, format)
  KBUILD_CFLAGS += $(call cc-disable-warning, unknown-warning-option)
  KBUILD_CFLAGS += $(call cc-disable-warning, sign-compare)
  KBUILD_CFLAGS += $(call cc-disable-warning, format-zero-length)
  KBUILD_CFLAGS += $(call cc-disable-warning, uninitialized)
  endif
a86fe3537   Masahiro Yamada   kbuild: move extr...
67
  endif