diff options
author | Domen Kožar <domen@dev.si> | 2014-09-17 21:35:56 +0200 |
---|---|---|
committer | Domen Kožar <domen@dev.si> | 2014-09-17 21:35:56 +0200 |
commit | fdfc7f4cff3c5fa4078afe3d116f695d75def1aa (patch) | |
tree | 38d00d1120a0de6fcfa4cb7001711048e653fbc7 /pkgs | |
parent | a4e643a5fe85d778e0030115915a71aa56f57b91 (diff) | |
parent | 58c4bf5f20e0822c41c40fbeb2a4afedf9f570de (diff) | |
download | nixpkgs-fdfc7f4cff3c5fa4078afe3d116f695d75def1aa.tar nixpkgs-fdfc7f4cff3c5fa4078afe3d116f695d75def1aa.tar.gz nixpkgs-fdfc7f4cff3c5fa4078afe3d116f695d75def1aa.tar.bz2 nixpkgs-fdfc7f4cff3c5fa4078afe3d116f695d75def1aa.tar.lz nixpkgs-fdfc7f4cff3c5fa4078afe3d116f695d75def1aa.tar.xz nixpkgs-fdfc7f4cff3c5fa4078afe3d116f695d75def1aa.tar.zst nixpkgs-fdfc7f4cff3c5fa4078afe3d116f695d75def1aa.zip |
Merge pull request #4115 from madjar/master
rustc: fixed build after 7068828389390dca066fb1062bd27148d49339d4
Diffstat (limited to 'pkgs')
5 files changed, 54 insertions, 9 deletions
diff --git a/pkgs/development/compilers/rustc/hardcode_paths.HEAD.patch b/pkgs/development/compilers/rustc/hardcode_paths.HEAD.patch new file mode 100644 index 00000000000..fea35d24960 --- /dev/null +++ b/pkgs/development/compilers/rustc/hardcode_paths.HEAD.patch @@ -0,0 +1,32 @@ +diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs +index 7a3e912..ced75fa 100644 +--- a/src/librustc/back/link.rs ++++ b/src/librustc/back/link.rs +@@ -856,24 +856,15 @@ + + pub fn get_cc_prog(sess: &Session) -> String { + match sess.opts.cg.linker { +- Some(ref linker) => return linker.to_string(), +- None => {} ++ Some(ref linker) => linker.to_string(), ++ None => "@ccPath@".to_string() + } +- +- // In the future, FreeBSD will use clang as default compiler. +- // It would be flexible to use cc (system's default C compiler) +- // instead of hard-coded gcc. +- // For Windows, there is no cc command, so we add a condition to make it use gcc. +- match sess.targ_cfg.os { +- abi::OsWindows => "gcc", +- _ => "cc", +- }.to_string() + } + + pub fn get_ar_prog(sess: &Session) -> String { + match sess.opts.cg.ar { + Some(ref ar) => (*ar).clone(), +- None => "ar".to_string() ++ None => "@arPath@".to_string() + } + } + diff --git a/pkgs/development/compilers/rustc/hardcode_paths.patch b/pkgs/development/compilers/rustc/hardcode_paths.patch index fea35d24960..77e4c3f3788 100644 --- a/pkgs/development/compilers/rustc/hardcode_paths.patch +++ b/pkgs/development/compilers/rustc/hardcode_paths.patch @@ -2,7 +2,7 @@ diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs index 7a3e912..ced75fa 100644 --- a/src/librustc/back/link.rs +++ b/src/librustc/back/link.rs -@@ -856,24 +856,15 @@ +@@ -766,24 +766,15 @@ pub fn output_lib_filename(id: &CrateId) -> String { pub fn get_cc_prog(sess: &Session) -> String { match sess.opts.cg.linker { @@ -15,9 +15,9 @@ index 7a3e912..ced75fa 100644 - // In the future, FreeBSD will use clang as default compiler. - // It would be flexible to use cc (system's default C compiler) - // instead of hard-coded gcc. -- // For Windows, there is no cc command, so we add a condition to make it use gcc. +- // For win32, there is no cc command, so we add a condition to make it use gcc. - match sess.targ_cfg.os { -- abi::OsWindows => "gcc", +- abi::OsWin32 => "gcc", - _ => "cc", - }.to_string() } diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix index aeb6cd2afbd..f3dd7ef3c75 100644 --- a/pkgs/development/compilers/rustc/head.nix +++ b/pkgs/development/compilers/rustc/head.nix @@ -63,7 +63,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.patch ./local_stage0.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" \ diff --git a/pkgs/development/compilers/rustc/local_stage0.HEAD.patch b/pkgs/development/compilers/rustc/local_stage0.HEAD.patch new file mode 100644 index 00000000000..2f38d7c1757 --- /dev/null +++ b/pkgs/development/compilers/rustc/local_stage0.HEAD.patch @@ -0,0 +1,16 @@ +diff --git a/src/etc/local_stage0.sh b/src/etc/local_stage0.sh +index e78f231..6b6773b 100755 +--- a/src/etc/local_stage0.sh ++++ b/src/etc/local_stage0.sh +@@ -53,11 +53,6 @@ + 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/pkgs/development/compilers/rustc/local_stage0.patch b/pkgs/development/compilers/rustc/local_stage0.patch index 2f38d7c1757..1261b2d458d 100644 --- a/pkgs/development/compilers/rustc/local_stage0.patch +++ b/pkgs/development/compilers/rustc/local_stage0.patch @@ -2,15 +2,12 @@ diff --git a/src/etc/local_stage0.sh b/src/etc/local_stage0.sh index e78f231..6b6773b 100755 --- a/src/etc/local_stage0.sh +++ b/src/etc/local_stage0.sh -@@ -53,11 +53,6 @@ +@@ -53,8 +53,3 @@ 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 |