about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2019-04-23 09:25:12 -0400
committerMatthew Bauer <mjbauer95@gmail.com>2019-04-26 21:55:09 -0400
commitf0b7561275eba64804854328fa77cf480e814f81 (patch)
treecc11e7bb2fdf3c8e3d096beed3d05ab2bfdaafeb /pkgs
parentf4d9adff9a9503da6f8c85dc160ea4e6f2c644d3 (diff)
downloadnixlib-f0b7561275eba64804854328fa77cf480e814f81.tar
nixlib-f0b7561275eba64804854328fa77cf480e814f81.tar.gz
nixlib-f0b7561275eba64804854328fa77cf480e814f81.tar.bz2
nixlib-f0b7561275eba64804854328fa77cf480e814f81.tar.lz
nixlib-f0b7561275eba64804854328fa77cf480e814f81.tar.xz
nixlib-f0b7561275eba64804854328fa77cf480e814f81.tar.zst
nixlib-f0b7561275eba64804854328fa77cf480e814f81.zip
rustc: use llvm5 for bootstrapping
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/compilers/rust/default.nix11
1 files changed, 9 insertions, 2 deletions
diff --git a/pkgs/development/compilers/rust/default.nix b/pkgs/development/compilers/rust/default.nix
index 47df7e716dc1..5c3c08952074 100644
--- a/pkgs/development/compilers/rust/default.nix
+++ b/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;