Download List

Project Description

This is the official download site for the latest packages originating from the MinGW.OSDN Project, (formerly the Project; however, that domain is no longer associated with this project).

MinGW is a native Windows port of the GNU Compiler Collection (GCC), with freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. Although (currently) offering only a 32-bit compiler suite, all of MinGW's software will execute on the 64bit Windows platforms.

MinGW is a registered trademark of Software in the Public Interest Inc., registration number 86017856; this trademark has been registered on behalf of the MinGW.OSDN Project, and its use by any other project is unauthorized.

System Requirements

System requirement is not defined
MinGW.OSDN Compiler Collection (GCC)

Released at 2018-02-27 01:39
MinGW.OSDN Windows System Libraries (WSL) Windows API (32-bit), Version 5.1 (4 files Hide)

Release Notes

No Release Notes


For full change history, up to this release, please refer to this ChangeLog file.

Changes introduced since the previous (version 5.0.2) release are:

2018-02-26  Keith Marshall  <>

         Prepare and publish WSL-5.1 release.

         * All files (wsl-5.1-release): Tag assigned.

 2018-02-24  Keith Marshall  <>

         Make <iptypes.h> header effectively self-contained.

         * include/iptypes.h: Assert copyright; tidy layout.
         Include <windef.h>; it is required for self-containment.
         (__need_time_t): Define for selective inclusion of <sys/types.h>
         (_BEGIN_C_DECLS, _END_C_DECLS): Use them as appropriate.
         (_WIN32_WINNT): Always compare it symbolically.
         (__dhcp_time_t): New temporary data type macro; define it...
         [_WIN64]: equivalent to __time64_t, otherwise...
         [!_WIN64]: ...equivalent to __time32_t, and then...
         (struct _IP_ADAPTER_INFO): ...use it as the data type for...
         (LeaseObtained, LeaseExpires): ...these fields.

 2017-12-20  Keith Marshall  <>

         Make <winreg.h> header effectively self-contained.

         * include/winreg.h: Include <winbase.h>, thus achieving effective
         self-containment; since this also indirectly includes <_mingw.h>,
         there is no longer any need to include it directly.

 2017-12-20  Keith Marshall  <>

         Clean up, following issue [#2262] patch application.

         * include/winreg.h: Tidy layout; correct copyright assertion.
         (_BEGIN_C_DECLS, _END_C_DECLS): Use them, as appropriate.
         [UNICODE] (__AW): Do not use deleted macro; replace it with...
         [UNICODE] (__AW_ALIAS__): ...this, for conditional typedef mapping...
         [UNICODE] (VALENT, PVALENT): ...of these; similarly replace with...
         [UNICODE] (__AW_SUFFIXED__): ...this, to define function mappings...
         [UNICODE] (AbortSystemShutdown, InitiateSystemShutdown)
         (RegConnectRegistry, RegCreateKey, RegCreateKeyEx, RegDeleteKey)
         (RegDeleteValue, RegEnumKey, RegEnumKeyEx, RegEnumValue, RegLoadKey)
         (RegOpenKey, RegOpenKeyEx, RegQueryInfoKey, RegQueryMultipleValues)
         (RegQueryValue, RegQueryValueEx, RegReplaceKey, RegRestoreKey)
         (RegSaveKey, RegSetValue, RegSetValueEx, RegUnLoadKey, RegSaveKeyEx)
         (RegDeleteKeyTransacted, RegDeleteKeyValue, RegDeleteTree, RegGetValue)
         (RegLoadMUIString, RegOpenKeyTransacted, RegSetKeyValue)
         (RegDeleteKeyEx, RegCopyTree, RegCreateKeyTransacted): ...for these.
         (RegDeleteKeyEx, RegDeleteKeyExA, RegDeleteKeyExW): Fix regression;
         all "4.x" branches specified these incorrectly, dependent on...
         [_WIN32_WINNT >= _WIN32_WINNT_WIN2K]: ...this condition, whereas the
         "legacy" branch, whence the "5.x" branches are propagated, correctly
         required an alternative condition which is the equivalent of...
         [_WIN32_WINNT >= _WIN32_WINNT_WS03]: ...this; revert it.

 2017-12-20  Sebastián Puebla  <>

         Update registry management API, per issue [#2262].

         * include/winreg.h: Merge changes from 4.1-dev branch.
         (RRF_ZEROONFAILURE): New manifest constants; define them.
         (RegDisablePredefinedCache, RegOpenCurrentUser, RegOpenUserClassesRoot)
         (RegOverridePredefKey): Add previously omitted function prototypes.
         [_WIN32_WINNT >= _WIN32_WINNT_WINXP] (RegSaveKeyEx): Define...
         [!defined UNICODE] (__AW): ...mapping it for SBCS/MBCS case, or...
         [defined UNICODE] (__AW): ...for UTF-16LE case to either one of...
         (RegSaveKeyExA, RegSaveKeyExW): ...these, respectively, and...
         [_WIN32_WINNT >= _WIN32_WINNT_WINXP]: ...declare function prototypes.
         [_WIN32_WINNT >= _WIN32_WINNT_WS03] (RegDisableReflectionKey)
         (RegEnableReflectionKey, RegQueryReflectionKey): Declare prototypes.
         [_WIN32_WINNT >= _WIN32_WINNT_VISTA] (RegCopyTreeA, RegCopyTreeW)
         (RegCreateKeyTransactedA, RegCreateKeyTransactedW)
         (RegDeleteKeyTransactedA, RegDeleteKeyTransactedW)
         (RegDeleteKeyValueA, RegDeleteKeyValueW)
         (RegDeleteTreeA, RegDeleteTreeW, RegDisablePredefinedCacheEx)
         (RegGetValueA, RegGetValueW, RegLoadMUIStringA, RegLoadMUIStringW)
         (RegOpenKeyTransactedA, RegOpenKeyTransactedW)
         (RegSetKeyValueA, RegSetKeyValueW): Declare prototypes.
         [_WIN32_WINNT >= _WIN32_WINNT_VISTA] (RegCopyTree)
         (RegCreateKeyTransacted, RegDeleteKeyTransacted, RegDeleteKeyValue)
         (RegDeleteTree, RegGetValue, RegLoadMUIString, RegOpenKeyTransacted)
         (RegSetKeyValue): Define, mapping each to its respective function...
         [!defined UNICODE] (__AW): ...for the SBCS/MBCS case, or...
         [defined UNICODE] (__AW): ...for the UTF-16LE case.

         * lib/kernel32.def (RegDeleteTreeA@8, RegDeleteTreeW@8)
         (RegDisablePredefinedCacheEx@0, RegGetValueA@28, RegGetValueW@28)
         (RegLoadMUIStringA@28, RegLoadMUIStringW@28, RegSaveKeyExA@16)
         (RegSaveKeyExW@16): Remove them; relocate them to...
         * lib/advapi32.def (RegDeleteTreeA@8, RegDeleteTreeW@8)
         (RegDisablePredefinedCacheEx@0, RegGetValueA@28, RegGetValueW@28)
         (RegLoadMUIStringA@28, RegLoadMUIStringW@28, RegSaveKeyExA@16)
         (RegSaveKeyExW@16): ...their correct location, here.
         (RegCopyTreeA@12, RegCopyTreeW@12, RegQueryReflectionKey@8)
         (RegCreateKeyTransactedA@44, RegCreateKeyTransactedW@44)
         (RegDeleteKeyTransactedA@24, RegDeleteKeyTransactedW@24)
         (RegDeleteKeyValueA@12, RegDeleteKeyValueW@12)
         (RegDisableReflectionKey@4, RegEnableReflectionKey@4)
         (RegOpenKeyTransactedA@28, RegOpenKeyTransactedW@28)
         (RegSetKeyValueA@24, RegSetKeyValueW@24): Add these.

 2017-12-16  Keith Marshall  <>

         Provide default definition for _WIN32_IE feature test macro.

         * include/sdkddkver.h [!defined _WIN32_IE]: Define it, with...
         (_WIN32_IE_IE50): ...this default value.

         * include/commctrl.h (_WIN32_IE): Delete definition hint; it offered
         a conflicting proposal for the default value.