Download List

Sponsored link

Project Description

This is the official download site for the latest packages originating from the 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 Project, and its use by any other project is unauthorized.

System Requirements

System requirement is not defined

Released at 2018-02-27 01:37 Windows System Libraries (WSL) C-Runtime Library (32-bit), Version 5.1 (10 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-22  Keith Marshall  <>

         Correct <sys/timeb.h> 32-bit vs. 64-bit time_t anomalies.

         * include/sys/timeb.h: Assert copyright; tidy layout.
         (_TIMEB_H_): Original multiple inclusion guard macro; rename it...
         (_SYS_TIMEB_H): ...conforming to this preferred naming convention.
         (GCC system_header): Add pragma, asserting it as such a header.
         (__need_time_t): Define for selective <sys/types.h> inclusion.
         (_BEGIN_C_DECLS, _END_C_DECLS): Use them as appropriate.
         (pragma pack): Push to pack all structs with 2-byte alignment.
         (struct timeb): Mark as deprecated, from POSIX.1-2001 onwards.
         (ftime): Likewise, mark as deprecated; always emulate it by in-line
         redirection to _ftime(), however this may be implemented.
         (struct __timeb32): Make its definition unconditionally visible.
         (_ftime32) [__MSVCRT_VERSION__ >= __MSVCR80_DLL]: Declare prototype.
         (_ftime32) [_WIN64 || _WIN32_WINNT >= _WIN32_WINNT_VISTA]: Likewise,
         otherwise emulate it by in-line redirection to 32-bit _ftime().
         (struct __timeb64, _ftime64): Make visibility condition symbolic...
         [__MSVCRT_VERSION__ >= __MSVCR61_DLL]: ...thus; add visibility for...
         [_WIN64 || _WIN32_WINNT >= _WIN32_WINNT_WIN2K]: ...these alternatives.
         (_ftime) [__MSVCRT_VERSION__ < __MSVCR80_DLL]: Declare prototype.
         (_ftime) [__MSVCRT_VERSION__ >= __MSVCR80_DLL]: Emulate it...
         [_USE_32BIT_TIME_T]: in-line redirection to _ftime32(), else...
         [!_USE_32BIT_TIME_T]: _ftime64().

         * tests/ [sys/timeb.h]: Suppress "deprecated" warnings.

 2018-02-22  Keith Marshall  <>

         Correct Windows version support for <utime.h> functions.

         * include/sys/utime.h: Tidy layout; assert copyright.
         (_UTIME_H_): Rename this repeat inclusion guard macro...
         (_SYS_UTIME_H): this, for consistency with current practice.
         (_BEGIN_C_DECLS, _END_C_DECLS): Use them, as appropriate.
         (struct __utimbuf32): Define it unconditionally; remove...
         [__MSVCRT_VERSION__>=0x0800]: ...this prerequisite.
         (_utime32, _wutime32, _futime32): Declare them for...
         [_WIN32_WINNT >= _WIN32_WINNT_VISTA]: ...this, in addition to...
         [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...this original condition, but
         also emulate them in-line, if neither condition applies.
         [__MSVCRT_VERSION__>=__MSVCR80.DLL] (_utime, _wutime, _futime):
         Implement them in-line, delegating each respectively to...
         [_USE_32BIT_TIME_T] (_utime32, _wutime32, _futime32): ...these, or...
         [!_USE_32BIT_TIME_T] (_utime64, _wutime64, _futime64): these.
         [__MSVCRT_VERSION__>=__MSVCR80.DLL] (utime): Implement in-line, or...
         [__MSVCRT_VERSION__<__MSVCR80.DLL] (utime): ...declare it.

 2018-01-17  Keith Marshall  <>

         Fix faulty POSIX deprecation warning logic.

         * include/ (__POSIX_2008_DEPRECATED): Do not nest...
         (__POSIX_2001_DEPRECATED): ...within defininion of this; similarly...
         (__POSIX_1995_DEPRECATED): ...neither within this; rename this as...
         (__POSIX_1996_DEPRECATED): ...this; although conditional upon...
         [_POSIX_C_SOURCE >= 199506L]: ...this, the corresponding standard was
         eventually ratified, not as POSIX.1-1995, but as POSIX.1-1996

 2017-12-28  Keith Marshall  <>

         Fix a build issue, assembling generic SX files.

         * ( Always use $( to pre-process
         and assemble these; with $(CC) -c $(ALL_CPPFLAGS) $(ASFLAGS), versions
         of GCC, prior to GCC-4.3, will fail to identify the source file suffix
         correctly, resulting in failure to assemble the code.

 2017-12-18  Keith Marshall  <>

         Support strtok() re-entrancy, per request [#2342].

         * mingwex/strtok_r.c: New file; it implements...
         (strtok_r): ...this function, per POSIX.1-1995 specification.
         * (libmingwex.a): Add reference; make it depend on...
         (strtok_r.$OBJEXT): ...this.

         * include/string.h: Declare corresponding runtime API.
         [_POSIX_C_SOURCE >= 199506L] (strtok_r): Add function prototype.
         [__MSVCRT_VERSION__ >= __MSVCR80_DLL] (strtok_s): Likewise; this is
         the Microsoft equivalent function, first introduced in this non-free
         MSVC runtime library; subsequently available in MSVCRT.DLL since...
         [_WIN32_WINNT >= _WIN32_WINNT_VISTA]: ...this release, likewise.
 2017-12-16  Keith Marshall  <>

         Implement autotest module for POSIX clock API functions.

         * tests/ New file.
         * tests/ ( Incorporate it.

 2017-12-15  Keith Marshall  <>

         Implement a subset of the POSIX.1b-1993 clock API.

         * include/time.h [_POSIX_C_SOURCE >= 199309L]
         (clockid_t): New structured data type; define it opaquely, and...
         (CLOCK_REALTIME, CLOCK_MONOTONIC): ...declare these extern instances.
         (clock_getres, clock_gettime, clock_settime): New functions; declare

         * mingwex/clockapi.h mingwex/clockapi.c mingwex/clockres.c
         * mingwex/clockset.c mingwex/clocktime.c: New files; they implement
         the preceding clock instances, and associated API functions.

         * include/sys/time.h [_POSIX_C_SOURCE >= 200809L] (gettimeofday):
         Mark it as "deprecated".

 2017-12-14  Keith Marshall  <>

         Add support for POSIX.1 "obsolescence" warnings.

         * include/ (__POSIX_1995_DEPRECATED)
         (__POSIX_2001_DEPRECATED, __POSIX_2008_DEPRECATED): New macros; define
         them, such as each is conditional on the specific value assigned to...
         [_POSIX_C_SOURCE]: ...this feature test macro, as the equivalent of...
         (__MINGW_ATTRIB_DEPRECATED): ...this, or of nothing, as appropriate.