about summary refs log tree commit diff
path: root/lib/systems
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2023-09-08 14:29:54 +0800
committerMoritz Angermann <moritz.angermann@gmail.com>2023-09-08 10:56:08 +0000
commit1e0561d78a3d3cd84bac45ab474af82e32802120 (patch)
tree22799e02bcfd9b9e4b185f23dc5cea48d4473e59 /lib/systems
parenta81e3dcd759ffb44348186bdc3751af9ea2f1005 (diff)
nixpkgs/systems: Add ucrt64 as MinGW libc
The Minimalist Gnu for Windows distribution comes with support for
the traditional msvcrt libc, as well as ucrt64 libc. The latter
being the newer universal compiler runtime. We follow the msys2
environment naming convention[1]:

| name       | toolchain | arch    | libc   | libc++    |
|------------|-----------|---------|--------|-----------|
| mingw32    | gcc       | i686    | msvcrt | libstdc++ |
| mingw64    | gcc       | x86_64  | msvcrt | libstdc++ |
| ucrt64     | gcc       | x86_64  | ucrt   | libstdc++ |
| clang32    | llvm      | i686    | ucrt   | libc++    |
| clang64    | llvm      | x86_64  | ucrt   | libc++    |
| clangarm64 | llvm      | aarch64 | ucrt   | libc++    |

For now nixpkgs only supports the first three with this commit.

--
[1]: https://www.msys2.org/docs/environments/
Diffstat (limited to 'lib/systems')
-rw-r--r--lib/systems/examples.nix5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/systems/examples.nix b/lib/systems/examples.nix
index 8d9c09561ddb0..2a067663f98c3 100644
--- a/lib/systems/examples.nix
+++ b/lib/systems/examples.nix
@@ -313,6 +313,11 @@ rec {
     libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
   };
 
+  ucrt64 = {
+    config = "x86_64-w64-mingw32";
+    libc = "ucrt"; # This distinguishes the mingw (non posix) toolchain
+  };
+
   # BSDs
 
   x86_64-freebsd = {