GCC for Windows 64 & 32 bits

This is an old revision of the document!


Current version: v7

v7.0.0: 2019-11-10

Notable changes:

  • Unordered List Item_FORTIFY_SOURCE support thanks to Christian Franke.
  • Lots of math fixes from Martin Storsjö.
  • Many headers updated from Wine by Jacek Caban.
  • UCRT support by Martin Storsjö.
And many other additions thanks to, but not limited to (in Alphabetical order)

Previous Versions

v6.0.0: 2018-09-17

Notable changes:

  • C++ __cxa_atexit thanks to Martin Storsjö and Liu Hao
  • Massive additions to support UCRT thanks to Martin Storsjö
  • Sync COM interface headers with Wine development thanks to Jacek Caban
  • WinRT additions thanks to Hugo Beauzée-Luyssen
  • ARM32 and ARM64 additions thanks to Martin Storsjö
  • CRT library api-ms-win-core additions thanks to Martin Storsjö
  • CRT library def file reorganization thanks to Martin Storsjö
And many other additions thanks to, but not limited to (in Alphabetical order)


v5.0.4: 2018-06-04

  • Fix gcc-8.1.0 compatibility regarding _xgetbv
  • %e printf specifier will now produce at least 2 digits for the exponent.

v5.0.3: 2017-11-04

  • pseudo-reloc will now try to restore page protection settings prior to manipulating it, rather than simply assuming it was read-only with execute.
  • winpthreads: Fix undefined __divmoddi4 when compiling with newly bootstrapped gcc-7
  • Fixed modf family segfault due to eax clobbering.

v5.0.2: 2017-03-28

  • RegSetKeyValueW now has proper wide arguments.
  • Fix some crashes in winpthreads due to misaligned memory access when used with some SSE instructions.
  • Fix pdh.h function calls to have proper stdcall decorators.

v5.0.1: 2017-01-06

  • Don't use feature (__attribute__((gcc_struct))) that isn't supported on clang when compiling on clang thanks to David Wohlferd.
  • Various ARM math fixes thanks to Martin Storsjö
  • Removed some duplicate uuids defintions, thanks to Hugo Beauzée-Luyssen.
  • Define IN6_IS_ADDR_ macros to conform to Posix Specm thanks to Jean-Baptiste Kempf
  • dxva.h: Add support for VP8/9 in DxVA2 thanks to Yuta Nakai

v5.0.0: 2016-10-19

  • Fixes to the __mingw_printf family of functions.
  • DirectX updates from Wine.
  • Various updates to support Windows 7 and 10.
  • Various header typo fixes.


  • 32bit ARM thumb software math (Thanks to André Hentschel!).
  • New ftw() support for gcc-5.x support.
  • Experimental printf changes - Ability to print 128bit integers (%I128*) and Decimal Floats (%H, %D), disabled by default. Build the CRT with —-enable-experimental to use.
  • Updated OpenGL 4.5 headers.
  • Better DirectX 11 support.
  • Better Windows 7, 8/8.1 API support.


  • Required for GCC 4.8.
  • Much improved floating point math performance.
  • Improved MSVC intrinsics performance.
  • Addition of wide variants in C99 printf and scanf.
  • Partial C1X secure CRT support.
  • Partial MS Secure CRT templates for C++.
  • Vastly improved Windows 7 and 8 win32 API support.
  • POSIX-style Large File Support.
  • Winpthread: new library, pthreads implementation for Windows.
  • Winstorecompat: new library for Windows Store compatibility (WIP).


  • Expanded Windows Vista/7 API support.