1{ stdenv, callPackage, recurseIntoAttrs, makeRustPlatform, llvm, fetchurl
2, targets ? []
3, targetToolchains ? []
4, targetPatches ? []
5}:
6
7let
8 rustPlatform = recurseIntoAttrs (makeRustPlatform (callPackage ./bootstrap.nix {}));
9 version = "1.17.0";
10in
11rec {
12 rustc = callPackage ./rustc.nix {
13 inherit llvm targets targetPatches targetToolchains rustPlatform version;
14
15 configureFlags = [ "--release-channel=stable" ];
16
17 src = fetchurl {
18 url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz";
19 sha256 = "4baba3895b75f2492df6ce5a28a916307ecd1c088dc1fd02dbfa8a8e86174f87";
20 };
21
22 patches = [
23 ./patches/darwin-disable-fragile-tcp-tests.patch
24 ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch;
25
26 };
27
28 cargo = callPackage ./cargo.nix rec {
29 version = "0.18.0";
30 srcRev = "fe7b0cdcf5ca7aab81630706ce40b70f6aa2e666";
31 srcSha = "164iywv1l3v87b0pznf5kkzxigd6w19myv9d7ka4c65zgrk9n9px";
32 depsSha256 = "1mrgd8ib48vxxbhkvsqqq4p19sc6b74x3cd8p6lhhlm6plrajrvm";
33
34 inherit rustc; # the rustc that will be wrapped by cargo
35 inherit rustPlatform; # used to build cargo
36 };
37}