diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/rust/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/rust/default.nix | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/nixpkgs/pkgs/development/compilers/rust/default.nix b/nixpkgs/pkgs/development/compilers/rust/default.nix index 47df7e716dc1..5c3c08952074 100644 --- a/nixpkgs/pkgs/development/compilers/rust/default.nix +++ b/nixpkgs/pkgs/development/compilers/rust/default.nix @@ -2,6 +2,8 @@ , buildPackages , newScope, callPackage , CoreFoundation, Security +, llvmPackages_5 +, pkgsBuildTarget, pkgsBuildBuild, pkgsBuildHost }: rec { makeRustPlatform = { rustc, cargo, ... }: { rust = { @@ -48,10 +50,15 @@ buildRustPackages = buildPackages.rust.packages.stable; # Analogous to stdenv rustPlatform = makeRustPlatform self.buildRustPackages; - rustc = self.callPackage ./rustc.nix { + rustc = self.callPackage ./rustc.nix ({ # Use boot package set to break cycle rustPlatform = bootRustPlatform; - }; + } // lib.optionalAttrs (stdenv.cc.isClang && stdenv.hostPlatform == stdenv.buildPlatform) { + stdenv = llvmPackages_5.stdenv; + pkgsBuildBuild = pkgsBuildBuild // { targetPackages.stdenv = llvmPackages_5.stdenv; }; + pkgsBuildHost = pkgsBuildBuild // { targetPackages.stdenv = llvmPackages_5.stdenv; }; + pkgsBuildTarget = pkgsBuildTarget // { targetPackages.stdenv = llvmPackages_5.stdenv; }; + }); cargo = self.callPackage ./cargo.nix { # Use boot package set to break cycle rustPlatform = bootRustPlatform; |