about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2021-06-30 15:49:15 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2021-10-06 16:59:19 -0400
commit0ee5640d78f53c2b912accf7573fb628224feca3 (patch)
tree26502490885ffbc3b615486612db79e22a14abe1
parent1d88d6faedf9255f2fcb30b1e9b1065f4524ddf4 (diff)
buildRustCrate: Fix extra cross args
Do proper list separation, use ld not cc because rustc doesn't `-Wl,`.
-rw-r--r--pkgs/build-support/rust/build-rust-crate/build-crate.nix4
1 files changed, 3 insertions, 1 deletions
diff --git a/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index 3441e2c5e7bf9..ba695f2f66c30 100644
--- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -15,8 +15,10 @@
         "--remap-path-prefix=$NIX_BUILD_TOP=/"
         (mkRustcDepArgs dependencies crateRenames)
         (mkRustcFeatureArgs crateFeatures)
+      ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+        "--target" (rust.toRustTargetSpec stdenv.hostPlatform)
+        "-C" "linker=${stdenv.hostPlatform.config}-ld"
       ] ++ extraRustcOpts
-      ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTargetSpec stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc"
       # since rustc 1.42 the "proc_macro" crate is part of the default crate prelude
       # https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022
       ++ lib.optional (lib.elem "proc-macro" crateType) "--extern proc_macro"