diff --git a/pkgs/development/compilers/rustc/generic.nix b/pkgs/development/compilers/rustc/generic.nix index b8d232b82a33..f9e458738571 100644 --- a/pkgs/development/compilers/rustc/generic.nix +++ b/pkgs/development/compilers/rustc/generic.nix @@ -125,11 +125,18 @@ stdenv.mkDerivation { --subst-var-by "ccPath" "${stdenv.cc}/bin/cc" substituteInPlace src/librustc_back/archive.rs \ --subst-var-by "arPath" "${stdenv.cc.binutils}/bin/ar" + substituteInPlace src/librustc_back/target/mod.rs \ + --subst-var-by "ccPath" "${stdenv.cc}/bin/cc" \ + --subst-var-by "arPath" "${stdenv.cc.binutils}/bin/ar" substituteInPlace src/rust-installer/gen-install-script.sh \ --replace /bin/echo "${coreutils}/bin/echo" substituteInPlace src/rust-installer/gen-installer.sh \ --replace /bin/echo "${coreutils}/bin/echo" + + # Workaround for NixOS/nixpkgs#8676 + substituteInPlace mk/rustllvm.mk \ + --replace "\$\$(subst /,//," "\$\$(subst /,/," ''; buildInputs = [ which file perl curl python27 makeWrapper git valgrind procps ]; diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix index 5e5b41e8b250..2e890f2fb760 100644 --- a/pkgs/development/compilers/rustc/head.nix +++ b/pkgs/development/compilers/rustc/head.nix @@ -1,16 +1,16 @@ { stdenv, callPackage }: callPackage ./generic.nix { - shortVersion = "1.0.0-dev"; + shortVersion = "2015-07-01"; isRelease = false; - # src rev for master on 2015-05-13 - srcRev = "67433c1a309d3c9457e49f15e80a2d927d165996"; - srcSha = "0idc3nh0sfjlv7m9710azx7n6awzwj6mhw3aybsb9bbagzy2sdsg"; - snapshotHashLinux686 = "0bc8cffdce611fb71fd7d3d8e7cdbfaf748a4f16"; - snapshotHashLinux64 = "94089740e48167c5975c92c139ae9c286764012f"; - snapshotHashDarwin686 = "54cc35e76497e6e94fddf38d6e40e9d168491ddb"; - snapshotHashDarwin64 = "43a1c1fba0d1dfee4c2ca310d506f8f5f51b3f6f"; - snapshotDate = "2015-04-27"; - snapshotRev = "857ef6e"; + # src rev for master on 2015-07-01 + srcRev = "bf3c979ec"; + srcSha = "1xp2fjffz5bwxfs37w80bdhy9lv091ps7xbnsvxid2i91rbxfrkk"; + snapshotHashLinux686 = "a6f22e481eabf098cc65bda97bf7e434a1fcc20b"; + snapshotHashLinux64 = "5fd8698fdfe953e6c4d86cf4fa1d5f3a0053248c"; + snapshotHashDarwin686 = "9a273324a6b63a40f67a553029c0a9fb692ffd1f"; + snapshotHashDarwin64 = "e5b12cb7c179fc98fa905a3c84803645d946a6ae"; + snapshotDate = "2015-05-24"; + snapshotRev = "ba0e1cd"; patches = [ ./patches/head.patch ] ++ stdenv.lib.optional stdenv.needsPax ./patches/grsec.patch; diff --git a/pkgs/development/compilers/rustc/patches/head.patch b/pkgs/development/compilers/rustc/patches/head.patch index cd2320e84dfe..d7bede68682b 100644 --- a/pkgs/development/compilers/rustc/patches/head.patch +++ b/pkgs/development/compilers/rustc/patches/head.patch @@ -1,49 +1,20 @@ -diff --git a/src/etc/local_stage0.sh b/src/etc/local_stage0.sh -index ca59b1c..65ee7bf 100755 ---- a/src/etc/local_stage0.sh -+++ b/src/etc/local_stage0.sh -@@ -50,11 +50,6 @@ if [ -z $TARG_DIR ]; then - fi - - cp ${PREFIX}/bin/rustc${BIN_SUF} ${TARG_DIR}/stage0/bin/ --cp ${PREFIX}/${LIB_DIR}/${RUSTLIBDIR}/${TARG_DIR}/${LIB_DIR}/* ${TARG_DIR}/stage0/${LIB_DIR}/ --cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}extra*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/ --cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rust*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/ --cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}std*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/ --cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}syntax*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/ - - # do not fail if one of the above fails, as all we need is a working rustc! - exit 0 -diff --git a/src/librustc_back/archive.rs b/src/librustc_back/archive.rs -index 9f5751c..c98828f 100644 ---- a/src/librustc_back/archive.rs -+++ b/src/librustc_back/archive.rs -@@ -57,7 +57,7 @@ fn run_ar(handler: &ErrorHandler, maybe_ar_prog: &Option, - paths: &[&Path]) -> Output { - let ar = match *maybe_ar_prog { - Some(ref ar) => &ar[..], -- None => "ar" -+ None => "@arPath@" - }; - let mut cmd = Command::new(ar); - -diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs -index ad77735..1764f71 100644 ---- a/src/librustc_trans/back/link.rs -+++ b/src/librustc_trans/back/link.rs -@@ -360,8 +360,8 @@ pub fn mangle_internal_name_by_path_and_seq(path: PathElems, flav: &str) -> Stri - - pub fn get_cc_prog(sess: &Session) -> String { - match sess.opts.cg.linker { -- Some(ref linker) => return linker.to_string(), -- None => sess.target.target.options.linker.clone(), -+ Some(ref linker) => linker.to_string(), -+ None => "@ccPath@".to_string(), - } - } - +diff --git a/src/librustc_back/target/mod.rs b/src/librustc_back/target/mod.rs +index a42f861..bda4bde 100644 +--- a/src/librustc_back/target/mod.rs ++++ b/src/librustc_back/target/mod.rs +@@ -172,8 +172,8 @@ impl Default for TargetOptions { + /// incomplete, and if used for compilation, will certainly not work. + fn default() -> TargetOptions { + TargetOptions { +- linker: "cc".to_string(), +- ar: "ar".to_string(), ++ linker: "@ccPath@".to_string(), // ignore-tidy-linelength ++ ar: "@arPath@".to_string(), // ignore-tidy-linelength + pre_link_args: Vec::new(), + post_link_args: Vec::new(), + cpu: "generic".to_string(), diff --git a/src/test/run-pass/issue-20797.rs b/src/test/run-pass/issue-20797.rs -index 8b5e6f8..480ad79 100644 +index 2772fc8..3d37b08 100644 --- a/src/test/run-pass/issue-20797.rs +++ b/src/test/run-pass/issue-20797.rs @@ -97,7 +97,7 @@ impl Iterator for Subpaths {