Releases: redpanda-cpp/mingw-lite
15.2.0-r6
TL;DR
For most cases, you can use mingw64-ucrt-15.2.0-r6.tar.zst or .7z.
To enable shared runtime libraries, copy $prefix/lib/shared/* to $prefix/.
To build apps for Windows 11, which forces x86-64-v2 micro architecture level, you can use mingw64_v2-ucrt-15.2.0-r6.tar.zst or .7z for better performance.
Archives
mingw<profile>-<version>.tar.zst,.7z: native compiler.- These are what you need.
x-mingw<profile>-<version>.tar.zst: cross compiler.- Running on Ubuntu 24.04 x86-64.
- For internal use and downstream integration.
xmake-mingw<profile>-<version>.7z: Xmake.- Upstream releases recommended for Windows NT ≥ 6.0.
Profiles
Main profiles:
| Profile | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 64-mcf | x86-64 | ucrt | mcf | seh | NT 6.1 (7) |
| 64-win32 | x86-64 | ucrt | win32 | seh | NT 6.0 (Vista) |
| 64-ucrt | x86-64 | ucrt | posix | seh | NT 5.2 (2003) |
| 64-msvcrt | x86-64 | msvcrt | posix | seh | NT 5.2 (2003) |
| 32-mcf | pentium4 | ucrt | mcf | dwarf | NT 6.1 (7) |
| 32-win32 | pentium4 | ucrt | win32 | dwarf | NT 6.0 (Vista) |
| 32-ucrt | pentium4 | ucrt | posix | dwarf | NT 5.1 (XP) |
| 32-msvcrt | pentium4 | msvcrt | posix | dwarf | NT 5.1 (XP) |
Profile variants for better performance:
| Profile variant | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 64_v2-mcf | x86-64-v2 | ucrt | mcf | seh | NT 6.1 (7) |
| 64_v2-win32 | x86-64-v2 | ucrt | win32 | seh | NT 6.0 (Vista) |
| 64_v2-ucrt | x86-64-v2 | ucrt | posix | seh | NT 5.2 (2003) |
| 64_v2-msvcrt | x86-64-v2 | msvcrt | posix | seh | NT 5.2 (2003) |
Profile variant for earlier Windows versions:
| Profile variant | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 32-msvcrt_win2000 | pentium4 | msvcrt | posix | dwarf | NT 5.0 (2000) |
| 32_686-msvcrt_win98 | i686 | msvcrt | posix | dwarf | NT 4.0, 4.10 (98) |
| 32_486-msvcrt_win98 | i486 | msvcrt | posix | dwarf | NT 4.0, 4.10 (98) |
Component Versions
- Binutils: 2.45.1
- GCC: 15.2.0
- GDB: 17.1
- GNU Make: 4.4.1
- MCF Gthread: 2.1-ga.1
- MinGW-w64: 13.0.0
- pkgconf: 2.5.1
Changes Since 15.1.0-r0
15.2.0-r6
- Upgrade GDB to 17.1.
- Fix the build logic that causes GCC still links static libgcc when shared libraries exist.
- Fix GCC’s tooldir for finding Binutils.
- Previously, invoking GCC without prepending it to PATH would fail (cannot find Binutils); or even worse, “succeeded” with wrong Binutils (from other toolchain in PATH).
15.2.0-r5
BREAKING changes:
- The
__FILE__macro is now expanded to UTF-8 encoded string.- This fixes
__FILE__with-fexec-charset=<whatever>. - This MAY break plain
printf("%s", __FILE__)without specifying execution charset, which accidentally works without UTF-8 manifest support (i.e. Windows 7).
- This fixes
- The UTF-8 manifest is now conforming.
- It is compatible with all Windows versions, and thus is applied to all profiles.
- This MAY break IDEs that determine the encoding by inspecting the manifest.
Other changes:
- Restore Windows 9x support.
- Profile variants
*_winnt40are now migrated to*_win98.
- Profile variants
- Upgrade Binutils to 2.45.1.
- Workaround GDB step over failure in
ostream::operator<<by disabling tail call optimization in affected functions. - Add shared runtime libraries (to profiles that target Windows NT ≥ 5.1).
- The toolchains are kept static by default.
- To enable shared runtime libraries, copy
$prefix/lib/shared/*to$prefix/.
- Workaround CRT bugs in “double translation” that causes sanity-draining console output (e.g. “版本” → “苞纡柄菌”).
- With the fix of UTF-8 manifest conformance, the main profiles are now extended to support Windows NT 5.2 (2003) and 5.1 (XP).
- The profile variant
32-msvcrt_win2000is now deprecated. It will be kept in current release branches (15, 14, 13) until EOL, and instantly removed in branch 16.
- The profile variant
15.2.0-r4
- Fix GDB XML support.
- Fix gdbserver listening port display on Windows 2000 or earlier.
- Fix Binutils error when loading bfd plugins.
- Fix duplicated files when extracting zstd-compressed tarball with 7z.
15.2.0-r3
- Make pkgconf default to static link.
15.2.0-r2
- Add pkgconf (for upcoming library packages).
15.2.0-r1
- Enable OpenMP.
15.2.0-r0
- Upgrade GCC to 15.2.0.
- Upgrade Binutils to 2.45.
- Enable Fortran support in cross compiler.
- Reorganize micro architecture.
- “mingw64_v2” profiles added with
-march=x86-64-v2(sse4.2, 2008) and-O2(instead of-Os). - “mingw32” profiles now built with
-march=pentium4(sse2, 2000) and-mfpmath=sse. - “mingw32_686” and “mingw32_486” profiles added with
-march=i686(cmov, 1995) and-march=i486(atomic, 1989) respectively (legacy OS only).
- “mingw64_v2” profiles added with
15.1.0-r3
- Fix libintl auto-detection failure in Binutils and GNU Make.
- Upgrade MinGW-w64 to 13.0.0.
15.1.0-r2
- Restore Windows NT 4.0 support.
- Fix libintl cache invalidation bug.
- Xmake is now moved to a separate package.
15.1.0-r1
- Upgrade MCF Gthread to 2.1-ga.1.
- Rewrite libintl for Windows to enable NLS for Binutils and GNU Make.
- The cross compiler is now organized by package.
- 7z archives are added back.
- The UTF-8 manifest is added to all executables (that target Windows Vista or later).
- Xmake is now moved away from the default prefix to
lib/xmake. (It will be moved to a separate package in the future.)
14.3.0-r6
release 15.2.0-r6, 14.3.0-r6, 13.4.0-r6
13.4.0-r6
release 15.2.0-r6, 14.3.0-r6, 13.4.0-r6
16-20260111-r0
bump gcc to 16-20260111
15.2.0-r5
TL;DR
For most cases, you can use mingw64-ucrt-15.2.0-r5.tar.zst or .7z.
To enable shared runtime libraries, copy $prefix/lib/shared/* to $prefix/.
To build apps for Windows 11, which forces x86-64-v2 micro architecture level, you can use mingw64_v2-ucrt-15.2.0-r5.tar.zst or .7z for better performance.
Archives
mingw<profile>-<version>.tar.zst,.7z: native compiler.- These are what you need.
x-mingw<profile>-<version>.tar.zst: cross compiler.- Running on Ubuntu 24.04 x86-64.
- For internal use and downstream integration.
xmake-mingw<profile>-<version>.7z: Xmake.- Upstream releases recommended for Windows NT ≥ 6.0.
Profiles
Main profiles:
| Profile | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 64-mcf | x86-64 | ucrt | mcf | seh | NT 6.1 (7) |
| 64-win32 | x86-64 | ucrt | win32 | seh | NT 6.0 (Vista) |
| 64-ucrt | x86-64 | ucrt | posix | seh | NT 5.2 (2003) |
| 64-msvcrt | x86-64 | msvcrt | posix | seh | NT 5.2 (2003) |
| 32-mcf | pentium4 | ucrt | mcf | dwarf | NT 6.1 (7) |
| 32-win32 | pentium4 | ucrt | win32 | dwarf | NT 6.0 (Vista) |
| 32-ucrt | pentium4 | ucrt | posix | dwarf | NT 5.1 (XP) |
| 32-msvcrt | pentium4 | msvcrt | posix | dwarf | NT 5.1 (XP) |
Profile variants for better performance:
| Profile variant | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 64_v2-mcf | x86-64-v2 | ucrt | mcf | seh | NT 6.1 (7) |
| 64_v2-win32 | x86-64-v2 | ucrt | win32 | seh | NT 6.0 (Vista) |
| 64_v2-ucrt | x86-64-v2 | ucrt | posix | seh | NT 5.2 (2003) |
| 64_v2-msvcrt | x86-64-v2 | msvcrt | posix | seh | NT 5.2 (2003) |
Profile variant for earlier Windows versions:
| Profile variant | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 32-msvcrt_win2000 | pentium4 | msvcrt | posix | dwarf | NT 5.0 (2000) |
| 32_686-msvcrt_win98 | i686 | msvcrt | posix | dwarf | NT 4.0, 4.10 (98) |
| 32_486-msvcrt_win98 | i486 | msvcrt | posix | dwarf | NT 4.0, 4.10 (98) |
Component Versions
- Binutils: 2.45.1
- GCC: 15.2.0
- GDB: 16.3
- GNU Make: 4.4.1
- MCF Gthread: 2.1-ga.1
- MinGW-w64: 13.0.0
- pkgconf: 2.5.1
Changes Since 15.1.0-r0
15.2.0-r5
BREAKING changes:
- The
__FILE__macro is now expanded to UTF-8 encoded string.- This fixes
__FILE__with-fexec-charset=<whatever>. - This MAY break plain
printf("%s", __FILE__)without specifying execution charset, which accidentally works without UTF-8 manifest support (i.e. Windows 7).
- This fixes
- The UTF-8 manifest is now conforming.
- It is compatible with all Windows versions, and thus is applied to all profiles.
- This MAY break IDEs that determine the encoding by inspecting the manifest.
Other changes:
- Restore Windows 9x support.
- Profile variants
*_winnt40are now migrated to*_win98.
- Profile variants
- Upgrade Binutils to 2.45.1.
- Workaround GDB step over failure in
ostream::operator<<by disabling tail call optimization in affected functions. - Add shared runtime libraries (to profiles that target Windows NT ≥ 5.1).
- The toolchains are kept static by default.
- To enable shared runtime libraries, copy
$prefix/lib/shared/*to$prefix/.
- Workaround CRT bugs in “double translation” that causes sanity-draining console output (e.g. “版本” → “苞纡柄菌”).
- With the fix of UTF-8 manifest conformance, the main profiles are now extended to support Windows NT 5.2 (2003) and 5.1 (XP).
- The profile variant
32-msvcrt_win2000is now deprecated. It will be kept in current release branches (15, 14, 13) until EOL, and instantly removed in branch 16.
- The profile variant
15.2.0-r4
- Fix GDB XML support.
- Fix gdbserver listening port display on Windows 2000 or earlier.
- Fix Binutils error when loading bfd plugins.
- Fix duplicated files when extracting zstd-compressed tarball with 7z.
15.2.0-r3
- Make pkgconf default to static link.
15.2.0-r2
- Add pkgconf (for upcoming library packages).
15.2.0-r1
- Enable OpenMP.
15.2.0-r0
- Upgrade GCC to 15.2.0.
- Upgrade Binutils to 2.45.
- Enable Fortran support in cross compiler.
- Reorganize micro architecture.
- “mingw64_v2” profiles added with
-march=x86-64-v2(sse4.2, 2008) and-O2(instead of-Os). - “mingw32” profiles now built with
-march=pentium4(sse2, 2000) and-mfpmath=sse. - “mingw32_686” and “mingw32_486” profiles added with
-march=i686(cmov, 1995) and-march=i486(atomic, 1989) respectively (legacy OS only).
- “mingw64_v2” profiles added with
15.1.0-r3
- Fix libintl auto-detection failure in Binutils and GNU Make.
- Upgrade MinGW-w64 to 13.0.0.
15.1.0-r2
- Restore Windows NT 4.0 support.
- Fix libintl cache invalidation bug.
- Xmake is now moved to a separate package.
15.1.0-r1
- Upgrade MCF Gthread to 2.1-ga.1.
- Rewrite libintl for Windows to enable NLS for Binutils and GNU Make.
- The cross compiler is now organized by package.
- 7z archives are added back.
- The UTF-8 manifest is added to all executables (that target Windows Vista or later).
- Xmake is now moved away from the default prefix to
lib/xmake. (It will be moved to a separate package in the future.)
14.3.0-r5
disable host LTO when building shared runtime library
13.4.0-r5
disable host LTO when building shared runtime library
16-20251130-r0
bump gcc to 16-20251130
16-20251019-r0
bump gcc to 16-20251019
15.2.0-r4
Quick Links
For most cases, you can use mingw64-ucrt-15.2.0-r4.tar.zst or .7z.
To build apps for Windows 11, which forces x86-64-v2 micro architecture level, you can use mingw64_v2-ucrt-15.2.0-r4.tar.zst or .7z for better performance.
Archives
mingw<profile>-<version>.tar.zst,.7z: native compiler.- These are what you need.
x-mingw<profile>-<version>.tar.zst: cross compiler.- Running on Ubuntu 24.04 x86-64.
- For internal use and downstream integration.
xmake-mingw<profile>-<version>.7z: Xmake.- Available for the profile variants that target Windows NT < 6.0.
Profiles
Main profiles:
| Profile | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 64-mcf | x86-64 | ucrt | mcf | seh | Windows 7 (NT 6.1) |
| 64-win32 | x86-64 | ucrt | win32 | seh | Windows Vista (NT 6.0) |
| 64-ucrt | x86-64 | ucrt | posix | seh | Windows Vista (NT 6.0) |
| 64-msvcrt | x86-64 | msvcrt | posix | seh | Windows Vista (NT 6.0) |
| 32-mcf | pentium4 | ucrt | mcf | dwarf | Windows 7 (NT 6.1) |
| 32-win32 | pentium4 | ucrt | win32 | dwarf | Windows Vista (NT 6.0) |
| 32-ucrt | pentium4 | ucrt | posix | dwarf | Windows Vista (NT 6.0) |
| 32-msvcrt | pentium4 | msvcrt | posix | dwarf | Windows Vista (NT 6.0) |
Profile variants for better performance:
| Profile variant | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 64_v2-mcf | x86-64-v2 | ucrt | mcf | seh | Windows 7 (NT 6.1) |
| 64_v2-win32 | x86-64-v2 | ucrt | win32 | seh | Windows Vista (NT 6.0) |
| 64_v2-ucrt | x86-64-v2 | ucrt | posix | seh | Windows Vista (NT 6.0) |
| 64_v2-msvcrt | x86-64-v2 | msvcrt | posix | seh | Windows Vista (NT 6.0) |
Profile variant for earlier Windows versions:
| Profile variant | Arch | CRT | Thread | Exception | Min. OS |
|---|---|---|---|---|---|
| 32-msvcrt_win2000 | pentium4 | msvcrt | posix | dwarf | Windows 2000 (NT 5.0) |
| 32_686-msvcrt_winnt40 | i686 | msvcrt | posix | dwarf | Windows NT 4.0 |
| 32_486-msvcrt_winnt40 | i486 | msvcrt | posix | dwarf | Windows NT 4.0 |
Component Versions
- Binutils: 2.45
- GCC: 15.2.0
- GDB: 16.3
- GNU Make: 4.4.1
- MCF Gthread: 2.1-ga.1
- MinGW-w64: 13.0.0
- pkgconf: 2.5.1
Changes Since 15.1.0-r0
15.2.0-r4
- Fix GDB XML support.
- Fix gdbserver listening port display on Windows 2000 or earlier.
- Fix Binutils error when loading bfd plugins.
- Fix duplicated files when extracting zstd-compressed tarball with 7z.
15.2.0-r3
- Make pkgconf default to static link.
15.2.0-r2
- Add pkgconf (for upcoming library packages).
15.2.0-r1
- Enable OpenMP.
15.2.0-r0
- Upgrade GCC to 15.2.0.
- Upgrade Binutils to 2.45.
- Enable Fortran support in cross compiler.
- Reorganize micro architecture.
- “mingw64_v2” profiles added with
-march=x86-64-v2(sse4.2, 2008) and-O2(instead of-Os). - “mingw32” profiles now built with
-march=pentium4(sse2, 2000) and-mfpmath=sse. - “mingw32_686” and “mingw32_486” profiles added with
-march=i686(cmov, 1995) and-march=i486(atomic, 1989) respectively (legacy OS only).
- “mingw64_v2” profiles added with
15.1.0-r3
- Fix libintl auto-detection failure in Binutils and GNU Make.
- Upgrade MinGW-w64 to 13.0.0.
15.1.0-r2
- Restore Windows NT 4.0 support.
- Fix libintl cache invalidation bug.
- Xmake is now moved to a separate package.
15.1.0-r1
- Upgrade MCF Gthread to 2.1-ga.1.
- Rewrite libintl for Windows to enable NLS for Binutils and GNU Make.
- The cross compiler is now organized by package.
- 7z archives are added back.
- The UTF-8 manifest is added to all executables (that target Windows Vista or later).
- Xmake is now moved away from the default prefix to
lib/xmake. (It will be moved to a separate package in the future.)