diff --git a/pkgs/build-support/rust/build-rust-crate/default.nix b/pkgs/build-support/rust/build-rust-crate/default.nix index 0903096ed281..8ba8bcdb1a35 100644 --- a/pkgs/build-support/rust/build-rust-crate/default.nix +++ b/pkgs/build-support/rust/build-rust-crate/default.nix @@ -155,8 +155,6 @@ crate_: lib.makeOverridable ( # The rust compiler to use. - # - # Default: pkgs.rustc { rust ? rustc, # The cargo package to use for getting some metadata. diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ab5fbbc4ea45..81a5d2c6d34e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4401,11 +4401,20 @@ with pkgs; ); in callPackage ../build-support/rust/build-rust-crate ( - { } - // lib.optionalAttrs (stdenv.hostPlatform.libc == null) { + lib.optionalAttrs (stdenv.hostPlatform.libc == null) { stdenv = stdenvNoCC; # Some build targets without libc will fail to evaluate with a normal stdenv. } - // lib.optionalAttrs targetAlreadyIncluded { inherit (pkgsBuildBuild) rustc cargo; } # Optimization. + // ( + if targetAlreadyIncluded then + # Optimization + { + inherit (pkgsBuildBuild) rustc cargo; + } + else + { + inherit (pkgsBuildHost) rustc cargo; + } + ) ); buildRustCrateHelpers = callPackage ../build-support/rust/build-rust-crate/helpers.nix { };