`](https://doc.rust-lang.org/stable/std/sync/struct.LazyLock.html#impl-From%3CT%3E-for-LazyLock%3CT,+F%3E)
+- [`core::range::RangeToInclusive`](https://doc.rust-lang.org/stable/core/range/struct.RangeToInclusive.html)
+- [`core::range::RangeToInclusiveIter`](https://doc.rust-lang.org/stable/core/range/struct.RangeToInclusiveIter.html)
+- [`core::range::RangeFrom`](https://doc.rust-lang.org/stable/core/ops/struct.RangeFrom.html)
+- [`core::range::RangeFromIter`](https://doc.rust-lang.org/stable/core/ops/struct.RangeFromIter.html)
+- [`core::range::Range`](https://doc.rust-lang.org/stable/std/range/struct.Range.html)
+- [`core::range::RangeIter`](https://doc.rust-lang.org/stable/std/range/struct.RangeIter.html)
+
+
+
+Cargo
+-----
+- [Allow a dependency to specify both a git repository and an alternate registry.](https://github.com/rust-lang/cargo/pull/16810/) Just like with crates.io, the git repository will be used locally, but the registry version will be used when published.
+- [Added `target.'cfg(..)'.rustdocflags` support in configuration.](https://github.com/rust-lang/cargo/pull/16846)
+- Fixed [CVE-2026-5222](https://blog.rust-lang.org/2026/05/25/cve-2026-5222/) and [CVE-2026-5223](https://blog.rust-lang.org/2026/05/25/cve-2026-5223/).
+
+
+
+Rustdoc
+-----
+- [Deprecation notes are now rendered like any other documentation](https://github.com/rust-lang/rust/pull/149931). Previously they used the css `white-space: pre-wrap;` property and stripped any `` elements from the rendered html, however this caused issues and unintuitive behavior. The new behavior should be more predictable, however some multi-line deprecation notes will now be rendered as as single lines. If this is undesirable, you can use the standard markdown method of forcing a linebreak, which is two spaces followed by a newline (`"\n"`).
+- [Don't emit rustdoc `missing_doc_code_examples` lint on impl items](https://github.com/rust-lang/rust/pull/154048)
+- [Separate methods and associated functions in sidebar](https://github.com/rust-lang/rust/pull/154644)
+
+
+
+Compatibility Notes
+-------------------
+- [Fix layout of `#[repr(Int)]` enums in some edge cases involving fields of uninhabited zero-sized types](https://github.com/rust-lang/rust/pull/146989)
+- [Prevent unsize-coercing into `Pin` where `Foo` doesn't implement `Deref`. Some such coercions were previously allowed, but produce a type with no useful public API.](https://github.com/rust-lang/rust/pull/149218)
+- [rustc: Stop passing `--allow-undefined` on wasm targets](https://github.com/rust-lang/rust/pull/149868)
+- [Gate the accidentally stabilized `#![reexport_test_harness_main]` attribute](https://github.com/rust-lang/rust/pull/152210)
+- [Error on return-position-impl-trait-in-traits whose types are too private](https://github.com/rust-lang/rust/pull/152543)
+- [Report the `uninhabited_static` lint in dependencies and make it deny-by-default](https://github.com/rust-lang/rust/pull/152853)
+- [Distributed builds now contain non-split debuginfo for windows-gnu](https://github.com/rust-lang/rust/pull/152870)
+ This appears to improve the quality of backtraces. This change has no effect on the defaults for the output of rustc/cargo on these targets.
+- [Check const generic arguments are correctly typed in more positions](https://github.com/rust-lang/rust/pull/152931)
+- [Remove `-Csoft-float`](https://github.com/rust-lang/rust/pull/152973)
+- [Importing structs with `::{self [as name]}`, e.g., `struct S {}; use S::{self as Other};`, is now no longer permitted because `{self}` imports require a module parent.](https://github.com/rust-lang/rust/pull/152996)
+- [For `export_name`, `link_name`, and `link_section` attributes, if multiple of the same attribute is present, the first one now takes precedence.](https://github.com/rust-lang/rust/pull/153041)
+- [Update the minimum external LLVM to 21](https://github.com/rust-lang/rust/pull/153684)
+- On `avr` targets, C's `double` type is 32-bit by default, so [change `c_double` to `f32` on `avr` targets to match](https://github.com/rust-lang/rust/pull/154647). This is a breaking change, but necessary to make `c_double` match C's double.
+- [`BTreeMap::append()` was optimized, which may now cause panics for types with incorrect `Ord` impls](https://github.com/rust-lang/rust/pull/153107)
+
+
+
+Internal Changes
+----------------
+
+These changes do not affect any public interfaces of Rust, but they represent
+significant improvements to the performance or internals of rustc and related
+tools.
+
+- [JSON targets: `aarch64` softfloat targets now have to have `rustc_abi` set to `"softfloat"`](https://github.com/rust-lang/rust/pull/152941)
+- [target specs: stricter checks for LLVM ABI values, and correlate that with `cfg(target_abi)`](https://github.com/rust-lang/rust/pull/153769)
+
+
Version 1.95.0 (2026-04-16)
===========================
diff --git a/src/ci/channel b/src/ci/channel
index 65b2df87f7df3..2bf5ad0447d33 100644
--- a/src/ci/channel
+++ b/src/ci/channel
@@ -1 +1 @@
-beta
+stable
diff --git a/src/ci/docker/host-x86_64/armhf-gnu/Dockerfile b/src/ci/docker/host-x86_64/armhf-gnu/Dockerfile
index 9a3545dbad8d1..a06331d88490b 100644
--- a/src/ci/docker/host-x86_64/armhf-gnu/Dockerfile
+++ b/src/ci/docker/host-x86_64/armhf-gnu/Dockerfile
@@ -35,14 +35,14 @@ WORKDIR /build
# the kernel. This file was generated by running `make vexpress_defconfig`
# followed by `make menuconfig` and then enabling the IPv6 protocol page.
COPY host-x86_64/armhf-gnu/vexpress_config /build/.config
-RUN curl https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.14.320.tar.xz | \
- tar xJf - && \
- cd /build/linux-4.14.320 && \
+RUN curl https://ci-mirrors.rust-lang.org/rustc/linux-4.14.336.tar.gz | \
+ tar xzf - && \
+ cd /build/linux-4.14.336 && \
cp /build/.config . && \
make -j$(nproc) all && \
cp arch/arm/boot/zImage /tmp && \
cd /build && \
- rm -rf linux-4.14.320
+ rm -rf linux-4.14.336
# Compile an instance of busybox as this provides a lightweight system and init
# binary which we will boot into. Only trick here is configuring busybox to
diff --git a/src/ci/docker/host-x86_64/disabled/dist-x86_64-redox/Dockerfile b/src/ci/docker/host-x86_64/disabled/dist-x86_64-redox/Dockerfile
index 6a647ac162e4e..36ef0befb3337 100644
--- a/src/ci/docker/host-x86_64/disabled/dist-x86_64-redox/Dockerfile
+++ b/src/ci/docker/host-x86_64/disabled/dist-x86_64-redox/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
WORKDIR /tmp
diff --git a/src/ci/docker/host-x86_64/dist-arm-linux-gnueabi/Dockerfile b/src/ci/docker/host-x86_64/dist-arm-linux-gnueabi/Dockerfile
index f0d54b0d33d60..bd9937fdf6fc3 100644
--- a/src/ci/docker/host-x86_64/dist-arm-linux-gnueabi/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-arm-linux-gnueabi/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
WORKDIR /build
diff --git a/src/ci/docker/host-x86_64/dist-arm-linux-gnueabi/arm-linux-gnueabi.defconfig b/src/ci/docker/host-x86_64/dist-arm-linux-gnueabi/arm-linux-gnueabi.defconfig
index e7afdbe9d4dea..ba7bbf0630cf7 100644
--- a/src/ci/docker/host-x86_64/dist-arm-linux-gnueabi/arm-linux-gnueabi.defconfig
+++ b/src/ci/docker/host-x86_64/dist-arm-linux-gnueabi/arm-linux-gnueabi.defconfig
@@ -2,11 +2,14 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_ARM=y
CT_ARCH_ARCH="armv6"
CT_ARCH_FLOAT_SW=y
CT_KERNEL_LINUX=y
+CT_OBSOLETE=y
CT_LINUX_V_3_2=y
+CT_LINUX_VERSION="3.2.101"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_17=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-armhf-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-armhf-linux/Dockerfile
index 08b0c2ad04531..99cbdca526fbd 100644
--- a/src/ci/docker/host-x86_64/dist-armhf-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-armhf-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-armhf-linux/arm-linux-gnueabihf.defconfig b/src/ci/docker/host-x86_64/dist-armhf-linux/arm-linux-gnueabihf.defconfig
index c7c5b4d5a2865..cfb6ca284be86 100644
--- a/src/ci/docker/host-x86_64/dist-armhf-linux/arm-linux-gnueabihf.defconfig
+++ b/src/ci/docker/host-x86_64/dist-armhf-linux/arm-linux-gnueabihf.defconfig
@@ -2,12 +2,15 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_ARM=y
CT_ARCH_ARCH="armv6"
CT_ARCH_FPU="vfp"
CT_ARCH_FLOAT_HW=y
CT_KERNEL_LINUX=y
+CT_OBSOLETE=y
CT_LINUX_V_3_2=y
+CT_LINUX_VERSION="3.2.101"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_17=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-armv7-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-armv7-linux/Dockerfile
index c86bdbbc41b47..880966a2bd958 100644
--- a/src/ci/docker/host-x86_64/dist-armv7-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-armv7-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-armv7-linux/armv7-linux-gnueabihf.defconfig b/src/ci/docker/host-x86_64/dist-armv7-linux/armv7-linux-gnueabihf.defconfig
index 3f37e546b4255..3f624aaa4342a 100644
--- a/src/ci/docker/host-x86_64/dist-armv7-linux/armv7-linux-gnueabihf.defconfig
+++ b/src/ci/docker/host-x86_64/dist-armv7-linux/armv7-linux-gnueabihf.defconfig
@@ -2,6 +2,7 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_ARM=y
CT_ARCH_ARM_MODE_THUMB=y
CT_ARCH_SUFFIX="v7"
@@ -9,7 +10,9 @@ CT_ARCH_ARCH="armv7-a"
CT_ARCH_FPU="vfpv3-d16"
CT_ARCH_FLOAT_HW=y
CT_KERNEL_LINUX=y
+CT_OBSOLETE=y
CT_LINUX_V_3_2=y
+CT_LINUX_VERSION="3.2.101"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_17=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile
index cf8ff07a5b07f..e80fe2a879368 100644
--- a/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/Dockerfile
@@ -22,6 +22,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/i586-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/i586-linux-gnu.defconfig
index f5f3cfd4b49f3..ac9c40f77873e 100644
--- a/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/i586-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-i586-gnu-i586-i686-musl/i586-linux-gnu.defconfig
@@ -2,11 +2,14 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_X86=y
CT_ARCH_ARCH="i586"
CT_TARGET_CFLAGS="-Wa,-mrelax-relocations=no"
CT_KERNEL_LINUX=y
+CT_OBSOLETE=y
CT_LINUX_V_3_2=y
+CT_LINUX_VERSION="3.2.101"
CT_BINUTILS_V_2_32=y
CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-compressed-debug-sections=none"
CT_GLIBC_V_2_17=y
diff --git a/src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile
index 3ee8cb9ed7e8f..c4f8351bd9466 100644
--- a/src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-loongarch64-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig
index 9ff9791c0b2cf..60c9cc7ef7252 100644
--- a/src/ci/docker/host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-gnu.defconfig
@@ -3,6 +3,7 @@ CT_EXPERIMENTAL=y
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_LOONGARCH=y
# CT_DEMULTILIB is not set
CT_ARCH_USE_MMU=y
@@ -11,6 +12,7 @@ CT_TARGET_CFLAGS="-mcmodel=medium"
CT_TARGET_LDFLAGS="-mcmodel=medium"
CT_KERNEL_LINUX=y
CT_LINUX_V_5_19=y
+CT_LINUX_VERSION="5.19.16"
CT_GLIBC_V_2_36=y
CT_BINUTILS_V_2_45=y
CT_GCC_V_15=y
diff --git a/src/ci/docker/host-x86_64/dist-loongarch64-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-loongarch64-musl/Dockerfile
index 54c1869a2a04f..61b28e4189a4a 100644
--- a/src/ci/docker/host-x86_64/dist-loongarch64-musl/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-loongarch64-musl/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-loongarch64-musl/loongarch64-unknown-linux-musl.defconfig b/src/ci/docker/host-x86_64/dist-loongarch64-musl/loongarch64-unknown-linux-musl.defconfig
index 8c1562744fb52..73e29d7aca725 100644
--- a/src/ci/docker/host-x86_64/dist-loongarch64-musl/loongarch64-unknown-linux-musl.defconfig
+++ b/src/ci/docker/host-x86_64/dist-loongarch64-musl/loongarch64-unknown-linux-musl.defconfig
@@ -3,6 +3,7 @@ CT_EXPERIMENTAL=y
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_LOONGARCH=y
# CT_DEMULTILIB is not set
CT_ARCH_USE_MMU=y
@@ -11,6 +12,7 @@ CT_TARGET_CFLAGS="-mcmodel=medium"
CT_TARGET_LDFLAGS="-mcmodel=medium"
CT_KERNEL_LINUX=y
CT_LINUX_V_5_19=y
+CT_LINUX_VERSION="5.19.16"
CT_LIBC_MUSL=y
CT_MUSL_V_1_2_5=y
CT_BINUTILS_V_2_45=y
diff --git a/src/ci/docker/host-x86_64/dist-mips-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-mips-linux/Dockerfile
index 3d7f5f81fbec6..5f84f7eefcce9 100644
--- a/src/ci/docker/host-x86_64/dist-mips-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-mips-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-mips-linux/mips-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-mips-linux/mips-linux-gnu.defconfig
index 94db07922a226..8c4e547a8beb4 100644
--- a/src/ci/docker/host-x86_64/dist-mips-linux/mips-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-mips-linux/mips-linux-gnu.defconfig
@@ -2,11 +2,13 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_MIPS=y
CT_ARCH_mips_o32=y
CT_ARCH_ARCH="mips32r2"
CT_KERNEL_LINUX=y
CT_LINUX_V_4_4=y
+CT_LINUX_VERSION="4.4.302"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_23=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-mips64-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-mips64-linux/Dockerfile
index 3c798d737a48d..da841f6a19d9c 100644
--- a/src/ci/docker/host-x86_64/dist-mips64-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-mips64-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-mips64-linux/mips64-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-mips64-linux/mips64-linux-gnu.defconfig
index f295a2fafc6b1..725ec99f58619 100644
--- a/src/ci/docker/host-x86_64/dist-mips64-linux/mips64-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-mips64-linux/mips64-linux-gnu.defconfig
@@ -2,12 +2,14 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_MIPS=y
CT_ARCH_mips_n64=y
CT_ARCH_64=y
CT_ARCH_ARCH="mips64r2"
CT_KERNEL_LINUX=y
CT_LINUX_V_4_4=y
+CT_LINUX_VERSION="4.4.302"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_23=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-mips64el-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-mips64el-linux/Dockerfile
index 32fd634555c2b..f509f17eefecc 100644
--- a/src/ci/docker/host-x86_64/dist-mips64el-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-mips64el-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-mips64el-linux/mips64el-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-mips64el-linux/mips64el-linux-gnu.defconfig
index 47d6246356526..a577f0eb196da 100644
--- a/src/ci/docker/host-x86_64/dist-mips64el-linux/mips64el-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-mips64el-linux/mips64el-linux-gnu.defconfig
@@ -2,6 +2,7 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_MIPS=y
CT_ARCH_mips_n64=y
CT_ARCH_LE=y
@@ -9,6 +10,7 @@ CT_ARCH_64=y
CT_ARCH_ARCH="mips64r2"
CT_KERNEL_LINUX=y
CT_LINUX_V_4_4=y
+CT_LINUX_VERSION="4.4.302"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_23=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-mipsel-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-mipsel-linux/Dockerfile
index 73ab0cf5bab65..f1fad8e2cc12e 100644
--- a/src/ci/docker/host-x86_64/dist-mipsel-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-mipsel-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-mipsel-linux/mipsel-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-mipsel-linux/mipsel-linux-gnu.defconfig
index 5daa83ebc02a7..7497b6c45bfb4 100644
--- a/src/ci/docker/host-x86_64/dist-mipsel-linux/mipsel-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-mipsel-linux/mipsel-linux-gnu.defconfig
@@ -2,12 +2,14 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_MIPS=y
CT_ARCH_mips_o32=y
CT_ARCH_LE=y
CT_ARCH_ARCH="mips32r2"
CT_KERNEL_LINUX=y
CT_LINUX_V_4_4=y
+CT_LINUX_VERSION="4.4.302"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_23=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-powerpc-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-powerpc-linux/Dockerfile
index 825392414671d..4cef669c25d44 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-powerpc-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-powerpc-linux/powerpc-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-powerpc-linux/powerpc-linux-gnu.defconfig
index 6a0e96a3b67bc..1774a246c44bb 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc-linux/powerpc-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-powerpc-linux/powerpc-linux-gnu.defconfig
@@ -2,10 +2,13 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_POWERPC=y
CT_ARCH_CPU="powerpc"
CT_KERNEL_LINUX=y
+CT_OBSOLETE=y
CT_LINUX_V_3_2=y
+CT_LINUX_VERSION="3.2.101"
CT_BINUTILS_V_2_30=y
CT_GLIBC_V_2_17=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64-linux-gnu/Dockerfile b/src/ci/docker/host-x86_64/dist-powerpc64-linux-gnu/Dockerfile
index ad0e210190170..4ee0bd829cfa1 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64-linux-gnu/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-powerpc64-linux-gnu/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64-linux-gnu/powerpc64-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-powerpc64-linux-gnu/powerpc64-linux-gnu.defconfig
index 2b442cbe79467..c3b817afb30ed 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64-linux-gnu/powerpc64-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-powerpc64-linux-gnu/powerpc64-linux-gnu.defconfig
@@ -2,12 +2,15 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_POWERPC=y
CT_ARCH_CPU="power4"
CT_ARCH_TUNE="power6"
CT_ARCH_64=y
CT_KERNEL_LINUX=y
+CT_OBSOLETE=y
CT_LINUX_V_3_2=y
+CT_LINUX_VERSION="3.2.101"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_17=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64-linux-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-powerpc64-linux-musl/Dockerfile
index 17783b9c73588..bfbad2c70de61 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64-linux-musl/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-powerpc64-linux-musl/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64-linux-musl/powerpc64-unknown-linux-musl.defconfig b/src/ci/docker/host-x86_64/dist-powerpc64-linux-musl/powerpc64-unknown-linux-musl.defconfig
index 4b7a9c3d671f9..6a9e38a8902a8 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64-linux-musl/powerpc64-unknown-linux-musl.defconfig
+++ b/src/ci/docker/host-x86_64/dist-powerpc64-linux-musl/powerpc64-unknown-linux-musl.defconfig
@@ -3,12 +3,14 @@ CT_EXPERIMENTAL=y
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_POWERPC=y
CT_ARCH_64=y
CT_ARCH_ABI="elfv2"
# CT_DEMULTILIB is not set
CT_KERNEL_LINUX=y
CT_LINUX_V_4_19=y
+CT_LINUX_VERSION="4.19.325"
CT_LIBC_MUSL=y
CT_MUSL_V_1_2_5=y
CT_BINUTILS_V_2_42=y
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64le-linux-gnu/Dockerfile b/src/ci/docker/host-x86_64/dist-powerpc64le-linux-gnu/Dockerfile
index 6a9573cb4231c..e3540e7b68128 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64le-linux-gnu/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-powerpc64le-linux-gnu/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64le-linux-gnu/powerpc64le-unknown-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-powerpc64le-linux-gnu/powerpc64le-unknown-linux-gnu.defconfig
index e1fd950922f71..3d0f885649a30 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64le-linux-gnu/powerpc64le-unknown-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-powerpc64le-linux-gnu/powerpc64le-unknown-linux-gnu.defconfig
@@ -3,13 +3,16 @@ CT_EXPERIMENTAL=y
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_POWERPC=y
CT_ARCH_LE=y
CT_ARCH_64=y
# CT_DEMULTILIB is not set
CT_ARCH_ARCH="powerpc64le"
CT_KERNEL_LINUX=y
+CT_OBSOLETE=y
CT_LINUX_V_3_10=y
+CT_LINUX_VERSION="3.10.108"
CT_GLIBC_V_2_17=y
CT_BINUTILS_V_2_42=y
CT_GCC_V_14=y
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64le-linux-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-powerpc64le-linux-musl/Dockerfile
index be16966fbe1b4..615f41028dbc0 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64le-linux-musl/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-powerpc64le-linux-musl/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-powerpc64le-linux-musl/powerpc64le-unknown-linux-musl.defconfig b/src/ci/docker/host-x86_64/dist-powerpc64le-linux-musl/powerpc64le-unknown-linux-musl.defconfig
index a89e08572acab..c141dbb00eaca 100644
--- a/src/ci/docker/host-x86_64/dist-powerpc64le-linux-musl/powerpc64le-unknown-linux-musl.defconfig
+++ b/src/ci/docker/host-x86_64/dist-powerpc64le-linux-musl/powerpc64le-unknown-linux-musl.defconfig
@@ -3,6 +3,7 @@ CT_EXPERIMENTAL=y
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_POWERPC=y
CT_ARCH_LE=y
CT_ARCH_64=y
@@ -10,6 +11,7 @@ CT_ARCH_64=y
CT_ARCH_ARCH="powerpc64le"
CT_KERNEL_LINUX=y
CT_LINUX_V_4_19=y
+CT_LINUX_VERSION="4.19.325"
CT_LIBC_MUSL=y
CT_MUSL_V_1_2_5=y
CT_BINUTILS_V_2_42=y
diff --git a/src/ci/docker/host-x86_64/dist-riscv64-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-riscv64-linux/Dockerfile
index 51d9e8a5798aa..5186c99c4f430 100644
--- a/src/ci/docker/host-x86_64/dist-riscv64-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-riscv64-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig
index 75eb356bc9587..95df5205150d1 100644
--- a/src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-riscv64-linux/riscv64-unknown-linux-gnu.defconfig
@@ -3,6 +3,7 @@ CT_EXPERIMENTAL=y
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_RISCV=y
# CT_DEMULTILIB is not set
CT_ARCH_USE_MMU=y
@@ -10,6 +11,7 @@ CT_ARCH_64=y
CT_ARCH_ARCH="rv64gc"
CT_KERNEL_LINUX=y
CT_LINUX_V_4_20=y
+CT_LINUX_VERSION="4.20.17"
CT_BINUTILS_V_2_40=y
CT_GLIBC_V_2_29=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/host-x86_64/dist-s390x-linux/Dockerfile b/src/ci/docker/host-x86_64/dist-s390x-linux/Dockerfile
index 413249e02e87f..e9cf707b1911e 100644
--- a/src/ci/docker/host-x86_64/dist-s390x-linux/Dockerfile
+++ b/src/ci/docker/host-x86_64/dist-s390x-linux/Dockerfile
@@ -4,6 +4,7 @@ COPY scripts/cross-apt-packages.sh /scripts/
RUN sh /scripts/cross-apt-packages.sh
COPY scripts/crosstool-ng.sh /scripts/
+COPY scripts/crosstool-ng-sha256-20260705.diff /scripts/
RUN sh /scripts/crosstool-ng.sh
COPY scripts/rustbuild-setup.sh /scripts/
diff --git a/src/ci/docker/host-x86_64/dist-s390x-linux/s390x-linux-gnu.defconfig b/src/ci/docker/host-x86_64/dist-s390x-linux/s390x-linux-gnu.defconfig
index 1fe21966600bb..2b27b00345d5c 100644
--- a/src/ci/docker/host-x86_64/dist-s390x-linux/s390x-linux-gnu.defconfig
+++ b/src/ci/docker/host-x86_64/dist-s390x-linux/s390x-linux-gnu.defconfig
@@ -2,10 +2,13 @@ CT_CONFIG_VERSION="4"
CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
CT_USE_MIRROR=y
CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
+CT_VERIFY_DOWNLOAD_DIGEST_SHA256=y
CT_ARCH_S390=y
CT_ARCH_64=y
CT_KERNEL_LINUX=y
+CT_OBSOLETE=y
CT_LINUX_V_3_2=y
+CT_LINUX_VERSION="3.2.101"
CT_BINUTILS_V_2_32=y
CT_GLIBC_V_2_17=y
CT_GCC_V_8=y
diff --git a/src/ci/docker/scripts/crosstool-ng-sha256-20260705.diff b/src/ci/docker/scripts/crosstool-ng-sha256-20260705.diff
new file mode 100644
index 0000000000000..6295edbbddb4e
--- /dev/null
+++ b/src/ci/docker/scripts/crosstool-ng-sha256-20260705.diff
@@ -0,0 +1,77 @@
+diff --git a/packages/linux/3.10.108/chksum b/packages/linux/3.10.108/chksum
+index 17c7f8ec..f6498231 100644
+--- a/packages/linux/3.10.108/chksum
++++ b/packages/linux/3.10.108/chksum
+@@ -4,5 +4,5 @@ sha256 linux-3.10.108.tar.xz 3849ea8119517f605f9d53c57dd6c539af8d584c2f1d9031f4f
+ sha512 linux-3.10.108.tar.xz 2ed1bda124fbc0f03e7f4c4e5ddac73d15b82d24ff51f5dbb265cec7cc614b28f83923b5fc8df5e97a3244d2bbb861853f0f2a3894a0c64c5a08b489d4ae12ac
+ md5 linux-3.10.108.tar.gz b38e458f3a90ffa0815f2e2740bba7aa
+ sha1 linux-3.10.108.tar.gz 0b09e6fdc8152bea07a9d678119a23a35025d4d6
+-sha256 linux-3.10.108.tar.gz aff93454b2df33a0394253c8977c6d36c7205a423af6d8d4e3e1d67dfc9e07f8
++sha256 linux-3.10.108.tar.gz b1711610cf3faf7194156dacdb98c63c1b7ffd02377269d7f75df63d823ccbba
+ sha512 linux-3.10.108.tar.gz 71c6f89a7620fecc8ce0f215b6aab52f6a6337b6474ae7447491a1ab4fc95eafa38e700cf667ec304220e9cbcaa669671b9ed15fe79cc679a4e4e9139b37ad8c
+diff --git a/packages/linux/3.2.101/chksum b/packages/linux/3.2.101/chksum
+index 1f9a68ba..7188ceeb 100644
+--- a/packages/linux/3.2.101/chksum
++++ b/packages/linux/3.2.101/chksum
+@@ -4,5 +4,5 @@ sha256 linux-3.2.101.tar.xz 4453686b001685144f44c88d57c716fcb6e85ef8a2aad2f95d36
+ sha512 linux-3.2.101.tar.xz 1058369878610cb9e42021dc7feb2e6b2fa67541b0fb4152e526f63e5dfee1d7a63b2f1fb0cfe59097824a743ba74f81526dc706bdb61fc7f1c5e29972b139ed
+ md5 linux-3.2.101.tar.gz ac6286e2ff2a66be117c1de20bdb6c72
+ sha1 linux-3.2.101.tar.gz 8b2ab0dd4915e7517a26fa63112bde9b438d14d8
+-sha256 linux-3.2.101.tar.gz 0d02f47871e44fc12de452a8b41da119848a76d5f81159b8ae9ef57da5824712
++sha256 linux-3.2.101.tar.gz 93e8391e029f131d5ba4b7ad76cc34b12f2c2244059604042f2297c4bde093f7
+ sha512 linux-3.2.101.tar.gz 3951bda6970658c2915a0a8e8b022f7fc28d0fa4a5a8ef37a3a48a5d33a328dba3220a13979887b0df0cc2ba7f4ee92c32bc34ec84c6c1b0e4a1727765d412e0
+diff --git a/packages/linux/4.14.329/chksum b/packages/linux/4.14.329/chksum
+index e5a318d3..44fa0469 100644
+--- a/packages/linux/4.14.329/chksum
++++ b/packages/linux/4.14.329/chksum
+@@ -4,5 +4,5 @@ sha256 linux-4.14.329.tar.xz de36689d713ed17f8bc1286fe4b9afcdb9a3de3b6f1d6aff525
+ sha512 linux-4.14.329.tar.xz b7851bfdd9b5b778c6dcd4fe0376ae3851a93d0030050e57e29472be11785e3fd01c8b167f26f2c04c1b05c89aed309b24d77407aabdcbfb76173545236c1c7b
+ md5 linux-4.14.329.tar.gz 0a75f96e4a19bfdeb41ff9289a111318
+ sha1 linux-4.14.329.tar.gz 07f91c6f13ed3403d105d0a34b586f916f90c26c
+-sha256 linux-4.14.329.tar.gz b0b08ea229defc872bef5c5dbe2fccde5ce739ba0c15dc3bce17aa26e7c24e43
++sha256 linux-4.14.329.tar.gz 3850511cf1822f3bb7c4f2dcfb47a4575dfc2dd9510b3a22be1225a0b7a316b3
+ sha512 linux-4.14.329.tar.gz 6056521d902d1681986a244f7edf12870eacfe39748d75a86ac1df0cec470f94eafe9fcd7c086fb55bdaff8eda97fdfbeaff3944b28500aa6a4334c511708508
+diff --git a/packages/linux/4.19.325/chksum b/packages/linux/4.19.325/chksum
+index 9219f096..e938f889 100644
+--- a/packages/linux/4.19.325/chksum
++++ b/packages/linux/4.19.325/chksum
+@@ -4,5 +4,5 @@ sha256 linux-4.19.325.tar.xz 607bed7de5cda31a443df4c8a78dbe5e8a9ad31afde2a4d28fe
+ sha512 linux-4.19.325.tar.xz 4a2c5f358e9caf47061d707db67738e0d1b1f24aebeeaab81dc2701cc3793ab574a7e0a3a5df2f99d6ff1d777acdca1d885da87ee31098c5b901853d8b580310
+ md5 linux-4.19.325.tar.gz d8201f438135d2dc50302de5e6b7febc
+ sha1 linux-4.19.325.tar.gz 1a882796a187bbb2145d0e091ed370eed3d7f31b
+-sha256 linux-4.19.325.tar.gz 8f360bb8ba9fb692507f27596422c7ceddec5f7fed4d8f3df2b7656b6042cfee
++sha256 linux-4.19.325.tar.gz 8753443636e475b506e08abd40059ec9b84904a115d206014f0c856dfe13a25e
+ sha512 linux-4.19.325.tar.gz 4e8cbfed3211b1c53122905ce588c421aedb05138581cd64986ddcba89b10ffcea8a3b1c63ec273abc02eac7c31f0f901e17677f4c3ed749b26fc47b75bce5f1
+diff --git a/packages/linux/4.20.17/chksum b/packages/linux/4.20.17/chksum
+index 0d77f052..d64edcfd 100644
+--- a/packages/linux/4.20.17/chksum
++++ b/packages/linux/4.20.17/chksum
+@@ -4,5 +4,5 @@ sha256 linux-4.20.17.tar.xz d011245629b980d4c15febf080b54804aaf215167b514a3577fe
+ sha512 linux-4.20.17.tar.xz d048b2e1e88be90c1983acbe71931fc0e716919b433990bd42ab1bb635fc4fc5953667966432b2bc1256fcd5afc211c12ca3e41b7feccdb39b4ced05e6e4071d
+ md5 linux-4.20.17.tar.gz 6b9d049ddeb6cb54ecd2bd3d5931ecda
+ sha1 linux-4.20.17.tar.gz 4743162961123c9c475628ecc31cfa80d822992a
+-sha256 linux-4.20.17.tar.gz 830c472e5c0b4394936c347d70564dd661d8bed4ceb07f79dc8e8efdefd9bf73
++sha256 linux-4.20.17.tar.gz 313b7bebb46084efbfcaf75f4ea6faf2e14c8cbc1711fcba483dc0a036c9acc1
+ sha512 linux-4.20.17.tar.gz 8d4ff845e500e42908a3103a5c08ae3fa76265716cc0c4f37c4712a4d1f0721bd4adbac275136213ee40f490a5650de6e9d5e246e8c700ac11d65ad3ebb74425
+diff --git a/packages/linux/4.4.302/chksum b/packages/linux/4.4.302/chksum
+index 9d2b041b..8dadd2f1 100644
+--- a/packages/linux/4.4.302/chksum
++++ b/packages/linux/4.4.302/chksum
+@@ -4,5 +4,5 @@ sha256 linux-4.4.302.tar.xz 35017bb40b604e0b577fc2b87e727632b46608a2ba3a4f5858b9
+ sha512 linux-4.4.302.tar.xz 2eb03f08bd0a8ee1630b20bc01bfe28f3ff396aca8c88247cc4db3a5c41bcabb6d8385dff90040480f4990f51b538415dedf283a5bc3807ef85e3d982b369570
+ md5 linux-4.4.302.tar.gz 81f7f97ebc94e89311bb20e22b0e6004
+ sha1 linux-4.4.302.tar.gz 2160955ff98a3694ae0574d247cea293d91292af
+-sha256 linux-4.4.302.tar.gz 66271f9d9fce8596622e8154ca0ea160e46b78a5a6c967a15b55855f744d1b0b
++sha256 linux-4.4.302.tar.gz a22ceab143d40f511203265e5a70d6cc5ec39163cd54fa281346d19176f64451
+ sha512 linux-4.4.302.tar.gz de6ad09783be1faf422e0b476d67768fff8bf1fcdc1e2ab27f915a26f7acdbecaa4a1a2385f78d3001e28ad83b3b55150eb2b996d1b64c6376f5f1d68af019f4
+diff --git a/packages/linux/5.19.16/chksum b/packages/linux/5.19.16/chksum
+index c16d312c..64ee13fa 100644
+--- a/packages/linux/5.19.16/chksum
++++ b/packages/linux/5.19.16/chksum
+@@ -4,5 +4,5 @@ sha256 linux-5.19.16.tar.xz a1ebaf667e1059ae2d72aa6374a4d6e2febc0b8ccda6a124687a
+ sha512 linux-5.19.16.tar.xz 1ff662424830fbd48ac1d8c1aabd4d11a8eabc284c4fe3fdf803064d4f56d9c1b631a0fb60679bac40a4e05b77d5e6706a8fd52a5e025ef4f1231a6cc84bbbde
+ md5 linux-5.19.16.tar.gz 15c43c56b85175aacafaaa4ef1983298
+ sha1 linux-5.19.16.tar.gz cd7fb09335a4814a88fedf7ed064e6f10fd1c8db
+-sha256 linux-5.19.16.tar.gz 9b835ea04b0210ad0748829367acd84e09357c3dd6d0f48e31737a7f21e990ff
++sha256 linux-5.19.16.tar.gz bbf0ead65559250e0784c13d4f9716b7f917a1d3a4e00f671f3994cc6990bb02
+ sha512 linux-5.19.16.tar.gz 9b0330c7257aecba3f6f97566014c03d8012e1b2c5c1ee2c3b5ea1b7a2ca01addf346b5235d772b26e4312b0fc1bb529689390445668606ed96e66174cf93341
diff --git a/src/ci/docker/scripts/crosstool-ng.sh b/src/ci/docker/scripts/crosstool-ng.sh
index 434c662c99c89..d0b0491bacba3 100644
--- a/src/ci/docker/scripts/crosstool-ng.sh
+++ b/src/ci/docker/scripts/crosstool-ng.sh
@@ -1,6 +1,8 @@
#!/bin/sh
set -ex
+# ignore-tidy-linelength
+
CT_NG=1.28.0
url="https://github.com/crosstool-ng/crosstool-ng/archive/crosstool-ng-$CT_NG.tar.gz"
@@ -11,6 +13,12 @@ cd crosstool-ng-crosstool-ng-$CT_NG
# "download source of zlib is invalid now"
sed -e "s|zlib.net/'|zlib.net/fossils'|" -i packages/zlib/package.desc
+# FIXME(#158718): patch crosstools-ng known-good kernel artifact SHA256
+# checksums to the artifacts we mirror in `ci-mirrors`.
+# See
+# .
+patch -p1