Re: [PATCH 1/4] kbuild: remove cc-option test of -fno-strict-overflow

From: Nathan Chancellor
Date: Thu Sep 10 2020 - 12:31:51 EST


On Thu, Sep 10, 2020 at 10:51:17PM +0900, Masahiro Yamada wrote:
> The minimal compiler versions, GCC 4.9 and Clang 10 support this flag.
>
> Here is the godbolt:
> https://godbolt.org/z/odq8h9
>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>

Appeared in clang 3.0.0 in commit 6e50103acda2b918545f30141edeb991d766f2a4.

Reviewed-by: Nathan Chancellor <natechancellor@xxxxxxxxx>

> ---
>
> Makefile | 2 +-
> arch/arm64/kernel/vdso32/Makefile | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 4b5a305e30d2..059b36f2ea53 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -922,7 +922,7 @@ KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
> KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
>
> # disable invalid "can't wrap" optimizations for signed / pointers
> -KBUILD_CFLAGS += $(call cc-option,-fno-strict-overflow)
> +KBUILD_CFLAGS += -fno-strict-overflow
>
> # clang sets -fmerge-all-constants by default as optimization, but this
> # is non-conforming behavior for C and in fact breaks the kernel, so we
> diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> index d6adb4677c25..dfffd55175a3 100644
> --- a/arch/arm64/kernel/vdso32/Makefile
> +++ b/arch/arm64/kernel/vdso32/Makefile
> @@ -90,7 +90,7 @@ VDSO_CFLAGS += -O2
> # Some useful compiler-dependent flags from top-level Makefile
> VDSO_CFLAGS += $(call cc32-option,-Wdeclaration-after-statement,)
> VDSO_CFLAGS += $(call cc32-option,-Wno-pointer-sign)
> -VDSO_CFLAGS += $(call cc32-option,-fno-strict-overflow)
> +VDSO_CFLAGS += -fno-strict-overflow
> VDSO_CFLAGS += $(call cc32-option,-Werror=strict-prototypes)
> VDSO_CFLAGS += $(call cc32-option,-Werror=date-time)
> VDSO_CFLAGS += $(call cc32-option,-Werror=incompatible-pointer-types)
> --
> 2.25.1
>