Add clang64 toolchain to pkgsCross (#450796)

This commit is contained in:
John Ericson 2026-01-15 14:49:16 +00:00 committed by GitHub
commit 3ea6894af1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 30 additions and 12 deletions

View file

@ -341,32 +341,49 @@ rec {
# Windows
#
# 32 bit mingw-w64
mingw32 = {
# mingw-w64 with MSVCRT for i686
mingw-msvcrt-i686 = {
config = "i686-w64-mingw32";
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
};
# 64 bit mingw-w64
mingwW64 = {
# mingw-w64 with MSVCRT for x86_64
mingw-msvcrt-x86_64 = {
# That's the triplet they use in the mingw-w64 docs.
config = "x86_64-w64-mingw32";
libc = "msvcrt"; # This distinguishes the mingw (non posix) toolchain
};
ucrt64 = {
# mingw-w64 with UCRT for x86_64, default compiler
mingw-ucrt-x86_64 = {
config = "x86_64-w64-mingw32";
libc = "ucrt"; # This distinguishes the mingw (non posix) toolchain
};
# LLVM-based mingw-w64 for ARM
ucrtAarch64 = {
# mingw-w64 with UCRT for x86_64, LLVM
mingw-ucrt-x86_64-llvm = {
config = "x86_64-w64-mingw32";
libc = "ucrt";
rust.rustcTarget = "x86_64-pc-windows-gnullvm";
useLLVM = true;
};
# mingw-w64 with ucrt for Aarch64, default compiler (which is LLVM
# because GCC does not support this platform yet).
mingw-ucrt-aarch64 = {
config = "aarch64-w64-mingw32";
libc = "ucrt";
rust.rustcTarget = "aarch64-pc-windows-gnullvm";
useLLVM = true;
};
# mingw-64 back compat
# TODO: Warn after 26.05, and remove after 26.11.
mingw32 = mingw-msvcrt-i686;
mingwW64 = mingw-msvcrt-x86_64;
ucrt64 = mingw-ucrt-x86_64;
ucrtAarch64 = mingw-ucrt-aarch64;
# Target the MSVC ABI
x86_64-windows = {
config = "x86_64-pc-windows-msvc";

View file

@ -205,11 +205,12 @@ in
}
);
# Test some cross builds on 32 bit mingw-w64
crossMingw32 = mapTestOnCross systems.examples.mingw32 windowsCommon;
# Test some cross builds on 64 bit mingw-w64
crossMingwW64 = mapTestOnCross systems.examples.mingwW64 windowsCommon;
# Test some cross builds on various mingw-w64 platforms
crossMingw32 = mapTestOnCross systems.examples.mingw-msvcrt-i686 windowsCommon;
cross-mingw-msvcrt-x86_64 = mapTestOnCross systems.examples.mingw-msvcrt-x86_64 windowsCommon;
cross-mingw-ucrt-x86_64 = mapTestOnCross systems.examples.mingw-ucrt-x86_64 windowsCommon;
cross-mingw-ucrt-x86_64-llvm = mapTestOnCross systems.examples.mingw-ucrt-x86_64-llvm windowsCommon;
cross-mingw-ucrt-aarch64 = mapTestOnCross systems.examples.mingw-ucrt-aarch64 windowsCommon;
x86_64-cygwin = mapTestOnCross systems.examples.x86_64-cygwin cygwinCommon;