mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-16 10:17:32 +00:00
kbuild: make -Woverride-init warnings more consistent
The -Woverride-init warn about code that may be intentional or not, but the inintentional ones tend to be real bugs, so there is a bit of disagreement on whether this warning option should be enabled by default and we have multiple settings in scripts/Makefile.extrawarn as well as individual subsystems. Older versions of clang only supported -Wno-initializer-overrides with the same meaning as gcc's -Woverride-init, though all supported versions now work with both. Because of this difference, an earlier cleanup of mine accidentally turned the clang warning off for W=1 builds and only left it on for W=2, while it's still enabled for gcc with W=1. There is also one driver that only turns the warning off for newer versions of gcc but not other compilers, and some but not all the Makefiles still use a cc-disable-warning conditional that is no longer needed with supported compilers here. Address all of the above by removing the special cases for clang and always turning the warning off unconditionally where it got in the way, using the syntax that is supported by both compilers. Fixes: 2cd3271b7a31 ("kbuild: avoid duplicate warning options") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com> Acked-by: Jani Nikula <jani.nikula@intel.com> Acked-by: Andrew Jeffery <andrew@codeconstruct.com.au> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
This commit is contained in:
parent
1102f9f85b
commit
c40845e319
@ -23,7 +23,7 @@
|
|||||||
# Makefile for the 'controller' sub-component of DAL.
|
# Makefile for the 'controller' sub-component of DAL.
|
||||||
# It provides the control and status of HW CRTC block.
|
# It provides the control and status of HW CRTC block.
|
||||||
|
|
||||||
CFLAGS_$(AMDDALPATH)/dc/dce110/dce110_resource.o = $(call cc-disable-warning, override-init)
|
CFLAGS_$(AMDDALPATH)/dc/dce110/dce110_resource.o = -Wno-override-init
|
||||||
|
|
||||||
DCE110 = dce110_timing_generator.o \
|
DCE110 = dce110_timing_generator.o \
|
||||||
dce110_compressor.o dce110_opp_regamma_v.o \
|
dce110_compressor.o dce110_opp_regamma_v.o \
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
# Makefile for the 'controller' sub-component of DAL.
|
# Makefile for the 'controller' sub-component of DAL.
|
||||||
# It provides the control and status of HW CRTC block.
|
# It provides the control and status of HW CRTC block.
|
||||||
|
|
||||||
CFLAGS_$(AMDDALPATH)/dc/dce112/dce112_resource.o = $(call cc-disable-warning, override-init)
|
CFLAGS_$(AMDDALPATH)/dc/dce112/dce112_resource.o = -Wno-override-init
|
||||||
|
|
||||||
DCE112 = dce112_compressor.o
|
DCE112 = dce112_compressor.o
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
# It provides the control and status of HW CRTC block.
|
# It provides the control and status of HW CRTC block.
|
||||||
|
|
||||||
|
|
||||||
CFLAGS_$(AMDDALPATH)/dc/dce120/dce120_resource.o = $(call cc-disable-warning, override-init)
|
CFLAGS_$(AMDDALPATH)/dc/dce120/dce120_resource.o = -Wno-override-init
|
||||||
|
|
||||||
DCE120 = dce120_timing_generator.o
|
DCE120 = dce120_timing_generator.o
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
# Makefile for the 'controller' sub-component of DAL.
|
# Makefile for the 'controller' sub-component of DAL.
|
||||||
# It provides the control and status of HW CRTC block.
|
# It provides the control and status of HW CRTC block.
|
||||||
|
|
||||||
CFLAGS_$(AMDDALPATH)/dc/dce60/dce60_resource.o = $(call cc-disable-warning, override-init)
|
CFLAGS_$(AMDDALPATH)/dc/dce60/dce60_resource.o = -Wno-override-init
|
||||||
|
|
||||||
DCE60 = dce60_timing_generator.o dce60_hw_sequencer.o \
|
DCE60 = dce60_timing_generator.o dce60_hw_sequencer.o \
|
||||||
dce60_resource.o
|
dce60_resource.o
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
# Makefile for the 'controller' sub-component of DAL.
|
# Makefile for the 'controller' sub-component of DAL.
|
||||||
# It provides the control and status of HW CRTC block.
|
# It provides the control and status of HW CRTC block.
|
||||||
|
|
||||||
CFLAGS_$(AMDDALPATH)/dc/dce80/dce80_resource.o = $(call cc-disable-warning, override-init)
|
CFLAGS_$(AMDDALPATH)/dc/dce80/dce80_resource.o = -Wno-override-init
|
||||||
|
|
||||||
DCE80 = dce80_timing_generator.o
|
DCE80 = dce80_timing_generator.o
|
||||||
|
|
||||||
|
@ -33,9 +33,9 @@ endif
|
|||||||
subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
|
subdir-ccflags-$(CONFIG_DRM_I915_WERROR) += -Werror
|
||||||
|
|
||||||
# Fine grained warnings disable
|
# Fine grained warnings disable
|
||||||
CFLAGS_i915_pci.o = $(call cc-disable-warning, override-init)
|
CFLAGS_i915_pci.o = -Wno-override-init
|
||||||
CFLAGS_display/intel_display_device.o = $(call cc-disable-warning, override-init)
|
CFLAGS_display/intel_display_device.o = -Wno-override-init
|
||||||
CFLAGS_display/intel_fbdev.o = $(call cc-disable-warning, override-init)
|
CFLAGS_display/intel_fbdev.o = -Wno-override-init
|
||||||
|
|
||||||
# Support compiling the display code separately for both i915 and xe
|
# Support compiling the display code separately for both i915 and xe
|
||||||
# drivers. Define I915 when building i915.
|
# drivers. Define I915 when building i915.
|
||||||
|
@ -172,8 +172,8 @@ subdir-ccflags-$(CONFIG_DRM_XE_DISPLAY) += \
|
|||||||
-Ddrm_i915_gem_object=xe_bo \
|
-Ddrm_i915_gem_object=xe_bo \
|
||||||
-Ddrm_i915_private=xe_device
|
-Ddrm_i915_private=xe_device
|
||||||
|
|
||||||
CFLAGS_i915-display/intel_fbdev.o = $(call cc-disable-warning, override-init)
|
CFLAGS_i915-display/intel_fbdev.o = -Wno-override-init
|
||||||
CFLAGS_i915-display/intel_display_device.o = $(call cc-disable-warning, override-init)
|
CFLAGS_i915-display/intel_display_device.o = -Wno-override-init
|
||||||
|
|
||||||
# Rule to build SOC code shared with i915
|
# Rule to build SOC code shared with i915
|
||||||
$(obj)/i915-soc/%.o: $(srctree)/drivers/gpu/drm/i915/soc/%.c FORCE
|
$(obj)/i915-soc/%.o: $(srctree)/drivers/gpu/drm/i915/soc/%.c FORCE
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
* the macros available to do this only define GCC 8.
|
* the macros available to do this only define GCC 8.
|
||||||
*/
|
*/
|
||||||
__diag_push();
|
__diag_push();
|
||||||
__diag_ignore(GCC, 8, "-Woverride-init",
|
__diag_ignore_all("-Woverride-init",
|
||||||
"logic to initialize all and then override some is OK");
|
"logic to initialize all and then override some is OK");
|
||||||
static const u16 sh_eth_offset_gigabit[SH_ETH_MAX_REGISTER_OFFSET] = {
|
static const u16 sh_eth_offset_gigabit[SH_ETH_MAX_REGISTER_OFFSET] = {
|
||||||
SH_ETH_OFFSET_DEFAULTS,
|
SH_ETH_OFFSET_DEFAULTS,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0-only
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
# Aspeed pinctrl support
|
# Aspeed pinctrl support
|
||||||
|
|
||||||
ccflags-y += $(call cc-option,-Woverride-init)
|
ccflags-y += -Woverride-init
|
||||||
obj-$(CONFIG_PINCTRL_ASPEED) += pinctrl-aspeed.o pinmux-aspeed.o
|
obj-$(CONFIG_PINCTRL_ASPEED) += pinctrl-aspeed.o pinmux-aspeed.o
|
||||||
obj-$(CONFIG_PINCTRL_ASPEED_G4) += pinctrl-aspeed-g4.o
|
obj-$(CONFIG_PINCTRL_ASPEED_G4) += pinctrl-aspeed-g4.o
|
||||||
obj-$(CONFIG_PINCTRL_ASPEED_G5) += pinctrl-aspeed-g5.o
|
obj-$(CONFIG_PINCTRL_ASPEED_G5) += pinctrl-aspeed-g5.o
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
obj-y += proc.o
|
obj-y += proc.o
|
||||||
|
|
||||||
CFLAGS_task_mmu.o += $(call cc-option,-Wno-override-init,)
|
CFLAGS_task_mmu.o += -Wno-override-init
|
||||||
proc-y := nommu.o task_nommu.o
|
proc-y := nommu.o task_nommu.o
|
||||||
proc-$(CONFIG_MMU) := task_mmu.o
|
proc-$(CONFIG_MMU) := task_mmu.o
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ ifneq ($(CONFIG_BPF_JIT_ALWAYS_ON),y)
|
|||||||
# ___bpf_prog_run() needs GCSE disabled on x86; see 3193c0836f203 for details
|
# ___bpf_prog_run() needs GCSE disabled on x86; see 3193c0836f203 for details
|
||||||
cflags-nogcse-$(CONFIG_X86)$(CONFIG_CC_IS_GCC) := -fno-gcse
|
cflags-nogcse-$(CONFIG_X86)$(CONFIG_CC_IS_GCC) := -fno-gcse
|
||||||
endif
|
endif
|
||||||
CFLAGS_core.o += $(call cc-disable-warning, override-init) $(cflags-nogcse-yy)
|
CFLAGS_core.o += -Wno-override-init $(cflags-nogcse-yy)
|
||||||
|
|
||||||
obj-$(CONFIG_BPF_SYSCALL) += syscall.o verifier.o inode.o helpers.o tnum.o log.o token.o
|
obj-$(CONFIG_BPF_SYSCALL) += syscall.o verifier.o inode.o helpers.o tnum.o log.o token.o
|
||||||
obj-$(CONFIG_BPF_SYSCALL) += bpf_iter.o map_iter.o task_iter.o prog_iter.o link_iter.o
|
obj-$(CONFIG_BPF_SYSCALL) += bpf_iter.o map_iter.o task_iter.o prog_iter.o link_iter.o
|
||||||
|
@ -29,8 +29,7 @@ KCOV_INSTRUMENT_mmzone.o := n
|
|||||||
KCOV_INSTRUMENT_vmstat.o := n
|
KCOV_INSTRUMENT_vmstat.o := n
|
||||||
KCOV_INSTRUMENT_failslab.o := n
|
KCOV_INSTRUMENT_failslab.o := n
|
||||||
|
|
||||||
CFLAGS_init-mm.o += $(call cc-disable-warning, override-init)
|
CFLAGS_init-mm.o += -Wno-override-init
|
||||||
CFLAGS_init-mm.o += $(call cc-disable-warning, initializer-overrides)
|
|
||||||
|
|
||||||
mmu-y := nommu.o
|
mmu-y := nommu.o
|
||||||
mmu-$(CONFIG_MMU) := highmem.o memory.o mincore.o \
|
mmu-$(CONFIG_MMU) := highmem.o memory.o mincore.o \
|
||||||
|
@ -114,6 +114,8 @@ KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
|
|||||||
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
|
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
|
||||||
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
|
||||||
|
|
||||||
|
KBUILD_CFLAGS += -Wno-override-init # alias for -Wno-initializer-overrides in clang
|
||||||
|
|
||||||
ifdef CONFIG_CC_IS_CLANG
|
ifdef CONFIG_CC_IS_CLANG
|
||||||
# Clang before clang-16 would warn on default argument promotions.
|
# Clang before clang-16 would warn on default argument promotions.
|
||||||
ifneq ($(call clang-min-version, 160000),y)
|
ifneq ($(call clang-min-version, 160000),y)
|
||||||
@ -151,10 +153,6 @@ KBUILD_CFLAGS += -Wtype-limits
|
|||||||
KBUILD_CFLAGS += $(call cc-option, -Wmaybe-uninitialized)
|
KBUILD_CFLAGS += $(call cc-option, -Wmaybe-uninitialized)
|
||||||
KBUILD_CFLAGS += $(call cc-option, -Wunused-macros)
|
KBUILD_CFLAGS += $(call cc-option, -Wunused-macros)
|
||||||
|
|
||||||
ifdef CONFIG_CC_IS_CLANG
|
|
||||||
KBUILD_CFLAGS += -Winitializer-overrides
|
|
||||||
endif
|
|
||||||
|
|
||||||
KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN2
|
KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN2
|
||||||
|
|
||||||
else
|
else
|
||||||
@ -164,9 +162,7 @@ KBUILD_CFLAGS += -Wno-missing-field-initializers
|
|||||||
KBUILD_CFLAGS += -Wno-type-limits
|
KBUILD_CFLAGS += -Wno-type-limits
|
||||||
KBUILD_CFLAGS += -Wno-shift-negative-value
|
KBUILD_CFLAGS += -Wno-shift-negative-value
|
||||||
|
|
||||||
ifdef CONFIG_CC_IS_CLANG
|
ifdef CONFIG_CC_IS_GCC
|
||||||
KBUILD_CFLAGS += -Wno-initializer-overrides
|
|
||||||
else
|
|
||||||
KBUILD_CFLAGS += -Wno-maybe-uninitialized
|
KBUILD_CFLAGS += -Wno-maybe-uninitialized
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user