In 2005, after the original MinGW project was not prompt on updating its code base to include key new APIs and 64-bit support, OneVision Software began reverse-engineering the 64-bit Windows API by
clean-room design. In 2008, OneVision donated the code to Kai Tietz, one of its lead developers, under the condition that it remain open source. It was first submitted to the original MinGW project, but refused under suspicion of using non-public or proprietary information. For many reasons, the lead developer and co-founder of the MinGW-w64 project, Kai Tietz, decided not to attempt further cooperation with MinGW. MinGW-w64 provides a more complete Win32 API implementation, including: • Better
C99 support •
POSIX Threads (pthreads) support (including the possibility to enable
C++11 thread-related functionality in GCC's
libstdc++) • GCC multilib, which allows users to install 32-bit and 64-bit libraries in parallel •
Unicode entry point (wmain/wWinMain) •
DDK (from
ReactOS) •
DirectX (from
Wine) •
Large file support •
Win64 support •
Structured Exception Handling (SEH) instead of
DWARF or
sjlj on x86-64 (from gcc 4.8+) • Some useful tools such as gendef (an improved version of MinGW's pexports utility), and widl (an
MIDL compiler from Wine). Additionally, the Mingw-w64 project maintains winpthreads, a
wrapper library similar to pthreads-win32, with the main difference that it allows GCC to use it as a threads library resulting in functional C++11 thread libraries , , and . == MSYS2 ==