rust 1.41: Fix build with no_std only target

See https://github.com/rust-lang/rust/pull/69381
This commit is contained in:
John Ericson 2020-02-22 18:34:05 -05:00
parent c1a16501c4
commit 0b0e691833
3 changed files with 25 additions and 0 deletions

View file

@ -6,6 +6,16 @@
# request review, in case platforms cannot be covered.
# 2. The LLVM version used for building should match with rust upstream.
# 3. Firefox and Thunderbird should still build on x86_64-linux.
{ stdenv, lib
, buildPackages
, newScope, callPackage
, CoreFoundation, Security
, llvmPackages_5
, pkgsBuildTarget, pkgsBuildBuild
, fetchpatch
} @ args:
import ./default.nix {
rustcVersion = "1.41.0";
rustcSha256 = "0jypz2mrzac41sj0zh07yd1z36g2s2rvgsb8g624sk4l14n84ijm";
@ -26,4 +36,13 @@ import ./default.nix {
};
selectRustPackage = pkgs: pkgs.rust_1_41_0;
rustcPatches = [
(fetchpatch {
url = "https://github.com/QuiltOS/rust/commit/f1803452b9e95bfdbc3b8763138b9f92c7d12b46.diff";
sha256 = "1mzxaj46bq7ll617wg0mqnbnwr1da3hd4pbap8bjwhs3kfqnr7kk";
})
];
}
(builtins.removeAttrs args [ "fetchpatch" ])

View file

@ -4,6 +4,7 @@
, bootstrapVersion
, bootstrapHashes
, selectRustPackage
, rustcPatches ? []
}:
{ stdenv, lib
, buildPackages
@ -73,6 +74,8 @@
sha256 = rustcSha256;
inherit enableRustcDev;
patches = rustcPatches;
# Use boot package set to break cycle
rustPlatform = bootRustPlatform;
} // lib.optionalAttrs (stdenv.cc.isClang && stdenv.hostPlatform == stdenv.buildPlatform) {

View file

@ -7,6 +7,7 @@
, enableRustcDev ? true
, version
, sha256
, patches ? []
}:
let
@ -104,6 +105,8 @@ in stdenv.mkDerivation rec {
# the rust build system complains that nix alters the checksums
dontFixLibtool = true;
inherit patches;
postPatch = ''
patchShebangs src/etc