cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

Makefile.extrawarn (3065B)


      1# SPDX-License-Identifier: GPL-2.0
      2# ==========================================================================
      3# make W=... settings
      4#
      5# There are four warning groups enabled by W=1, W=2, W=3, and W=e
      6# They are independent, and can be combined like W=12 or W=123e.
      7# ==========================================================================
      8
      9KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned)
     10
     11# backward compatibility
     12KBUILD_EXTRA_WARN ?= $(KBUILD_ENABLE_EXTRA_GCC_CHECKS)
     13
     14ifeq ("$(origin W)", "command line")
     15  KBUILD_EXTRA_WARN := $(W)
     16endif
     17
     18export KBUILD_EXTRA_WARN
     19
     20#
     21# W=1 - warnings which may be relevant and do not occur too often
     22#
     23ifneq ($(findstring 1, $(KBUILD_EXTRA_WARN)),)
     24
     25KBUILD_CFLAGS += -Wextra -Wunused -Wno-unused-parameter
     26KBUILD_CFLAGS += -Wmissing-declarations
     27KBUILD_CFLAGS += -Wmissing-format-attribute
     28KBUILD_CFLAGS += -Wmissing-prototypes
     29KBUILD_CFLAGS += -Wold-style-definition
     30KBUILD_CFLAGS += -Wmissing-include-dirs
     31KBUILD_CFLAGS += $(call cc-option, -Wunused-but-set-variable)
     32KBUILD_CFLAGS += $(call cc-option, -Wunused-const-variable)
     33KBUILD_CFLAGS += $(call cc-option, -Wpacked-not-aligned)
     34KBUILD_CFLAGS += $(call cc-option, -Wstringop-truncation)
     35# The following turn off the warnings enabled by -Wextra
     36KBUILD_CFLAGS += -Wno-missing-field-initializers
     37KBUILD_CFLAGS += -Wno-sign-compare
     38KBUILD_CFLAGS += -Wno-type-limits
     39KBUILD_CFLAGS += -Wno-shift-negative-value
     40
     41KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN1
     42
     43else
     44
     45# Some diagnostics enabled by default are noisy.
     46# Suppress them by using -Wno... except for W=1.
     47
     48ifdef CONFIG_CC_IS_CLANG
     49KBUILD_CFLAGS += -Wno-initializer-overrides
     50KBUILD_CFLAGS += -Wno-format
     51KBUILD_CFLAGS += -Wno-sign-compare
     52KBUILD_CFLAGS += -Wno-format-zero-length
     53KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)
     54KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare
     55KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access)
     56endif
     57
     58endif
     59
     60#
     61# W=2 - warnings which occur quite often but may still be relevant
     62#
     63ifneq ($(findstring 2, $(KBUILD_EXTRA_WARN)),)
     64
     65KBUILD_CFLAGS += -Wdisabled-optimization
     66KBUILD_CFLAGS += -Wshadow
     67KBUILD_CFLAGS += $(call cc-option, -Wlogical-op)
     68KBUILD_CFLAGS += -Wmissing-field-initializers
     69KBUILD_CFLAGS += -Wtype-limits
     70KBUILD_CFLAGS += $(call cc-option, -Wmaybe-uninitialized)
     71KBUILD_CFLAGS += $(call cc-option, -Wunused-macros)
     72
     73KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN2
     74
     75endif
     76
     77#
     78# W=3 - more obscure warnings, can most likely be ignored
     79#
     80ifneq ($(findstring 3, $(KBUILD_EXTRA_WARN)),)
     81
     82KBUILD_CFLAGS += -Wbad-function-cast
     83KBUILD_CFLAGS += -Wcast-align
     84KBUILD_CFLAGS += -Wcast-qual
     85KBUILD_CFLAGS += -Wconversion
     86KBUILD_CFLAGS += -Wpacked
     87KBUILD_CFLAGS += -Wpadded
     88KBUILD_CFLAGS += -Wpointer-arith
     89KBUILD_CFLAGS += -Wredundant-decls
     90KBUILD_CFLAGS += -Wsign-compare
     91KBUILD_CFLAGS += -Wswitch-default
     92KBUILD_CFLAGS += $(call cc-option, -Wpacked-bitfield-compat)
     93
     94KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN3
     95
     96endif
     97
     98#
     99# W=e - error out on warnings
    100#
    101ifneq ($(findstring e, $(KBUILD_EXTRA_WARN)),)
    102
    103KBUILD_CFLAGS += -Werror
    104
    105endif