diff options
Diffstat (limited to 'pkgs/stdenv/cross/default.nix')
-rw-r--r-- | pkgs/stdenv/cross/default.nix | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix index ab42dd319a6..29521874d1e 100644 --- a/pkgs/stdenv/cross/default.nix +++ b/pkgs/stdenv/cross/default.nix @@ -34,17 +34,31 @@ in lib.init bootStages ++ [ (buildPackages: { inherit config overlays; selfBuild = false; - stdenv = buildPackages.makeStdenvCross { - inherit (buildPackages) stdenv; + stdenv = buildPackages.stdenv.override (old: rec { buildPlatform = localSystem; hostPlatform = crossSystem; targetPlatform = crossSystem; + + # Prior overrides are surely not valid as packages built with this run on + # a different platform, and so are disabled. + overrides = _: _: {}; + extraBuildInputs = [ ]; # Old ones run on wrong platform + cc = if crossSystem.useiOSPrebuilt or false then buildPackages.darwin.iosSdkPkgs.clang else if crossSystem.useAndroidPrebuilt then buildPackages.androidenv."androidndkPkgs_${crossSystem.ndkVer}".gcc else buildPackages.gcc; - }; + + extraNativeBuildInputs = old.extraNativeBuildInputs + # without proper `file` command, libtool sometimes fails + # to recognize 64-bit DLLs + ++ lib.optional (hostPlatform.config == "x86_64-w64-mingw32") buildPackages.file + ++ lib.optional + (hostPlatform.isAarch64 || hostPlatform.isMips || hostPlatform.libc == "musl") + buildPackages.updateAutotoolsGnuConfigScriptsHook + ; + }); }) ] |