linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nathan Chancellor <nathan@kernel.org>
To: Nick Desaulniers <ndesaulniers@google.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Joe Perches <joe@perches.com>, Arnd Bergmann <arnd@kernel.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	llvm@lists.linux.dev, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 01/10] Documentation: raise minimum supported version of GCC to 5.1
Date: Fri, 10 Sep 2021 16:55:55 -0700	[thread overview]
Message-ID: <cb42c578-d037-3297-d0c2-ab107b7a838f@kernel.org> (raw)
In-Reply-To: <20210910234047.1019925-2-ndesaulniers@google.com>

On 9/10/2021 4:40 PM, Nick Desaulniers wrote:
> commit fad7cd3310db ("nbd: add the check to prevent overflow in
> __nbd_ioctl()")
> 
> raised an issue from the fallback helpers added in
> 
> commit f0907827a8a9 ("compiler.h: enable builtin overflow checkers and add fallback code")
> 
> Specifically, the helpers for checking whether the results of a
> multiplication overflowed (__unsigned_mul_overflow,
> __signed_add_overflow) use the division operator when
> !COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW. This is problematic for 64b
> operands on 32b hosts.

"hosts" -> "targets" or "architectures"?

It might be worth putting the error that Stephen found here?

> Also, because the macro is type agnostic, it is very difficult to write
> a similarly type generic macro that dispatches to one of:
> * div64_s64
> * div64_u64
> * div_s64
> * div_u64
> 
> Raising the minimum supported versions allows us to remove all of the
> fallback helpers for !COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW, instead
> dispatching the compiler builtins.
> 
> arm64 has already raised the minimum supported GCC version to 5.1, do
> this for all targets now. See the link below for the previous
> discussion.
> 
> Link: https://lore.kernel.org/all/20210909182525.372ee687@canb.auug.org.au/
> Link: https://lore.kernel.org/lkml/CAK7LNASs6dvU6D3jL2GG3jW58fXfaj6VNOe55NJnTB8UPuk2pA@mail.gmail.com/
> Link: https://github.com/ClangBuiltLinux/linux/issues/1438
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Reported-by: Nathan Chancellor <nathan@kernel.org>
> Suggested-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>

Reviewed-by: Nathan Chancellor <nathan@kernel.org>

> ---
>   Documentation/process/changes.rst | 2 +-
>   scripts/min-tool-version.sh       | 8 +-------
>   2 files changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst
> index d3a8557b66a1..e35ab74a0f80 100644
> --- a/Documentation/process/changes.rst
> +++ b/Documentation/process/changes.rst
> @@ -29,7 +29,7 @@ you probably needn't concern yourself with pcmciautils.
>   ====================== ===============  ========================================
>           Program        Minimal version       Command to check the version
>   ====================== ===============  ========================================
> -GNU C                  4.9              gcc --version
> +GNU C                  5.1              gcc --version
>   Clang/LLVM (optional)  10.0.1           clang --version
>   GNU make               3.81             make --version
>   binutils               2.23             ld -v
> diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh
> index 319f92104f56..4edc708baa63 100755
> --- a/scripts/min-tool-version.sh
> +++ b/scripts/min-tool-version.sh
> @@ -17,13 +17,7 @@ binutils)
>   	echo 2.23.0
>   	;;
>   gcc)
> -	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63293
> -	# https://lore.kernel.org/r/20210107111841.GN1551@shell.armlinux.org.uk
> -	if [ "$SRCARCH" = arm64 ]; then
> -		echo 5.1.0
> -	else
> -		echo 4.9.0
> -	fi
> +	echo 5.1.0
>   	;;
>   icc)
>   	# temporary
> 

  reply	other threads:[~2021-09-10 23:56 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-10 23:40 [PATCH 00/10] raise minimum GCC version to 5.1 Nick Desaulniers
2021-09-10 23:40 ` [PATCH 01/10] Documentation: raise minimum supported version of GCC " Nick Desaulniers
2021-09-10 23:55   ` Nathan Chancellor [this message]
2021-09-11  0:16     ` Nick Desaulniers
2021-09-13 16:22   ` Kees Cook
2021-09-10 23:40 ` [PATCH 02/10] compiler.h: drop fallback overflow checkers Nick Desaulniers
2021-09-11  0:04   ` Nathan Chancellor
2021-09-14 15:33     ` Nick Desaulniers
2021-09-14 16:04       ` Nathan Chancellor
2021-09-13 16:21   ` Kees Cook
2021-09-10 23:40 ` [PATCH 03/10] mm/ksm: remove old GCC 4.9+ check Nick Desaulniers
2021-09-11  0:07   ` Nathan Chancellor
2021-09-13 16:22   ` Kees Cook
2021-09-10 23:40 ` [PATCH 04/10] Kconfig.debug: drop GCC 5+ version check for DWARF5 Nick Desaulniers
2021-09-11  0:08   ` Nathan Chancellor
2021-09-13 16:23   ` Kees Cook
2021-09-10 23:40 ` [PATCH 05/10] riscv: remove Kconfig check for GCC version for ARCH_RV64I Nick Desaulniers
2021-09-11  0:09   ` Nathan Chancellor
2021-09-13 16:23   ` Kees Cook
2021-10-05  0:40     ` Palmer Dabbelt
2021-10-05  0:50       ` Kees Cook
2021-10-05  0:57         ` Palmer Dabbelt
2021-09-10 23:40 ` [PATCH 06/10] powerpc: remove GCC version check for UPD_CONSTR Nick Desaulniers
2021-09-10 23:48   ` Nathan Chancellor
2021-09-11 10:43     ` Michael Ellerman
2021-09-11 15:34   ` Christophe Leroy
2021-09-10 23:40 ` [PATCH 07/10] arm64: remove GCC version check for ARCH_SUPPORTS_INT128 Nick Desaulniers
2021-09-11  0:10   ` Nathan Chancellor
2021-09-13 16:25   ` Kees Cook
2021-09-16 13:23   ` Catalin Marinas
2021-09-10 23:40 ` [PATCH 08/10] Makefile: drop GCC < 5 -fno-var-tracking-assignments workaround Nick Desaulniers
2021-09-11  0:11   ` Nathan Chancellor
2021-09-13 16:25   ` Kees Cook
2021-09-10 23:40 ` [PATCH 09/10] compiler-gcc.h: drop checks for older GCC versions Nick Desaulniers
2021-09-11  0:12   ` Nathan Chancellor
2021-09-13 16:26   ` Kees Cook
2021-09-10 23:40 ` [PATCH 10/10] vmlinux.lds.h: remove old check for GCC 4.9 Nick Desaulniers
2021-09-10 23:50   ` Nathan Chancellor
2021-09-14 15:21     ` Nick Desaulniers
2021-09-13 16:28   ` Kees Cook
2021-09-11  2:19 ` [PATCH 00/10] raise minimum GCC version to 5.1 Kees Cook
2021-09-11 10:42   ` Michael Ellerman
2021-09-13  9:49 ` Pavel Machek
2021-09-13 16:20   ` Kees Cook
2021-09-13 11:27 ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cb42c578-d037-3297-d0c2-ab107b7a838f@kernel.org \
    --to=nathan@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@kernel.org \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=llvm@lists.linux.dev \
    --cc=masahiroy@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=sfr@canb.auug.org.au \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).