3
0
Fork 0
forked from mirrors/nixpkgs

rustcMaster: Update to more recent commit and remove patch

The patch to the tests is now included upstream. Also in this version,
an issue was fixed upstream where LTO would fail with permission denied
in NixOS.
This commit is contained in:
Ricardo M. Correia 2014-10-05 00:55:45 +02:00
parent 6320c4a980
commit 02c8dbe382
2 changed files with 10 additions and 49 deletions

View file

@ -18,19 +18,19 @@ assert stdenv.gcc.gcc != null;
*/
with ((import ./common.nix) {inherit stdenv; version = "0.12.0-pre-9a68da740"; });
with ((import ./common.nix) {inherit stdenv; version = "0.12.0-pre-a2e7c4da9"; });
let snapshot = if stdenv.system == "i686-linux"
then "5c2132b65f45c21b43d28de6a9460978b1a7b08a"
then "555aca74f9a268f80cab2df1147dc6406403e9e4"
else if stdenv.system == "x86_64-linux"
then "152be582853c2cf1ddcc88b085153b52ebbeb065"
then "6a43c2f6c8ba2cbbcb9da1f7b58f748aef99f431"
else if stdenv.system == "i686-darwin"
then "7adbb076aeae8e1d9bdf3fe968bc7ef8a8fe0096"
then "331bd7ef519cbb424188c546273e8c7d738f0894"
else if stdenv.system == "x86_64-darwin"
then "152be582853c2cf1ddcc88b085153b52ebbeb065"
then "2c83a79a9febfe1d326acb17c3af76ba053c6ca9"
else abort "no-snapshot for platform ${stdenv.system}";
snapshotDate = "2014-09-22";
snapshotRev = "437179e";
snapshotDate = "2014-10-04";
snapshotRev = "749ff5e";
snapshotName = "rust-stage0-${snapshotDate}-${snapshotRev}-${platform}-${snapshot}.tar.bz2";
in stdenv.mkDerivation {
@ -40,8 +40,8 @@ in stdenv.mkDerivation {
src = fetchgit {
url = https://github.com/rust-lang/rust;
rev = "9a68da7401d9bef645a8b6a4e0ce4cae12604df4";
sha256 = "1nrmahz9scv06v8pyfgjl902dh9947irpqi78lh11r5lyixia8ci";
rev = "a2e7c4da9b331d337fba0b3911c6d3d7f48e8305";
sha256 = "1lpncqx3lfyjk6llfc7pd1iqxzfhj32hjqvj09zks73r4isc02n4";
};
# We need rust to build rust. If we don't provide it, configure will try to download it.
@ -65,7 +65,7 @@ in stdenv.mkDerivation {
configureFlags = [ "--enable-local-rust" "--local-rust-root=$snapshot" ];
# The compiler requires cc, so we patch the source to tell it where to find it
patches = [ ./hardcode_paths.HEAD.patch ./local_stage0.HEAD.patch ./override_env.HEAD.patch ];
patches = [ ./hardcode_paths.HEAD.patch ./local_stage0.HEAD.patch ];
postPatch = ''
substituteInPlace src/librustc/back/link.rs \
--subst-var-by "ccPath" "${stdenv.gcc}/bin/cc"

View file

@ -1,39 +0,0 @@
commit 02f4c61bd6a2aedbf56169aff5b3a65c83c89557
Author: Ricardo M. Correia <rcorreia@wizy.org>
Date: Tue Sep 30 15:57:06 2014 +0200
libstd: Pass-through PATH in test_override_env test
In some operating systems (such as NixOS), `env` can only be found in
the explicitly-provided PATH, not in default places such as /bin or
/usr/bin. So we need to pass-through PATH when spawning the `env`
sub-process.
diff --git a/src/libstd/io/process.rs b/src/libstd/io/process.rs
index 83890d2..8fbf254 100644
--- a/src/libstd/io/process.rs
+++ b/src/libstd/io/process.rs
@@ -956,7 +956,22 @@ mod tests {
})
iotest!(fn test_override_env() {
- let new_env = vec![("RUN_TEST_NEW_ENV", "123")];
+ use os;
+ let mut new_env = vec![("RUN_TEST_NEW_ENV", "123")];
+
+ // In some operating systems (such as NixOS), `env` can only be found in
+ // the explicitly-provided PATH env variable, not in default places
+ // such as /bin or /usr/bin. So we need to pass through PATH to our
+ // sub-process.
+ let path_val: String;
+ match os::getenv("PATH") {
+ None => {}
+ Some(val) => {
+ path_val = val;
+ new_env.push(("PATH", path_val.as_slice()))
+ }
+ }
+
let prog = env_cmd().env_set_all(new_env.as_slice()).spawn().unwrap();
let result = prog.wait_with_output().unwrap();
let output = String::from_utf8_lossy(result.output.as_slice()).into_string();