rust: 1.45.2 -> 1.46.0

This adds the rust toolchain 1.46.0:

https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1460-2020-08-27

Because rustc-1.46.0 enables static PIE by default for
`x86_64-unknown-linux-musl` this release will suffer from:

https://github.com/NixOS/nixpkgs/issues/94228

So this commit doesn't remove the 1.45.2 release.

This commit also specifies the right LLVM packages to use for each
rust release.
This commit is contained in:
Bas van Dijk 2020-09-01 09:07:15 +02:00
parent 2363e6eb9c
commit b837bd4305
5 changed files with 66 additions and 9 deletions

View file

@ -11,7 +11,7 @@
, buildPackages
, newScope, callPackage
, CoreFoundation, Security
, llvmPackages_5
, llvmPackages
, pkgsBuildTarget, pkgsBuildBuild
} @ args:

View file

@ -11,7 +11,7 @@
, buildPackages
, newScope, callPackage
, CoreFoundation, Security
, llvmPackages_5
, llvmPackages
, pkgsBuildTarget, pkgsBuildBuild
} @ args:

View file

@ -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.
# Check the version number in the src/llvm-project git submodule in:
# https://github.com/rust-lang/rust/blob/<version-tag>/.gitmodules
# 3. Firefox and Thunderbird should still build on x86_64-linux.
{ stdenv, lib
, buildPackages
, newScope, callPackage
, CoreFoundation, Security
, llvmPackages
, pkgsBuildTarget, pkgsBuildBuild
} @ args:
import ./default.nix {
rustcVersion = "1.46.0";
rustcSha256 = "0a17jby2pd050s24cy4dfc0gzvgcl585v3vvyfilniyvjrqknsid";
# Note: the version MUST be one version prior to the version we're
# building
bootstrapVersion = "1.45.2";
# fetch hashes by running `print-hashes.sh 1.45.2`
bootstrapHashes = {
i686-unknown-linux-gnu = "5b2050dde23152750de89f7e59acaab6bf088d0beb5854c69c9a545fd254b936";
x86_64-unknown-linux-gnu = "860feed955726a4d96ffe40758a110053326b9ae11c9e1ee059e9c6222f25643";
arm-unknown-linux-gnueabihf = "ddb5f59bbdef84e0b7c83049461e003ed031dd881a4622365c3d475102535c60";
armv7-unknown-linux-gnueabihf = "7a556581f87602705f9c89b04cce621cfbba9050b6fbe478166e91d164567531";
aarch64-unknown-linux-gnu = "151fad66442d28a4e4786753d1afb559c4a3d359081c64769273a31c2f0f4d30";
x86_64-apple-darwin = "6e8067624ede10aa23081d62e0086c6f42f7228cc0d00fb5ff24d4dac65249d6";
};
selectRustPackage = pkgs: pkgs.rust_1_46;
rustcPatches = [
];
}
(builtins.removeAttrs args [ "fetchpatch" ])

View file

@ -10,7 +10,7 @@
, buildPackages
, newScope, callPackage
, CoreFoundation, Security
, llvmPackages_5
, llvmPackages
, pkgsBuildTarget, pkgsBuildBuild
}: rec {
toRustTarget = platform: with platform.parsed; let
@ -80,10 +80,10 @@
# 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; };
stdenv = llvmPackages.stdenv;
pkgsBuildBuild = pkgsBuildBuild // { targetPackages.stdenv = llvmPackages.stdenv; };
pkgsBuildHost = pkgsBuildBuild // { targetPackages.stdenv = llvmPackages.stdenv; };
pkgsBuildTarget = pkgsBuildTarget // { targetPackages.stdenv = llvmPackages.stdenv; };
});
rustfmt = self.callPackage ./rustfmt.nix { inherit Security; };
cargo = self.callPackage ./cargo.nix {

View file

@ -9635,15 +9635,28 @@ in
rust_1_44 = callPackage ../development/compilers/rust/1_44.nix {
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
llvmPackages = llvmPackages_9;
};
# Because rustc-1.46.0 enables static PIE by default for
# `x86_64-unknown-linux-musl` this release will suffer from:
#
# https://github.com/NixOS/nixpkgs/issues/94228
#
# So this commit doesn't remove the 1.45.2 release.
rust_1_45 = callPackage ../development/compilers/rust/1_45.nix {
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
llvmPackages = llvmPackages_10;
};
rust = rust_1_45;
rust_1_46 = callPackage ../development/compilers/rust/1_46.nix {
inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
llvmPackages = llvmPackages_10;
};
rust = rust_1_46;
rustPackages_1_44 = rust_1_44.packages.stable;
rustPackages_1_45 = rust_1_45.packages.stable;
rustPackages = rustPackages_1_45;
rustPackages_1_46 = rust_1_46.packages.stable;
rustPackages = rustPackages_1_46;
inherit (rustPackages) cargo clippy rustc rustPlatform;
inherit (rust) makeRustPlatform;