util/crossgcc: Update clang to 21.1.8
The current clang version cannot be built using GCC-15 so switch to a more recent release. It also adds a new dependency called third party. Its used in various LLVM components and is needed to build clang. Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: I0f2ebc214726fd4ae4f7bba50a662dd5cb89a718 Reviewed-on: https://review.coreboot.org/c/coreboot/+/89377 Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
0f9940bf89
commit
235bb1e617
20 changed files with 42 additions and 40 deletions
|
|
@ -49,7 +49,7 @@ NASM_VERSION=2.16.03 # x86 assembly
|
|||
IASL_VERSION=20250807 # ACPI compiler
|
||||
|
||||
# Clang/LLVM Toolchain (alternative to GCC, built separately)
|
||||
CLANG_VERSION=18.1.8
|
||||
CLANG_VERSION=21.1.8
|
||||
CMAKE_VERSION=4.0.3 # Required for building Clang
|
||||
|
||||
# Architecture-specific options
|
||||
|
|
@ -72,6 +72,7 @@ CTE_ARCHIVE="clang-tools-extra-${CLANG_VERSION}.src.tar.xz"
|
|||
LLVMCMAKE_ARCHIVE="cmake-${CLANG_VERSION}.src.tar.xz"
|
||||
LIBUNWIND_ARCHIVE="libunwind-${CLANG_VERSION}.src.tar.xz"
|
||||
RUNTIMES_ARCHIVE="runtimes-${CLANG_VERSION}.src.tar.xz"
|
||||
THIRD_PARTY_ARCHIVE="third-party-${CLANG_VERSION}.src.tar.xz"
|
||||
CMAKE_ARCHIVE="cmake-${CMAKE_VERSION}.tar.gz"
|
||||
NASM_ARCHIVE="nasm-${NASM_VERSION}.tar.bz2"
|
||||
|
||||
|
|
@ -96,6 +97,7 @@ LLVMCMAKE_BASE_URL="https://github.com/llvm/llvm-project/releases/download/llvmo
|
|||
LLD_BASE_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}"
|
||||
LIBUNWIND_BASE_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}"
|
||||
RUNTIMES_BASE_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}"
|
||||
THIRD_PARTY_BASE_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}"
|
||||
CMAKE_BASE_URL="https://cmake.org/files/v${CMAKE_VERSION%.*}"
|
||||
NASM_BASE_URL="https://www.nasm.us/pub/nasm/releasebuilds/${NASM_VERSION}"
|
||||
|
||||
|
|
@ -104,7 +106,8 @@ ALL_ARCHIVES="$GMP_BASE_URL/$GMP_ARCHIVE $MPFR_BASE_URL/$MPFR_ARCHIVE $MPC_BASE_
|
|||
$LLD_BASE_URL/$LLD_ARCHIVE $LLVM_BASE_URL/$LLVM_ARCHIVE $CLANG_BASE_URL/$CLANG_ARCHIVE \
|
||||
$LLVMCMAKE_BASE_URL/$LLVMCMAKE_ARCHIVE $CRT_BASE_URL/$CRT_ARCHIVE $CTE_BASE_URL/$CTE_ARCHIVE \
|
||||
$LIBUNWIND_BASE_URL/$LIBUNWIND_ARCHIVE $RUNTIMES_BASE_URL/$RUNTIMES_ARCHIVE \
|
||||
$CMAKE_BASE_URL/$CMAKE_ARCHIVE $NASM_BASE_URL/$NASM_ARCHIVE $LIBSTDCXX_BASE_URL/$LIBSTDCXX_ARCHIVE"
|
||||
$THIRD_PARTY_BASE_URL/$THIRD_PARTY_ARCHIVE $CMAKE_BASE_URL/$CMAKE_ARCHIVE \
|
||||
$NASM_BASE_URL/$NASM_ARCHIVE $LIBSTDCXX_BASE_URL/$LIBSTDCXX_ARCHIVE"
|
||||
|
||||
# GCC toolchain directories
|
||||
GMP_DIR="gmp-${GMP_VERSION}"
|
||||
|
|
@ -125,6 +128,7 @@ CTE_DIR="clang-tools-extra-${CLANG_VERSION}.src"
|
|||
LLVMCMAKE_DIR="cmake-${CLANG_VERSION}.src"
|
||||
LIBUNWIND_DIR="libunwind-${CLANG_VERSION}.src"
|
||||
RUNTIMES_DIR="runtimes-${CLANG_VERSION}.src"
|
||||
THIRD_PARTY_DIR="third-party-${CLANG_VERSION}.src"
|
||||
CMAKE_DIR="cmake-${CMAKE_VERSION}"
|
||||
NASM_DIR="nasm-${NASM_VERSION}"
|
||||
|
||||
|
|
@ -953,6 +957,7 @@ build_LLVM() {
|
|||
ln -nsf "$LLVMCMAKE_DIR" ../cmake
|
||||
ln -nsf "$LIBUNWIND_DIR" ../libunwind
|
||||
ln -nsf "$RUNTIMES_DIR" ../runtimes
|
||||
ln -nsf "$THIRD_PARTY_DIR" ../third-party
|
||||
|
||||
$CMAKE -G "Unix Makefiles" \
|
||||
-DCMAKE_INSTALL_PREFIX="$DESTDIR$TARGETDIR" \
|
||||
|
|
@ -1109,7 +1114,7 @@ case "$PACKAGE" in
|
|||
CLANG|clang)
|
||||
NAME="LLVM clang"
|
||||
LLVM_VERSION=${CLANG_VERSION}
|
||||
PACKAGES="CMAKE LLVM CLANG CRT CTE LLVMCMAKE LLD LIBUNWIND RUNTIMES"
|
||||
PACKAGES="CMAKE LLVM CLANG CRT CTE LLVMCMAKE LLD LIBUNWIND RUNTIMES THIRD_PARTY"
|
||||
CMAKE=${DESTDIR}${TARGETDIR}/bin/cmake
|
||||
;;
|
||||
IASL|iasl)
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
diff --git a/lib/Driver/ToolChains/BareMetal.cpp b/lib/Driver/ToolChains/BareMetal.cpp
|
||||
index 852e0442..eb84a785 100644
|
||||
--- a/lib/Driver/ToolChains/BareMetal.cpp
|
||||
+++ b/lib/Driver/ToolChains/BareMetal.cpp
|
||||
@@ -169,6 +169,12 @@ static bool isPPCBareMetal(const llvm::Triple &Triple) {
|
||||
Triple.getEnvironment() == llvm::Triple::EABI;
|
||||
}
|
||||
|
||||
+/// Is the triple x86_32 or x86_64 -*-none-elf?
|
||||
+static bool isX86BareMetal(const llvm::Triple &Triple) {
|
||||
+ return Triple.isX86() && Triple.getOS() == llvm::Triple::UnknownOS &&
|
||||
+ Triple.getEnvironmentName() == "elf";
|
||||
+}
|
||||
+
|
||||
static void findMultilibsFromYAML(const ToolChain &TC, const Driver &D,
|
||||
StringRef MultilibPath, const ArgList &Args,
|
||||
DetectedMultilibs &Result) {
|
||||
@@ -234,9 +240,10 @@ void BareMetal::findMultilibs(const Driver &D, const llvm::Triple &Triple,
|
||||
|
||||
bool BareMetal::handlesTarget(const llvm::Triple &Triple) {
|
||||
return isARMBareMetal(Triple) || isAArch64BareMetal(Triple) ||
|
||||
- isRISCVBareMetal(Triple) || isPPCBareMetal(Triple);
|
||||
+ isRISCVBareMetal(Triple) || isPPCBareMetal(Triple) || isX86BareMetal(Triple);
|
||||
}
|
||||
|
||||
+
|
||||
Tool *BareMetal::buildLinker() const {
|
||||
return new tools::baremetal::Linker(*this);
|
||||
}
|
||||
25
util/crossgcc/patches/clang-21.1.8.src_x86_baremetal.patch
Normal file
25
util/crossgcc/patches/clang-21.1.8.src_x86_baremetal.patch
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
diff -u a/lib/Driver/ToolChains/BareMetal.cpp b/lib/Driver/ToolChains/BareMetal.cpp
|
||||
--- a/lib/Driver/ToolChains/BareMetal.cpp
|
||||
+++ b/lib/Driver/ToolChains/BareMetal.cpp
|
||||
@@ -51,6 +51,12 @@
|
||||
Triple.getEnvironment() == llvm::Triple::EABI;
|
||||
}
|
||||
|
||||
+/// Is the triple x86_32 or x86_64 -*-none-elf?
|
||||
+static bool isX86BareMetal(const llvm::Triple &Triple) {
|
||||
+ return Triple.isX86() && Triple.getOS() == llvm::Triple::UnknownOS &&
|
||||
+ Triple.getEnvironmentName() == "elf";
|
||||
+}
|
||||
+
|
||||
static bool findRISCVMultilibs(const Driver &D,
|
||||
const llvm::Triple &TargetTriple,
|
||||
const ArgList &Args, DetectedMultilibs &Result) {
|
||||
@@ -351,7 +357,7 @@
|
||||
bool BareMetal::handlesTarget(const llvm::Triple &Triple) {
|
||||
return arm::isARMEABIBareMetal(Triple) ||
|
||||
aarch64::isAArch64BareMetal(Triple) || isRISCVBareMetal(Triple) ||
|
||||
- isPPCBareMetal(Triple);
|
||||
+ isPPCBareMetal(Triple) || isX86BareMetal(Triple);
|
||||
}
|
||||
|
||||
Tool *BareMetal::buildLinker() const {
|
||||
|
|
@ -1 +0,0 @@
|
|||
581e929ba0d9fafc555081ab18d8c3fdf4478ac2 tarballs/clang-18.1.8.src.tar.xz
|
||||
1
util/crossgcc/sum/clang-21.1.8.src.tar.xz.cksum
Normal file
1
util/crossgcc/sum/clang-21.1.8.src.tar.xz.cksum
Normal file
|
|
@ -0,0 +1 @@
|
|||
052b4b826aba886d0a3fada696445d2fb1ffec88 tarballs/clang-21.1.8.src.tar.xz
|
||||
|
|
@ -1 +0,0 @@
|
|||
32923b812700526b76451384e4662ca45360d564 tarballs/clang-tools-extra-18.1.8.src.tar.xz
|
||||
|
|
@ -0,0 +1 @@
|
|||
2429c7b1836e6db177e26cf4c85b5a817cda7c62 tarballs/clang-tools-extra-21.1.8.src.tar.xz
|
||||
|
|
@ -1 +0,0 @@
|
|||
1ea03e355b705b4cada3051bd7301a57daa19283 tarballs/cmake-18.1.8.src.tar.xz
|
||||
1
util/crossgcc/sum/cmake-21.1.8.src.tar.xz.cksum
Normal file
1
util/crossgcc/sum/cmake-21.1.8.src.tar.xz.cksum
Normal file
|
|
@ -0,0 +1 @@
|
|||
da308aa4c0e80835e123771ebe3e5fbfc5244a45 tarballs/cmake-21.1.8.src.tar.xz
|
||||
|
|
@ -1 +0,0 @@
|
|||
6ecbfa5516b60adb4e4e60f991b0d8ddf5aab12a tarballs/compiler-rt-18.1.8.src.tar.xz
|
||||
1
util/crossgcc/sum/compiler-rt-21.1.8.src.tar.xz.cksum
Normal file
1
util/crossgcc/sum/compiler-rt-21.1.8.src.tar.xz.cksum
Normal file
|
|
@ -0,0 +1 @@
|
|||
141a3877eedd036349feaddc0d303abeeff96b6c tarballs/compiler-rt-21.1.8.src.tar.xz
|
||||
|
|
@ -1 +0,0 @@
|
|||
5bee6cd2847f6d468861c78a21236e1c6fdc8374 tarballs/libunwind-18.1.8.src.tar.xz
|
||||
1
util/crossgcc/sum/libunwind-21.1.8.src.tar.xz.cksum
Normal file
1
util/crossgcc/sum/libunwind-21.1.8.src.tar.xz.cksum
Normal file
|
|
@ -0,0 +1 @@
|
|||
c71485804e2a8e531469ee461fc312218686d641 tarballs/libunwind-21.1.8.src.tar.xz
|
||||
|
|
@ -1 +0,0 @@
|
|||
1cf1fa9848b05a07d3d52e69949d44003f2ab2af tarballs/lld-18.1.8.src.tar.xz
|
||||
1
util/crossgcc/sum/lld-21.1.8.src.tar.xz.cksum
Normal file
1
util/crossgcc/sum/lld-21.1.8.src.tar.xz.cksum
Normal file
|
|
@ -0,0 +1 @@
|
|||
c41039defb66d59d292567fe1d3e4d28fc2dec70 tarballs/lld-21.1.8.src.tar.xz
|
||||
|
|
@ -1 +0,0 @@
|
|||
f9befa4cbef3f688ab48fca42449e13c5bcb872d tarballs/llvm-18.1.8.src.tar.xz
|
||||
1
util/crossgcc/sum/llvm-21.1.8.src.tar.xz.cksum
Normal file
1
util/crossgcc/sum/llvm-21.1.8.src.tar.xz.cksum
Normal file
|
|
@ -0,0 +1 @@
|
|||
5aea9c8a3b1f1fa7ddebc2d2cc6742d4a1ee569e tarballs/llvm-21.1.8.src.tar.xz
|
||||
|
|
@ -1 +0,0 @@
|
|||
4a5ea2f22b2d81467e739f4b070cf7ff52785856 tarballs/runtimes-18.1.8.src.tar.xz
|
||||
1
util/crossgcc/sum/runtimes-21.1.8.src.tar.xz.cksum
Normal file
1
util/crossgcc/sum/runtimes-21.1.8.src.tar.xz.cksum
Normal file
|
|
@ -0,0 +1 @@
|
|||
2edc085c606ef464cde44b5cbfb5727c59ae2fd3 tarballs/runtimes-21.1.8.src.tar.xz
|
||||
1
util/crossgcc/sum/third-party-21.1.8.src.tar.xz.cksum
Normal file
1
util/crossgcc/sum/third-party-21.1.8.src.tar.xz.cksum
Normal file
|
|
@ -0,0 +1 @@
|
|||
a1a50bb1f6a02aa82ef6de5942b164061f9acbc4 tarballs/third-party-21.1.8.src.tar.xz
|
||||
Loading…
Add table
Add a link
Reference in a new issue