From c28e3f9d000bcdb4967da44d25dfc2e4975bc803 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Tue, 2 Nov 2021 17:34:05 +0100 Subject: [PATCH] rustc: Expose llvmPackages set used to build rustc Reusing the same llvmPackages version used for building rustc is required for LTO in Firefox. --- pkgs/development/compilers/rust/1_55.nix | 3 +++ pkgs/development/compilers/rust/default.nix | 3 ++- pkgs/development/compilers/rust/rustc.nix | 7 +++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/rust/1_55.nix b/pkgs/development/compilers/rust/1_55.nix index edd1f538e398..85a8b65b11a1 100644 --- a/pkgs/development/compilers/rust/1_55.nix +++ b/pkgs/development/compilers/rust/1_55.nix @@ -32,6 +32,9 @@ import ./default.nix { # For use at runtime llvmShared = llvm_12.override { enableSharedLibraries = true; }; + # Expose llvmPackages used for rustc from rustc via passthru for LTO in Firefox + llvmPackagesForBuild = pkgsBuildBuild.llvmPackages_12; + # Note: the version MUST be one version prior to the version we're # building bootstrapVersion = "1.54.0"; diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rust/default.nix index 7912055db624..59420477119c 100644 --- a/pkgs/development/compilers/rust/default.nix +++ b/pkgs/development/compilers/rust/default.nix @@ -10,6 +10,7 @@ , llvmSharedForBuild , llvmSharedForHost , llvmSharedForTarget +, llvmPackagesForBuild # Exposed through rustc for LTO in Firefox }: { stdenv, lib , buildPackages @@ -85,7 +86,7 @@ version = rustcVersion; sha256 = rustcSha256; inherit enableRustcDev; - inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget; + inherit llvmShared llvmSharedForBuild llvmSharedForHost llvmSharedForTarget llvmPackagesForBuild; patches = rustcPatches; diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix index dae944092409..187127cfbfb3 100644 --- a/pkgs/development/compilers/rust/rustc.nix +++ b/pkgs/development/compilers/rust/rustc.nix @@ -1,5 +1,5 @@ { lib, stdenv, removeReferencesTo, pkgsBuildBuild, pkgsBuildHost, pkgsBuildTarget -, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget +, llvmShared, llvmSharedForBuild, llvmSharedForHost, llvmSharedForTarget, llvmPackagesForBuild , fetchurl, file, python3 , darwin, cmake, rust, rustPlatform , pkg-config, openssl @@ -174,7 +174,10 @@ in stdenv.mkDerivation rec { requiredSystemFeatures = [ "big-parallel" ]; - passthru.llvm = llvmShared; + passthru = { + llvm = llvmShared; + llvmPackages = llvmPackagesForBuild; + }; meta = with lib; { homepage = "https://www.rust-lang.org/";