16419e144SMasahiro Yamada# ========================================================================== 26419e144SMasahiro Yamada# 36419e144SMasahiro Yamada# make W=... settings 46419e144SMasahiro Yamada# 56419e144SMasahiro Yamada# W=1 - warnings that may be relevant and does not occur too often 66419e144SMasahiro Yamada# W=2 - warnings that occur quite often but may still be relevant 76419e144SMasahiro Yamada# W=3 - the more obscure warnings, can most likely be ignored 86419e144SMasahiro Yamada# 96419e144SMasahiro Yamada# $(call cc-option, -W...) handles gcc -W.. options which 106419e144SMasahiro Yamada# are not supported by all versions of the compiler 116419e144SMasahiro Yamada# ========================================================================== 12f32c8649STom Rini# 13f32c8649STom Rini# SPDX-License-Identifier: GPL-2.0 14f32c8649STom Rini# 156419e144SMasahiro Yamada 166419e144SMasahiro Yamadaifeq ("$(origin W)", "command line") 176419e144SMasahiro Yamada export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W) 186419e144SMasahiro Yamadaendif 196419e144SMasahiro Yamada 206419e144SMasahiro Yamadaifdef KBUILD_ENABLE_EXTRA_GCC_CHECKS 216419e144SMasahiro Yamadawarning- := $(empty) 226419e144SMasahiro Yamada 236419e144SMasahiro Yamadawarning-1 := -Wextra -Wunused -Wno-unused-parameter 246419e144SMasahiro Yamadawarning-1 += -Wmissing-declarations 256419e144SMasahiro Yamadawarning-1 += -Wmissing-format-attribute 266419e144SMasahiro Yamadawarning-1 += $(call cc-option, -Wmissing-prototypes) 276419e144SMasahiro Yamadawarning-1 += -Wold-style-definition 286419e144SMasahiro Yamadawarning-1 += $(call cc-option, -Wmissing-include-dirs) 296419e144SMasahiro Yamadawarning-1 += $(call cc-option, -Wunused-but-set-variable) 306419e144SMasahiro Yamadawarning-1 += $(call cc-disable-warning, missing-field-initializers) 316419e144SMasahiro Yamada 326419e144SMasahiro Yamadawarning-2 := -Waggregate-return 336419e144SMasahiro Yamadawarning-2 += -Wcast-align 346419e144SMasahiro Yamadawarning-2 += -Wdisabled-optimization 356419e144SMasahiro Yamadawarning-2 += -Wnested-externs 366419e144SMasahiro Yamadawarning-2 += -Wshadow 376419e144SMasahiro Yamadawarning-2 += $(call cc-option, -Wlogical-op) 386419e144SMasahiro Yamadawarning-2 += $(call cc-option, -Wmissing-field-initializers) 396419e144SMasahiro Yamada 406419e144SMasahiro Yamadawarning-3 := -Wbad-function-cast 416419e144SMasahiro Yamadawarning-3 += -Wcast-qual 426419e144SMasahiro Yamadawarning-3 += -Wconversion 436419e144SMasahiro Yamadawarning-3 += -Wpacked 446419e144SMasahiro Yamadawarning-3 += -Wpadded 456419e144SMasahiro Yamadawarning-3 += -Wpointer-arith 466419e144SMasahiro Yamadawarning-3 += -Wredundant-decls 476419e144SMasahiro Yamadawarning-3 += -Wswitch-default 486419e144SMasahiro Yamadawarning-3 += $(call cc-option, -Wpacked-bitfield-compat) 496419e144SMasahiro Yamadawarning-3 += $(call cc-option, -Wvla) 506419e144SMasahiro Yamada 516419e144SMasahiro Yamadawarning := $(warning-$(findstring 1, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) 526419e144SMasahiro Yamadawarning += $(warning-$(findstring 2, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) 536419e144SMasahiro Yamadawarning += $(warning-$(findstring 3, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) 546419e144SMasahiro Yamada 556419e144SMasahiro Yamadaifeq ("$(strip $(warning))","") 566419e144SMasahiro Yamada $(error W=$(KBUILD_ENABLE_EXTRA_GCC_CHECKS) is unknown) 576419e144SMasahiro Yamadaendif 586419e144SMasahiro Yamada 596419e144SMasahiro YamadaKBUILD_CFLAGS += $(warning) 604b83f0d9SMasahiro Yamada 61*50749d2aSMasahiro Yamadadtc-warning-2 += $(call dtc-option,-Wnode_name_chars_strict) 62*50749d2aSMasahiro Yamadadtc-warning-2 += $(call dtc-option,-Wproperty_name_chars_strict) 63*50749d2aSMasahiro Yamada 64*50749d2aSMasahiro Yamadadtc-warning := $(dtc-warning-$(findstring 1, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) 65*50749d2aSMasahiro Yamadadtc-warning += $(dtc-warning-$(findstring 2, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) 66*50749d2aSMasahiro Yamadadtc-warning += $(dtc-warning-$(findstring 3, $(KBUILD_ENABLE_EXTRA_GCC_CHECKS))) 67*50749d2aSMasahiro Yamada 68*50749d2aSMasahiro YamadaDTC_FLAGS += $(dtc-warning) 69*50749d2aSMasahiro Yamada 704b83f0d9SMasahiro Yamadaelse 714b83f0d9SMasahiro Yamada 724b83f0d9SMasahiro Yamada# Disable noisy checks by default 734b83f0d9SMasahiro YamadaDTC_FLAGS += $(call dtc-option,-Wno-unit_address_vs_reg) 74*50749d2aSMasahiro YamadaDTC_FLAGS += $(call dtc-option,-Wno-simple_bus_reg) 75*50749d2aSMasahiro YamadaDTC_FLAGS += $(call dtc-option,-Wno-unit_address_format) 76*50749d2aSMasahiro YamadaDTC_FLAGS += $(call dtc-option,-Wno-pci_bridge) 77*50749d2aSMasahiro YamadaDTC_FLAGS += $(call dtc-option,-Wno-pci_device_bus_num) 78*50749d2aSMasahiro YamadaDTC_FLAGS += $(call dtc-option,-Wno-pci_device_reg) 794b83f0d9SMasahiro Yamada 806419e144SMasahiro Yamadaendif 81