Skip to content

Upgrade to Clang 20 and Rust 1.88  #4265

@miladfarca

Description

@miladfarca

RHEL llvm-toolset and rust-toolset packages are version‑coupled. For example, installing llvm-toolset-19.1.7 brings in Rust 1.84.1. Currently the ppc64 and s390x platforms are using Rust 1.84, which still ships with libadler. Starting with Rust 1.86, this changes to libadler2.

The Chromium build repository currently has this logic to work around the mismatch, since our toolchain is older than Chromium upstream:

if (rustc_nightly_capability) {
  stdlib_files += [ "adler2" ]
} else {
  stdlib_files += [ "adler" ]
}

The issue now is that AIX is also moving to Rust 1.86, which uses libadler2, but AIX still falls into the else branch because it does not use the Chromium toolchain. That means this logic no longer works for AIX.

To avoid having to maintain libadler for different Rust versions upstream, we need to upgrade our toolchain to Rust 1.86+ and fully remove that if/else block.

On RHEL, upgrading Rust to 1.88 also means upgrading our llvm-toolset (Clang) to version 20, since Rust and LLVM are version‑coupled there.

Furthermore Libc++ now only supports Clang 20 and later: llvm/llvm-project#165684
Chromium upstream is also already using Clang 23, so an upgrade may need to be performed down the road regardless.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions