diff options
Diffstat (limited to 'pkgs/development/compilers/rustc/head.nix')
-rw-r--r-- | pkgs/development/compilers/rustc/head.nix | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/pkgs/development/compilers/rustc/head.nix b/pkgs/development/compilers/rustc/head.nix index 6cc866c63a8ad..20c21bec06f9b 100644 --- a/pkgs/development/compilers/rustc/head.nix +++ b/pkgs/development/compilers/rustc/head.nix @@ -2,8 +2,6 @@ , tzdata, git, valgrind, procps, coreutils }: -assert stdenv.gcc.gcc != null; - /* Rust's build process has a few quirks : - It requires some patched in llvm that haven't landed upstream, so it @@ -56,13 +54,14 @@ in stdenv.mkDerivation { mkdir -p "$out" cp -r bin "$out/bin" '' + (if stdenv.isLinux then '' - patchelf --interpreter "${stdenv.glibc}/lib/${stdenv.gcc.dynamicLinker}" \ - --set-rpath "${stdenv.gcc.gcc}/lib/:${stdenv.gcc.gcc}/lib64/" \ + patchelf --interpreter "${stdenv.glibc}/lib/${stdenv.cc.dynamicLinker}" \ + --set-rpath "${stdenv.cc.gcc}/lib/:${stdenv.cc.gcc}/lib64/" \ "$out/bin/rustc" '' else ""); }; - configureFlags = [ "--enable-local-rust" "--local-rust-root=$snapshot" ]; + configureFlags = [ "--enable-local-rust" "--local-rust-root=$snapshot" ] + ++ stdenv.lib.optional (stdenv.cc ? clang) "--enable-clang"; # 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 ] @@ -70,9 +69,9 @@ in stdenv.mkDerivation { postPatch = '' substituteInPlace src/librustc_trans/back/link.rs \ - --subst-var-by "ccPath" "${stdenv.gcc}/bin/cc" + --subst-var-by "ccPath" "${stdenv.cc}/bin/cc" substituteInPlace src/librustc_back/archive.rs \ - --subst-var-by "arPath" "${stdenv.gcc.binutils}/bin/ar" + --subst-var-by "arPath" "${stdenv.cc.binutils}/bin/ar" substituteInPlace src/rust-installer/gen-install-script.sh \ --replace /bin/echo "${coreutils}/bin/echo" |