buildMozillaMach: switch back to llvm_21 for aarch64-darwin (#462094)

This commit is contained in:
Martin Weinelt
2025-12-11 16:54:04 +01:00
committed by GitHub
@@ -59,7 +59,9 @@ in
pkgsCross, # wasm32 rlbox
python3,
runCommand,
rustc,
rust-cbindgen,
rustPlatform,
unzip,
which,
wrapGAppsHook3,
@@ -201,25 +203,9 @@ assert elfhackSupport -> isElfhackPlatform stdenv;
let
inherit (lib) enableFeature;
rustPackages =
pkgs:
(pkgs.rust.override (
# aarch64-darwin firefox crashes on loading favicons due to a llvm 21 bug:
# https://github.com/NixOS/nixpkgs/issues/453372
# https://bugzilla.mozilla.org/show_bug.cgi?id=1995582#c16
lib.optionalAttrs (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) {
llvmPackages = pkgs.llvmPackages_20;
}
)).packages.stable;
toRustC = pkgs: (rustPackages pkgs).rustc;
rustc = toRustC pkgs;
inherit (rustPackages pkgs) rustPlatform;
# Target the LLVM version that rustc is built with for LTO.
llvmPackages0 = rustc.llvmPackages;
llvmPackagesBuildBuild0 = (toRustC pkgsBuildBuild).llvmPackages;
llvmPackagesBuildBuild0 = pkgsBuildBuild.rustc.llvmPackages;
# Force the use of lld and other llvm tools for LTO
llvmPackages = llvmPackages0.override {
@@ -234,7 +220,7 @@ let
# LTO requires LLVM bintools including ld.lld and llvm-ar.
buildStdenv = overrideCC llvmPackages.stdenv (
llvmPackages.stdenv.cc.override {
bintools = if ltoSupport then (toRustC buildPackages).llvmPackages.bintools else stdenv.cc.bintools;
bintools = if ltoSupport then buildPackages.rustc.llvmPackages.bintools else stdenv.cc.bintools;
}
);