at 18.03-beta 38 lines 1.2 kB view raw
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.24.0"; 10 cargoVersion = "0.24.0"; 11 src = fetchurl { 12 url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz"; 13 sha256 = "17v3jpyky8vkkgai5yd2zr8zl87qpgj6dx99gx27x1sf0kv7d0mv"; 14 }; 15in rec { 16 rustc = callPackage ./rustc.nix { 17 inherit stdenv llvm targets targetPatches targetToolchains rustPlatform version src; 18 19 forceBundledLLVM = true; 20 21 configureFlags = [ "--release-channel=stable" ]; 22 23 patches = [ 24 ./patches/0001-Disable-fragile-tests-libstd-net-tcp-on-Darwin-Linux.patch 25 ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch 26 # https://github.com/rust-lang/rust/issues/45410 27 ++ stdenv.lib.optional stdenv.isAarch64 ./patches/aarch64-disable-test_loading_cosine.patch; 28 29 }; 30 31 cargo = callPackage ./cargo.nix rec { 32 version = cargoVersion; 33 inherit src; 34 inherit stdenv; 35 inherit rustc; # the rustc that will be wrapped by cargo 36 inherit rustPlatform; # used to build cargo 37 }; 38}