This is the official download site for the latest packages originating from the MinGW.OSDN Project, (formerly the MinGW.org 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.
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 <keith@users.osdn.me> Prepare and publish MinGW.org WSL-5.1 release. * All files (wsl-5.1-release): Tag assigned. 2018-02-22 Keith Marshall <keith@users.osdn.me> 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]: ...by in-line redirection to _ftime32(), else... [!_USE_32BIT_TIME_T]: ...to _ftime64(). * tests/headers.at [sys/timeb.h]: Suppress "deprecated" warnings. 2018-02-22 Keith Marshall <keith@users.osdn.me> 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): ...to 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): ...to these. [__MSVCRT_VERSION__>=__MSVCR80.DLL] (utime): Implement in-line, or... [__MSVCRT_VERSION__<__MSVCR80.DLL] (utime): ...declare it. 2018-01-17 Keith Marshall <keith@users.osdn.me> Fix faulty POSIX deprecation warning logic. * include/_mingw.h.in (__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 <keith@users.osdn.me> Fix a build issue, assembling generic SX files. * Makefile.in (%_generic.sx): Always use $(COMPILE.sx) 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 <keith@users.osdn.me> Support strtok() re-entrancy, per request [#2342]. * mingwex/strtok_r.c: New file; it implements... (strtok_r): ...this function, per POSIX.1-1995 specification. * Makefile.in (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 <keith@users.osdn.me> Implement autotest module for POSIX clock API functions. * tests/clockapi.at: New file. * tests/testsuite.at.in (clockapi.at): Incorporate it. 2017-12-15 Keith Marshall <keith@users.osdn.me> 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 prototypes. * 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 <keith@users.osdn.me> Add support for POSIX.1 "obsolescence" warnings. * include/_mingwrt.h.in (__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.