On Tue, 13 Jan 2026, Luca Bacci wrote:

Users often rely on the __MINGW64_VERSION_MAJOR macro either for feature detection or to work around older issues.

However we increment __MINGW64_VERSION_MAJOR right after a release. For example, mingw-w64 13.0.0 was released on 2025-06-08, and the macro was bumped soon after branching (on 2025-06-05): https://github.com/mingw-w64/mingw-w64/commit/b45abfe

When code checks for __MINGW64_VERSION_MAJOR >= 13, the developer expects mingw-w64 13.0.0 as a base. Instead mingw-w64 could be a development snapshot made a after the 12.0.0 release. Note that MSYS2 uses development snapshots. Most Linux distributions use offical releases only, but users could package mingw-w64 themselves (e.g. AUR).

Yes, this is indeed an issue.

I think it could make things clearer, if we'd bump the minor version number when we branch off for a release. (In most cases, the release is just a tag on master; with this it would require one commit on that branch first.) This matches the versioning scheme used by both GCC and Clang/LLVM these days; while in development on git main, GCC is versioned e.g. as 16.0.0, but when branched for release, it becomes 16.1.0.

// Martin



_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to