diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc index be5493d16f..cfcd44e8a7 100755 --- a/util/crossgcc/buildgcc +++ b/util/crossgcc/buildgcc @@ -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) diff --git a/util/crossgcc/patches/clang-18.1.8.src_x86_baremetal.patch b/util/crossgcc/patches/clang-18.1.8.src_x86_baremetal.patch deleted file mode 100644 index 61c608cbbe..0000000000 --- a/util/crossgcc/patches/clang-18.1.8.src_x86_baremetal.patch +++ /dev/null @@ -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); - } diff --git a/util/crossgcc/patches/clang-21.1.8.src_x86_baremetal.patch b/util/crossgcc/patches/clang-21.1.8.src_x86_baremetal.patch new file mode 100644 index 0000000000..809b290339 --- /dev/null +++ b/util/crossgcc/patches/clang-21.1.8.src_x86_baremetal.patch @@ -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 { diff --git a/util/crossgcc/sum/clang-18.1.8.src.tar.xz.cksum b/util/crossgcc/sum/clang-18.1.8.src.tar.xz.cksum deleted file mode 100644 index a517ab901a..0000000000 --- a/util/crossgcc/sum/clang-18.1.8.src.tar.xz.cksum +++ /dev/null @@ -1 +0,0 @@ -581e929ba0d9fafc555081ab18d8c3fdf4478ac2 tarballs/clang-18.1.8.src.tar.xz diff --git a/util/crossgcc/sum/clang-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/clang-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..243e5e2616 --- /dev/null +++ b/util/crossgcc/sum/clang-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +052b4b826aba886d0a3fada696445d2fb1ffec88 tarballs/clang-21.1.8.src.tar.xz diff --git a/util/crossgcc/sum/clang-tools-extra-18.1.8.src.tar.xz.cksum b/util/crossgcc/sum/clang-tools-extra-18.1.8.src.tar.xz.cksum deleted file mode 100644 index 6b9b67cb64..0000000000 --- a/util/crossgcc/sum/clang-tools-extra-18.1.8.src.tar.xz.cksum +++ /dev/null @@ -1 +0,0 @@ -32923b812700526b76451384e4662ca45360d564 tarballs/clang-tools-extra-18.1.8.src.tar.xz diff --git a/util/crossgcc/sum/clang-tools-extra-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/clang-tools-extra-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..0e31f14c51 --- /dev/null +++ b/util/crossgcc/sum/clang-tools-extra-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +2429c7b1836e6db177e26cf4c85b5a817cda7c62 tarballs/clang-tools-extra-21.1.8.src.tar.xz diff --git a/util/crossgcc/sum/cmake-18.1.8.src.tar.xz.cksum b/util/crossgcc/sum/cmake-18.1.8.src.tar.xz.cksum deleted file mode 100644 index d0e63313d9..0000000000 --- a/util/crossgcc/sum/cmake-18.1.8.src.tar.xz.cksum +++ /dev/null @@ -1 +0,0 @@ -1ea03e355b705b4cada3051bd7301a57daa19283 tarballs/cmake-18.1.8.src.tar.xz diff --git a/util/crossgcc/sum/cmake-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/cmake-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..6317498355 --- /dev/null +++ b/util/crossgcc/sum/cmake-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +da308aa4c0e80835e123771ebe3e5fbfc5244a45 tarballs/cmake-21.1.8.src.tar.xz diff --git a/util/crossgcc/sum/compiler-rt-18.1.8.src.tar.xz.cksum b/util/crossgcc/sum/compiler-rt-18.1.8.src.tar.xz.cksum deleted file mode 100644 index 711ef353c4..0000000000 --- a/util/crossgcc/sum/compiler-rt-18.1.8.src.tar.xz.cksum +++ /dev/null @@ -1 +0,0 @@ -6ecbfa5516b60adb4e4e60f991b0d8ddf5aab12a tarballs/compiler-rt-18.1.8.src.tar.xz diff --git a/util/crossgcc/sum/compiler-rt-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/compiler-rt-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..2362125c5a --- /dev/null +++ b/util/crossgcc/sum/compiler-rt-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +141a3877eedd036349feaddc0d303abeeff96b6c tarballs/compiler-rt-21.1.8.src.tar.xz diff --git a/util/crossgcc/sum/libunwind-18.1.8.src.tar.xz.cksum b/util/crossgcc/sum/libunwind-18.1.8.src.tar.xz.cksum deleted file mode 100644 index d3819e303a..0000000000 --- a/util/crossgcc/sum/libunwind-18.1.8.src.tar.xz.cksum +++ /dev/null @@ -1 +0,0 @@ -5bee6cd2847f6d468861c78a21236e1c6fdc8374 tarballs/libunwind-18.1.8.src.tar.xz diff --git a/util/crossgcc/sum/libunwind-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/libunwind-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..6b0516a6b2 --- /dev/null +++ b/util/crossgcc/sum/libunwind-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +c71485804e2a8e531469ee461fc312218686d641 tarballs/libunwind-21.1.8.src.tar.xz diff --git a/util/crossgcc/sum/lld-18.1.8.src.tar.xz.cksum b/util/crossgcc/sum/lld-18.1.8.src.tar.xz.cksum deleted file mode 100644 index 490a83596e..0000000000 --- a/util/crossgcc/sum/lld-18.1.8.src.tar.xz.cksum +++ /dev/null @@ -1 +0,0 @@ -1cf1fa9848b05a07d3d52e69949d44003f2ab2af tarballs/lld-18.1.8.src.tar.xz diff --git a/util/crossgcc/sum/lld-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/lld-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..6e98bb89dc --- /dev/null +++ b/util/crossgcc/sum/lld-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +c41039defb66d59d292567fe1d3e4d28fc2dec70 tarballs/lld-21.1.8.src.tar.xz diff --git a/util/crossgcc/sum/llvm-18.1.8.src.tar.xz.cksum b/util/crossgcc/sum/llvm-18.1.8.src.tar.xz.cksum deleted file mode 100644 index 4845fb5b01..0000000000 --- a/util/crossgcc/sum/llvm-18.1.8.src.tar.xz.cksum +++ /dev/null @@ -1 +0,0 @@ -f9befa4cbef3f688ab48fca42449e13c5bcb872d tarballs/llvm-18.1.8.src.tar.xz diff --git a/util/crossgcc/sum/llvm-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/llvm-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..a4ca09f05e --- /dev/null +++ b/util/crossgcc/sum/llvm-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +5aea9c8a3b1f1fa7ddebc2d2cc6742d4a1ee569e tarballs/llvm-21.1.8.src.tar.xz diff --git a/util/crossgcc/sum/runtimes-18.1.8.src.tar.xz.cksum b/util/crossgcc/sum/runtimes-18.1.8.src.tar.xz.cksum deleted file mode 100644 index fbee9941d1..0000000000 --- a/util/crossgcc/sum/runtimes-18.1.8.src.tar.xz.cksum +++ /dev/null @@ -1 +0,0 @@ -4a5ea2f22b2d81467e739f4b070cf7ff52785856 tarballs/runtimes-18.1.8.src.tar.xz diff --git a/util/crossgcc/sum/runtimes-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/runtimes-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..0022a20757 --- /dev/null +++ b/util/crossgcc/sum/runtimes-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +2edc085c606ef464cde44b5cbfb5727c59ae2fd3 tarballs/runtimes-21.1.8.src.tar.xz diff --git a/util/crossgcc/sum/third-party-21.1.8.src.tar.xz.cksum b/util/crossgcc/sum/third-party-21.1.8.src.tar.xz.cksum new file mode 100644 index 0000000000..654980e1a1 --- /dev/null +++ b/util/crossgcc/sum/third-party-21.1.8.src.tar.xz.cksum @@ -0,0 +1 @@ +a1a50bb1f6a02aa82ef6de5942b164061f9acbc4 tarballs/third-party-21.1.8.src.tar.xz