From 4337a821b846f06a3ccd6dc1ff92daf4567f970e Mon Sep 17 00:00:00 2001 From: John Ericson Date: Wed, 30 Jun 2021 15:49:15 +0000 Subject: [PATCH] buildRustCrate: Fix extra cross args Do proper list separation, use ld not cc because rustc doesn't `-Wl,`. --- pkgs/build-support/rust/build-rust-crate/build-crate.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 df3129d536d..9a50633a58e 100644 --- a/pkgs/build-support/rust/build-rust-crate/build-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/build-crate.nix @@ -16,8 +16,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"