mbox series

[0/4] Make gcc-8.1 and binutils-2.30 the minimum version

Message ID 20250407094116.1339199-1-arnd@kernel.org (mailing list archive)
Headers show
Series Make gcc-8.1 and binutils-2.30 the minimum version | expand

Message

Arnd Bergmann April 7, 2025, 9:41 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

x86 already requires gcc-8.1 since linux-6.15-rc1, which led me to
actually go through all  version checks and make this is the minimum
for all architectures.

Most of the actual resulting changes are actually for raising the
binutils version, which eliminates version checks on x86 and arm64.

Arnd Bergmann (4):
  kbuild: require gcc-8 and binutils-2.30
  raid6: skip avx512 checks
  x86: remove checks for binutils-2.30 and earlier
  arm64: drop binutils version checks

Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Masahiro Yamada <masahiroy@kernel.org>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Nicolas Schier <nicolas@fjasle.eu>
Cc: Takashi Iwai <tiwai@suse.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Uros Bizjak <ubizjak@gmail.com>
Cc: Will Deacon <will@kernel.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-crypto@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-kbuild@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-raid@vger.kernel.org
Cc: x86@kernel.org

 Documentation/admin-guide/README.rst          |  2 +-
 Documentation/kbuild/makefiles.rst            |  4 +-
 Documentation/process/changes.rst             |  4 +-
 .../translations/it_IT/process/changes.rst    |  4 +-
 .../translations/zh_CN/admin-guide/README.rst |  2 +-
 arch/arm64/Kconfig                            | 37 +--------------
 arch/arm64/Makefile                           | 21 +--------
 arch/arm64/include/asm/rwonce.h               |  4 --
 arch/arm64/kvm/Kconfig                        |  1 -
 arch/arm64/lib/xor-neon.c                     |  2 +-
 arch/um/Makefile                              |  4 +-
 arch/x86/Kconfig.assembler                    | 29 ------------
 arch/x86/crypto/Kconfig                       |  2 +-
 arch/x86/crypto/Makefile                      | 12 +++--
 arch/x86/crypto/aes-ctr-avx-x86_64.S          |  2 -
 arch/x86/crypto/aes-xts-avx-x86_64.S          |  2 -
 arch/x86/crypto/aesni-intel_glue.c            | 21 +--------
 arch/x86/crypto/aria-aesni-avx-asm_64.S       | 10 -----
 arch/x86/crypto/aria-aesni-avx2-asm_64.S      | 10 +----
 arch/x86/crypto/aria_aesni_avx2_glue.c        |  4 +-
 arch/x86/crypto/aria_aesni_avx_glue.c         |  4 +-
 arch/x86/crypto/blake2s-core.S                |  4 --
 arch/x86/crypto/blake2s-glue.c                |  6 +--
 arch/x86/crypto/chacha_glue.c                 |  6 +--
 arch/x86/crypto/poly1305-x86_64-cryptogams.pl |  8 ----
 arch/x86/crypto/poly1305_glue.c               |  4 +-
 arch/x86/crypto/sha1_ssse3_glue.c             | 10 -----
 arch/x86/crypto/sha256_ssse3_glue.c           | 10 -----
 include/linux/unroll.h                        |  4 +-
 kernel/gcov/gcc_4_7.c                         |  4 --
 lib/raid6/algos.c                             |  6 ---
 lib/raid6/avx512.c                            |  4 --
 lib/raid6/recov_avx512.c                      |  6 ---
 lib/raid6/test/Makefile                       |  3 --
 lib/test_fortify/Makefile                     |  5 +--
 scripts/Makefile.compiler                     |  2 +-
 scripts/gcc-plugins/gcc-common.h              | 45 -------------------
 scripts/min-tool-version.sh                   |  6 +--
 38 files changed, 36 insertions(+), 278 deletions(-)

Comments

Eric Biggers April 7, 2025, 4:41 p.m. UTC | #1
On Mon, Apr 07, 2025 at 11:41:12AM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> x86 already requires gcc-8.1 since linux-6.15-rc1, which led me to
> actually go through all  version checks and make this is the minimum
> for all architectures.
> 
> Most of the actual resulting changes are actually for raising the
> binutils version, which eliminates version checks on x86 and arm64.
> 
> Arnd Bergmann (4):
>   kbuild: require gcc-8 and binutils-2.30
>   raid6: skip avx512 checks
>   x86: remove checks for binutils-2.30 and earlier
>   arm64: drop binutils version checks

This is intended to supersede the patches from Uros that removed checks for
binutils < 2.25, right?  See:

* https://lore.kernel.org/linux-crypto/20250404074135.520812-1-ubizjak@gmail.com/
* https://lore.kernel.org/linux-crypto/20250404074135.520812-2-ubizjak@gmail.com
* https://lore.kernel.org/linux-crypto/20250404074135.520812-3-ubizjak@gmail.com/

If we can indeed bump up the requirement to 2.30, that would be great.

Just a note though: I recently added VAES and VPCLMULQDQ instructions to
BoringSSL, which increased the binutils requirement of building BoringSSL to
2.30, and this caused issues in a downstream project; e.g. see
https://github.com/briansmith/ring/issues/2463.  Specifically people complained
about being unable to build on Amazon Linux 2 and CentOS/RHEL/Oracle Linux 7.

So I just thought I'd mention that, based on past experience with this sort of
thing, those are the specific cases where it seems people are most likely to be
trying to use binutils < 2.30.

But if those distros are not going to be supported any longer (without
installing newer tools on them), or even are already unsupported due to the gcc
requirement, bumping up the binutils requirement to 2.30 sounds good to me.

- Eric