-Wunaligned-access is a new warning in clang that is default enabled for arm and arm64 under certain circumstances within the clang frontend (see LLVM commit below). Under an ARCH=arm allmodconfig, there are 1284 total/70 unique instances of this warning (most of the instances are in header files), which is quite noisy. To keep the build green through CONFIG_WERROR, only allow this warning with W=2, which seems appropriate according to its description: "warnings which occur quite often but may still be relevant". This intentionally does not use the -Wno-... + -W... pattern that the rest of the Makefile does because this warning is not enabled for anything other than certain arm and arm64 configurations within clang so it should only be "not disabled", rather than explicitly enabled, so that other architectures are not disturbed by the warning. Cc: stable@xxxxxxxxxxxxxxx Link: https://github.com/llvm/llvm-project/commit/35737df4dcd28534bd3090157c224c19b501278a Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx> --- scripts/Makefile.extrawarn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/Makefile.extrawarn b/scripts/Makefile.extrawarn index d53825503874..5f75fec4d5ac 100644 --- a/scripts/Makefile.extrawarn +++ b/scripts/Makefile.extrawarn @@ -70,6 +70,20 @@ KBUILD_CFLAGS += $(call cc-option, -Wunused-macros) KBUILD_CPPFLAGS += -DKBUILD_EXTRA_WARN2 +else + +ifdef CONFIG_CC_IS_CLANG +# While this warning is architecture agnostic, it is only default enabled for +# 32-bit and 64-bit ARM under certain conditions within clang: +# +# https://github.com/llvm/llvm-project/commit/35737df4dcd28534bd3090157c224c19b501278a +# +# To allow it to be disabled under a normal build or W=1 but show up under W=2 +# for those configurations, disable it when W=2 is not set, rather than enable +# -Wunaligned-access in the above block explicitly. +KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access) +endif + endif # base-commit: 26291c54e111ff6ba87a164d85d4a4e134b7315c -- 2.35.1