Commit Graph

5 Commits

Author SHA1 Message Date
Thomas Huth f2df22a8c8 scripts/min-tool-version.sh: raise minimum clang version to 14.0.0 for s390
JIRA: https://issues.redhat.com/browse/RHEL-29741

commit 8218827b73c6e41029438a2d3cc573286beee914
Author: Heiko Carstens <hca@linux.ibm.com>
Date:   Wed May 11 14:05:32 2022 +0200

    scripts/min-tool-version.sh: raise minimum clang version to 14.0.0 for s390

    Before version 14.0.0 llvm's integrated assembler fails to handle some
    displacement variants:

    arch/s390/purgatory/head.S:108:10: error: invalid operand for instruction
     lg %r11,kernel_type-.base_crash(%r13)

    Instead of working around this and given that this is already fixed
    raise the minimum clang version from 13.0.0 to 14.0.0.

    Acked-by: Nick Desaulniers <ndesaulniers@google.com>
    Tested-by: Nathan Chancellor <nathan@kernel.org>
    Tested-by: Nick Desaulniers <ndesaulniers@google.com>
    Link: https://reviews.llvm.org/D113341
    Link: https://lore.kernel.org/r/20220511120532.2228616-9-hca@linux.ibm.com
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>

Signed-off-by: Thomas Huth <thuth@redhat.com>
2024-05-10 10:49:46 +02:00
Prarit Bhargava 5102a6b7f9 Remove Intel compiler support
JIRA: https://issues.redhat.com/browse/RHEL-25415

Conflicts: Minor drift issues in text comments.

commit 95207db8166ab95c42a03fdc5e3abd212c9987dc
Author: Masahiro Yamada <masahiroy@kernel.org>
Date:   Mon Oct 17 03:23:49 2022 +0900

    Remove Intel compiler support

    include/linux/compiler-intel.h had no update in the past 3 years.

    We often forget about the third C compiler to build the kernel.

    For example, commit a0a12c3ed057 ("asm goto: eradicate CC_HAS_ASM_GOTO")
    only mentioned GCC and Clang.

    init/Kconfig defines CC_IS_GCC and CC_IS_CLANG but not CC_IS_ICC,
    and nobody has reported any issue.

    I guess the Intel Compiler support is broken, and nobody is caring
    about it.

    Harald Arnesen pointed out ICC (classic Intel C/C++ compiler) is
    deprecated:

        $ icc -v
        icc: remark #10441: The Intel(R) C++ Compiler Classic (ICC) is
        deprecated and will be removed from product release in the second half
        of 2023. The Intel(R) oneAPI DPC++/C++ Compiler (ICX) is the recommended
        compiler moving forward. Please transition to use this compiler. Use
        '-diag-disable=10441' to disable this message.
        icc version 2021.7.0 (gcc version 12.1.0 compatibility)

    Arnd Bergmann provided a link to the article, "Intel C/C++ compilers
    complete adoption of LLVM".

    lib/zstd/common/compiler.h and lib/zstd/compress/zstd_fast.c were kept
    untouched for better sync with https://github.com/facebook/zstd

    Link: https://www.intel.com/content/www/us/en/developer/articles/technical/adoption-of-llvm-complete-icx.html
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Reviewed-by: Miguel Ojeda <ojeda@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Omitted-fix: 1d6f52a7c847 doc:it_IT: translation alignment
	Not necessary for this changeset

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
2024-03-20 09:42:44 -04:00
Ming Lei 9b3f6fdadc Documentation: raise minimum supported version of GCC to 5.1
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2018403

commit 76ae847497bc5207c479de5e2ac487270008b19b
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Fri Sep 10 16:40:38 2021 -0700

    Documentation: raise minimum supported version of GCC to 5.1

    commit fad7cd3310db ("nbd: add the check to prevent overflow in
    __nbd_ioctl()") raised an issue from the fallback helpers added in
    commit f0907827a8 ("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.

    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: Kees Cook <keescook@chromium.org>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Signed-off-by: Ming Lei <ming.lei@redhat.com>
2021-12-08 23:30:27 +08:00
Nathan Chancellor e2bc3e91d9 scripts/min-tool-version.sh: Raise minimum clang version to 13.0.0 for s390
clang versions prior to the current development version of 13.0.0 cannot
compile s390 after commit 3abbdfde5a65 ("s390/bitops: use register pair
instead of register asm") and the s390 maintainers do not intend to work
around this in the kernel. Codify this in scripts/min-tool-version.sh
similar to arm64 with GCC 5.1.0 so that there are no reports of broken
builds.

[hca@linux.ibm.com: breaking compatibility with older clang compilers
 is intended to finally make use of a feature which allows the
 compiler to allocate even/odd register pairs. This is possible since
 a very long time with gcc, but only since llvm-project commit
 d058262b1471 ("[SystemZ] Support i128 inline asm operands.") with
 clang. Using that feature allows to get rid of error prone register
 asm statements, of which the above named kernel commit is only the
 first of a larger not yet complete series.]

Reported-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Acked-by: Nick Desaulniers <ndesaulniers@google.com>
Acked-by: Masahiro Yamada <masahiroy@kernel.org>
Link: https://lore.kernel.org/r/20210617193139.856957-1-nathan@kernel.org
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
2021-06-28 11:18:28 +02:00
Masahiro Yamada e24b3ffcf4 kbuild: collect minimum tool versions into scripts/min-tool-version.sh
The kernel build uses various tools, many of which are provided by the
same software suite, for example, LLVM and Binutils.

When you raise the minimum version of Clang/LLVM, you need to update
clang_min_version in scripts/cc-version.sh and also lld_min_version in
scripts/ld-version.sh.

Kbuild can handle CC=clang and LD=ld.lld independently, but it does not
make much sense to maintain their versions separately.

Let's create a central place of minimum tool versions so you do not need
to touch multiple files. scripts/min-tool-version.sh prints the minimum
version of the given tool.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
2021-04-25 05:14:26 +09:00