From 5741c2d8cdbe393fe4ac6c9a5e43d33a7c87754c Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Thu, 12 Mar 2020 23:24:14 +0000 Subject: [PATCH] rustc: 1.41.0 -> 1.42.0 The patch is included in rust master[1], but neither that, nor the QuiltOS version we were using previously, apply to 1.42.0, so I've included the fixed version here. [1]: https://github.com/rust-lang/rust/commit/4f15867faf2797257cbeb9e4a38ae8dc87dcf2e9 --- ...-getting-no_std-from-the-config-file.patch | 52 +++++++++++++++++++ pkgs/development/compilers/rust/1_41_0.nix | 48 ----------------- pkgs/development/compilers/rust/1_42_0.nix | 44 ++++++++++++++++ pkgs/top-level/all-packages.nix | 8 +-- 4 files changed, 100 insertions(+), 52 deletions(-) create mode 100644 pkgs/development/compilers/rust/0001-Allow-getting-no_std-from-the-config-file.patch delete mode 100644 pkgs/development/compilers/rust/1_41_0.nix create mode 100644 pkgs/development/compilers/rust/1_42_0.nix diff --git a/pkgs/development/compilers/rust/0001-Allow-getting-no_std-from-the-config-file.patch b/pkgs/development/compilers/rust/0001-Allow-getting-no_std-from-the-config-file.patch new file mode 100644 index 0000000000000..0b9359221a78e --- /dev/null +++ b/pkgs/development/compilers/rust/0001-Allow-getting-no_std-from-the-config-file.patch @@ -0,0 +1,52 @@ +From 036c87c82793f1da9f98445e8e27462cc19bbe0a Mon Sep 17 00:00:00 2001 +From: John Ericson +Date: Sat, 22 Feb 2020 14:38:38 -0500 +Subject: [PATCH] Allow getting `no_std` from the config file + +Currently, it is only set correctly in the sanity checking implicit +default fallback code. Having a config file at all will for force +`no_std = false`. +--- + src/bootstrap/config.rs | 3 +++ + src/bootstrap/sanity.rs | 4 +--- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/bootstrap/config.rs b/src/bootstrap/config.rs +index 110c8b844d5..83a6934d477 100644 +--- a/src/bootstrap/config.rs ++++ b/src/bootstrap/config.rs +@@ -350,6 +350,7 @@ struct TomlTarget { + musl_root: Option, + wasi_root: Option, + qemu_rootfs: Option, ++ no_std: Option, + } + + impl Config { +@@ -610,6 +611,8 @@ impl Config { + target.musl_root = cfg.musl_root.clone().map(PathBuf::from); + target.wasi_root = cfg.wasi_root.clone().map(PathBuf::from); + target.qemu_rootfs = cfg.qemu_rootfs.clone().map(PathBuf::from); ++ target.no_std ++ = cfg.no_std.unwrap_or(triple.contains("-none-") || triple.contains("nvptx")); + + config.target_config.insert(INTERNER.intern_string(triple.clone()), target); + } +diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs +index 8ff7056e628..76e721ed8e3 100644 +--- a/src/bootstrap/sanity.rs ++++ b/src/bootstrap/sanity.rs +@@ -194,9 +194,7 @@ pub fn check(build: &mut Build) { + + if target.contains("-none-") || target.contains("nvptx") { + if build.no_std(*target).is_none() { +- let target = build.config.target_config.entry(target.clone()).or_default(); +- +- target.no_std = true; ++ build.config.target_config.entry(target.clone()).or_default(); + } + + if build.no_std(*target) == Some(false) { +-- +2.24.1 + diff --git a/pkgs/development/compilers/rust/1_41_0.nix b/pkgs/development/compilers/rust/1_41_0.nix deleted file mode 100644 index b73d9b8ef269b..0000000000000 --- a/pkgs/development/compilers/rust/1_41_0.nix +++ /dev/null @@ -1,48 +0,0 @@ -# New rust versions should first go to staging. -# Things to check after updating: -# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin: -# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github -# This testing can be also done by other volunteers as part of the pull -# 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"; - - # Note: the version MUST be one version prior to the version we're - # building - bootstrapVersion = "1.40.0"; - - # fetch hashes by running `print-hashes.sh 1.40.0` - bootstrapHashes = { - i686-unknown-linux-gnu = "d050d3a1c7c45ba9c50817d45bf6d7dd06e1a4d934f633c8096b7db6ae27adc1"; - x86_64-unknown-linux-gnu = "fc91f8b4bd18314e83a617f2389189fc7959146b7177b773370d62592d4b07d0"; - arm-unknown-linux-gnueabihf = "4be9949c4d3c572b69b1df61c3506a3a3ac044851f025d38599612e7caa933c5"; - armv7-unknown-linux-gnueabihf = "ebfe3978e12ffe34276272ee6d0703786249a9be80ca50617709cbfdab557306"; - aarch64-unknown-linux-gnu = "639271f59766d291ebdade6050e7d05d61cb5c822a3ef9a1e2ab185fed68d729"; - i686-apple-darwin = "ea189b1fb0bfda367cde6d43c18863ab4c64ffca04265e5746bf412a186fe1a2"; - x86_64-apple-darwin = "749ca5e0b94550369cc998416b8854c13157f5d11d35e9b3276064b6766bcb83"; - }; - - selectRustPackage = pkgs: pkgs.rust_1_41_0; - - rustcPatches = [ - (fetchpatch { - url = "https://github.com/QuiltOS/rust/commit/f1803452b9e95bfdbc3b8763138b9f92c7d12b46.diff"; - sha256 = "1mzxaj46bq7ll617wg0mqnbnwr1da3hd4pbap8bjwhs3kfqnr7kk"; - }) - ]; -} - -(builtins.removeAttrs args [ "fetchpatch" ]) diff --git a/pkgs/development/compilers/rust/1_42_0.nix b/pkgs/development/compilers/rust/1_42_0.nix new file mode 100644 index 0000000000000..e18d89af6a135 --- /dev/null +++ b/pkgs/development/compilers/rust/1_42_0.nix @@ -0,0 +1,44 @@ +# New rust versions should first go to staging. +# Things to check after updating: +# 1. Rustc should produce rust binaries on x86_64-linux, aarch64-linux and x86_64-darwin: +# i.e. nix-shell -p fd or @GrahamcOfBorg build fd on github +# This testing can be also done by other volunteers as part of the pull +# 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 +} @ args: + +import ./default.nix { + rustcVersion = "1.42.0"; + rustcSha256 = "0x9lxs82may6c0iln0b908cxyn1cv7h03n5cmbx3j1bas4qzks6j"; + + # Note: the version MUST be one version prior to the version we're + # building + bootstrapVersion = "1.41.0"; + + # fetch hashes by running `print-hashes.sh 1.42.0` + bootstrapHashes = { + i686-unknown-linux-gnu = "a93a34f9cf3d35de2496352cb615b42b792eb09db3149b3a278efd2c58fa7897"; + x86_64-unknown-linux-gnu = "343ba8ef7397eab7b3bb2382e5e4cb08835a87bff5c8074382c0b6930a41948b"; + arm-unknown-linux-gnueabihf = "d0b33fcc97eeb96d716b30573c7e66affdf9077ecdecb30df2498b49f8284047"; + armv7-unknown-linux-gnueabihf = "3c8e787fb4f4f304a065e78c38010f0b5722d809f9dafb0e904084bf0f54f7be"; + aarch64-unknown-linux-gnu = "79ddfb5e2563d0ee09a567fbbe121a2aed3c3bc61255b2787f2dd42183a10f27"; + i686-apple-darwin = "628134b3fbaf5c0e7a25bd9a2b8d25f6e68bb256c8b04a3332ec979f5a1cd339"; + x86_64-apple-darwin = "b6504003ab70b11f278e0243a43ba9d6bf75e8ad6819b4058a2b6e3991cc8d7a"; + }; + + selectRustPackage = pkgs: pkgs.rust_1_42_0; + + rustcPatches = [ + ./0001-Allow-getting-no_std-from-the-config-file.patch + ]; +} + +(builtins.removeAttrs args [ "fetchpatch" ]) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 74ab773c2393c..0606606a42620 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8825,17 +8825,17 @@ in inherit (darwin) apple_sdk; }; - rust_1_41_0 = callPackage ../development/compilers/rust/1_41_0.nix { + rust_1_42_0 = callPackage ../development/compilers/rust/1_42_0.nix { inherit (darwin.apple_sdk.frameworks) CoreFoundation Security; }; rust_1_38_0 = callPackage ../development/compilers/rust/1_38_0.nix { inherit (darwin.apple_sdk.frameworks) CoreFoundation Security; }; - rust = rust_1_41_0; + rust = rust_1_42_0; - rustPackages_1_41_0 = rust_1_41_0.packages.stable; + rustPackages_1_42_0 = rust_1_42_0.packages.stable; rustPackages_1_38_0 = rust_1_38_0.packages.stable; - rustPackages = rustPackages_1_41_0; + rustPackages = rustPackages_1_42_0; inherit (rustPackages) cargo clippy rustc rustPlatform; inherit (rust) makeRustPlatform;