summary refs log tree commit diff
path: root/pkgs/development/compilers/rust
diff options
context:
space:
mode:
authorAnthony Cowley <acowley@gmail.com>2016-10-02 16:01:07 -0400
committerAnthony Cowley <acowley@gmail.com>2016-10-03 09:20:56 -0400
commit3989b8da4341237d4a4c3334fc11d98c3c0f7ae2 (patch)
tree1c74ac37386f2ca061fccfe1804ee7e0992219f8 /pkgs/development/compilers/rust
parent63393b2d4e4fcbf9939d194353a618d6ba5cd2e5 (diff)
downloadnixlib-3989b8da4341237d4a4c3334fc11d98c3c0f7ae2.tar
nixlib-3989b8da4341237d4a4c3334fc11d98c3c0f7ae2.tar.gz
nixlib-3989b8da4341237d4a4c3334fc11d98c3c0f7ae2.tar.bz2
nixlib-3989b8da4341237d4a4c3334fc11d98c3c0f7ae2.tar.lz
nixlib-3989b8da4341237d4a4c3334fc11d98c3c0f7ae2.tar.xz
nixlib-3989b8da4341237d4a4c3334fc11d98c3c0f7ae2.tar.zst
nixlib-3989b8da4341237d4a4c3334fc11d98c3c0f7ae2.zip
rustc: fix build on darwin
The OS is identified as "10.4" rather than "osx". This commit removes
the 'rt' build script's hard coding of the "osx" suffix when building on
darwin since the cmake configuration falls back to building a 10.4
compatible libclang_rt.
Diffstat (limited to 'pkgs/development/compilers/rust')
-rw-r--r--pkgs/development/compilers/rust/rustc.nix15
1 files changed, 14 insertions, 1 deletions
diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix
index f8f0e6df0d84..44964f53a44c 100644
--- a/pkgs/development/compilers/rust/rustc.nix
+++ b/pkgs/development/compilers/rust/rustc.nix
@@ -92,6 +92,13 @@ stdenv.mkDerivation {
 
     # Useful debugging parameter
     # export VERBOSE=1
+  '' +
+  # In src/compiler-rt/cmake/config-ix.cmake, the cmake build falls
+  # back to darwin 10.4. This causes the OS name to be recorded as
+  # "10.4" rather than the expected "osx". But mk/rt.mk expects the
+  # built library name to have an "_osx" suffix on darwin.
+  optionalString stdenv.isDarwin ''
+    substituteInPlace mk/rt.mk --replace "_osx" "_10.4"
   '';
 
   preConfigure = ''
@@ -118,7 +125,13 @@ stdenv.mkDerivation {
 
   preCheck = ''
     export TZDIR=${tzdata}/share/zoneinfo
-    ${optionalString stdenv.isDarwin "export TMPDIR=/tmp"}
+  '' +
+  # Ensure TMPDIR is set, and disable a test that removing the HOME
+  # variable from the environment falls back to another home
+  # directory.
+  optionalString stdenv.isDarwin ''
+    export TMPDIR=/tmp
+    sed -i '28s/home_dir().is_some()/true/' ./src/test/run-pass/env-home-dir.rs
   '';
 
   # Disable doCheck on Darwin to work around upstream issue