diff options
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/adapters.nix | 8 | ||||
-rw-r--r-- | pkgs/stdenv/generic/default.nix | 8 |
2 files changed, 13 insertions, 3 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix index 87d3938f13d..0b6707bf8b1 100644 --- a/pkgs/stdenv/adapters.nix +++ b/pkgs/stdenv/adapters.nix @@ -96,8 +96,12 @@ rec { name = name + "-" + cross.config; nativeBuildInputs = nativeBuildInputsDrvs ++ nativeInputsFromBuildInputs - ++ [ gccCross binutilsCross ] ++ - stdenv.lib.optional selfNativeBuildInput nativeDrv; + ++ [ gccCross binutilsCross ] + ++ stdenv.lib.optional selfNativeBuildInput nativeDrv + # without proper `file` command, libtool sometimes fails + # to recognize 64-bit DLLs + ++ stdenv.lib.optional (cross.config == "x86_64-w64-mingw32") pkgs.file + ; # Cross-linking dynamic libraries, every buildInput should # be propagated because ld needs the -rpath-link to find diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index a51289fa901..b2891030728 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -196,7 +196,13 @@ let buildInputs = if crossConfig != null then buildInputs' else []; propagatedBuildInputs = if crossConfig != null then propagatedBuildInputs else []; # Inputs built by the usual native compiler. - nativeBuildInputs = nativeBuildInputs ++ (if crossConfig == null then buildInputs' else []); + nativeBuildInputs = nativeBuildInputs + ++ lib.optionals (crossConfig == null) buildInputs' + ++ lib.optional + (result.isCygwin + || (crossConfig != null && lib.hasSuffix "mingw32" crossConfig)) + ../../build-support/setup-hooks/win-dll-link.sh + ; propagatedNativeBuildInputs = propagatedNativeBuildInputs ++ (if crossConfig == null then propagatedBuildInputs else []); } // ifDarwin { |