nixpkgs/pkgs/os-specific/windows/default.nix
Sergei Trofimovich c6132dcf23 pkgsCross.mingwW64.windows.mcfgthreads: add gcc13 compatible version
Upstream `gcc-13` merged `mcfgthreads` support with a caveat: it's
headers interface is not compatible with the patch `nixpkgs` was
carrying in `gcc-12` and before.

To keep both new (`gcc13`) and old (`_pre_gcc13`) version I held back
previous `windows.mcfgthreads` attribute as
`windows.mcfgthreads_pre_gcc_13`. It is used for `gcc` before 13.

The change fixes the build of `pkgsCross.mingwW64.stdenv` itself and
example program:

    $ nix build --impure --expr 'with import ./. {}; pkgsCross.mingwW64.re2c.override { stdenv = pkgsCross.mingwW64.gcc11Stdenv; }'
2023-06-08 07:43:56 +01:00

52 lines
1.2 KiB
Nix

{ lib, stdenv, buildPackages
, newScope, overrideCC, crossLibcStdenv, libcCross
}:
lib.makeScope newScope (self: with self; {
cygwinSetup = callPackage ./cygwin-setup { };
jom = callPackage ./jom { };
w32api = callPackage ./w32api { };
mingwrt = callPackage ./mingwrt { };
mingw_runtime = mingwrt;
mingw_w64 = callPackage ./mingw-w64 {
stdenv = crossLibcStdenv;
};
crossThreadsStdenv = overrideCC crossLibcStdenv
(if stdenv.hostPlatform.useLLVM or false
then buildPackages.llvmPackages_8.clangNoLibcxx
else buildPackages.gccCrossStageStatic.override (old: {
bintools = old.bintools.override {
libc = libcCross;
};
libc = libcCross;
}));
mingw_w64_headers = callPackage ./mingw-w64/headers.nix { };
mingw_w64_pthreads = callPackage ./mingw-w64/pthreads.nix {
stdenv = crossThreadsStdenv;
};
mcfgthreads_pre_gcc_13 = callPackage ./mcfgthreads/pre_gcc_13.nix {
stdenv = crossThreadsStdenv;
};
mcfgthreads = callPackage ./mcfgthreads {
stdenv = crossThreadsStdenv;
};
npiperelay = callPackage ./npiperelay { };
pthreads = callPackage ./pthread-w32 { };
wxMSW = callPackage ./wxMSW-2.8 { };
libgnurx = callPackage ./libgnurx { };
})