From a71762621bb17c2c19a31fa50926c78007907d76 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Mon, 10 Jun 2024 00:08:48 +0100 Subject: [PATCH] electron: fix build Just like with Firefox, we need to make sure there's only a single version of LLVM involved in building Chromium, or we get errors like this: ld.lld: error: Invalid record (Producer: 'LLVM18.1.7' Reader: 'LLVM 17.0.6') Fixes: 23d4f834536b ("cargo,clippy,rustc,rustfmt: 1.77.2 -> 1.78.0") --- .../applications/networking/browsers/chromium/common.nix | 9 ++++----- .../networking/browsers/chromium/default.nix | 8 ++------ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index cfec6dab281d..a7955b7e61f2 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -12,7 +12,6 @@ , ninja, pkg-config , python3, perl , which -, llvmPackages_attrName , libuuid , overrideCC # postPatch: @@ -131,7 +130,7 @@ let # https://github.com/NixOS/nixpkgs/issues/142901 buildPlatformLlvmStdenv = let - llvmPackages = pkgsBuildBuild.${llvmPackages_attrName}; + llvmPackages = pkgsBuildBuild.rustc.llvmPackages; in overrideCC llvmPackages.stdenv (llvmPackages.stdenv.cc.override { @@ -164,7 +163,7 @@ let ninja pkg-config python3WithPackages perl which - buildPackages.${llvmPackages_attrName}.bintools + buildPackages.rustc.llvmPackages.bintools bison gperf ]; @@ -381,8 +380,8 @@ let llvmCcAndBintools = symlinkJoin { name = "llvmCcAndBintools"; paths = [ - buildPackages.${llvmPackages_attrName}.llvm - buildPackages.${llvmPackages_attrName}.stdenv.cc + buildPackages.rustc.llvmPackages.llvm + buildPackages.rustc.llvmPackages.stdenv.cc ]; }; diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index afd25b972d78..317cb7de1011 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -24,11 +24,7 @@ }: let - # Sometimes we access `llvmPackages` via `pkgs`, and other times - # via `pkgsFooBar`, so a string (attrname) is the only way to have - # a single point of control over the LLVM version used. - llvmPackages_attrName = "llvmPackages_17"; - stdenv = pkgs.${llvmPackages_attrName}.stdenv; + stdenv = pkgs.rustc.llvmPackages.stdenv; # Helper functions for changes that depend on specific versions: warnObsoleteVersionConditional = min-version: result: @@ -48,7 +44,7 @@ let callPackage = newScope chromium; chromium = rec { - inherit stdenv llvmPackages_attrName upstream-info; + inherit stdenv upstream-info; mkChromiumDerivation = callPackage ./common.nix ({ inherit channel chromiumVersionAtLeast versionRange;