diff options
Diffstat (limited to 'pkgs/top-level/all-packages.nix')
-rw-r--r-- | pkgs/top-level/all-packages.nix | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c201715dfef..882a308d285 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5163,9 +5163,17 @@ with pkgs; gccApple = throw "gccApple is no longer supported"; + # Can't just overrideCC, because then the stdenv-cross mkDerivation will be + # thrown away. TODO: find a better solution for this. + crossLibcStdenv = buildPackages.makeStdenvCross { + inherit (buildPackages.buildPackages) stdenv; + inherit buildPlatform hostPlatform targetPlatform; + cc = buildPackages.gccCrossStageStatic; + }; + gccCrossStageStatic = assert targetPlatform != buildPlatform; let libcCross1 = - if targetPlatform.libc == "msvcrt" then windows.mingw_w64_headers + if targetPlatform.libc == "msvcrt" then __targetPackages.windows.mingw_w64_headers else if targetPlatform.libc == "libSystem" then darwin.xcode else null; in wrapCCCross { @@ -7800,13 +7808,7 @@ with pkgs; # Being redundant to avoid cycles on boot. TODO: find a better way glibcCross = callPackage ../development/libraries/glibc { installLocales = config.glibc.locales or false; - # Can't just overrideCC, because then the stdenv-cross mkDerivation will be - # thrown away. TODO: find a better solution for this. - stdenv = buildPackages.makeStdenvCross { - inherit (buildPackages.buildPackages) stdenv; - inherit buildPlatform hostPlatform targetPlatform; - cc = buildPackages.gccCrossStageStatic; - }; + stdenv = crossLibcStdenv; }; # We can choose: @@ -7815,7 +7817,7 @@ with pkgs; # hack fixes the hack, *sigh*. /**/ if name == "glibc" then __targetPackages.glibcCross or glibcCross else if name == "uclibc" then uclibcCross - else if name == "msvcrt" then windows.mingw_w64 + else if name == "msvcrt" then __targetPackages.windows.mingw_w64 or windows.mingw_w64 else if name == "libSystem" then darwin.xcode else throw "Unknown libc"; @@ -12561,17 +12563,12 @@ with pkgs; }; mingw_w64 = callPackage ../os-specific/windows/mingw-w64 { - gccCross = gccCrossStageStatic; - binutils = binutils; + stdenv = crossLibcStdenv; }; - mingw_w64_headers = callPackage ../os-specific/windows/mingw-w64 { - onlyHeaders = true; - }; + mingw_w64_headers = callPackage ../os-specific/windows/mingw-w64/headers.nix { }; - mingw_w64_pthreads = callPackage ../os-specific/windows/mingw-w64 { - onlyPthreads = true; - }; + mingw_w64_pthreads = callPackage ../os-specific/windows/mingw-w64/pthreads.nix { }; pthreads = callPackage ../os-specific/windows/pthread-w32 { mingw_headers = mingw_headers3; |