Recent Project News

Printer-friendly version
Syndicate content
Recent posts to news
Updated: 14 hours 35 min ago

mingwrt-5.0 and w32api-5.0 released

2017, February 13 - 12:50

These two packages, (collectively designated as MinGW.org Windows System Libraries, or MinGW-WSL-5.0), have been released, and may be installed using the mingw-get installer; existing installations may be upgraded, in similar fashion, following a local catalogue update, by use of mingw-get's upgrade facility.

Alternatively, the associated packages are available for download, and manual installation:
https://sourceforge.net/projects/mingw/files/MinGW/Base/mingwrt/mingwrt-5.0/
https://sourceforge.net/projects/mingw/files/MinGW/Base/w32api/w32api-5.0/

These are derived from the MinGW-WSL-3.22 codebase, so should not perpetuate the mistakes which were inherent in the MinGW-WSL-4.x development branches. Significant changes, introduced for the MinGW-WSL-5.0 release, include:

  • Dynamic linking to libmingwex is now available, as an option; install the libmingwex-dev package to enable it, and deploy/distribute with the associated libmingwex-0.dll, from the libmingwex-dll-0 package.
  • The initialization code for the floating point environment has been substantially revised, to eliminate ambiguity over calls to the _fpreset() function; ambiguously selected MinGW replacements for this MSVCRT.DLL function are no longer provided; thus, if your code calls _fpreset(), with MinGW-WSL-5.0 and later, the call will always be directed to the MSVCRT.DLL implementation, causing the FPU to operate at 53-bit precision. The MinGW-WSL initial default, however, will remain at 64-bit precision; to deterministically alternate between 64-bit and 53-bit precision, you should use the ISO-C99 fesetenv() function, passing FE_PC64_ENV or FE_PC53_ENV as argument. (You are advised to avoid the ISO-C99 mandatory FE_DFL_ENV choice; by default, MinGW-WSL-5.0 initializes it to be equivalent to FE_PC64_ENV, but the capability to change this, by linking explicitly with CRT_fp8.o, is retained, thus retaining potential ambiguity. This capability may be removed, in a future release).
  • The glob() function now supports the optional GLOB_BRACE GNU extended feature.
  • The POSIX.1-2008 getline() function, (and its underlying getdelim() function), is added.
  • The POSIX.1-2001 setenv() and corresponding unsetenv() functions are added, complementing the existing MSVCRT.DLL putenv() function, which remains available.
  • The POSIX.1-2001 strerror_r() function is added; this also provides a mechanism for emulation of Microsoft's strerror_s() function, even on older Windows versions which do not support it natively within MSVCRT.DLL; thus, strerror_s() is also added.
  • The entire printf() family of functions, when invoked from source which declares itself to be _GNU_SOURCE, _BSD_SOURCE, _POSIX_SOURCE, _POSIX_C_SOURCE, or _XOPEN_SOURCE compliant, now supports thousands grouping within numeric data conversions, as mandated by POSIX.1-2008, (formerly a POSIX-XSI option), in locales which specify thousands grouping policy for the LC_NUMERIC category; (this is in addition to the POSIX.1-2008 direct parameter addressing feature for this same family of functions, added in mingwrt-3.22).

For details of other, less significant changes, please consult the respective ChangeLogs:
https://sourceforge.net/p/mingw/mingw-org-wsl/ci/5.0-active/tree/mingwrt/ChangeLog
https://sourceforge.net/p/mingw/mingw-org-wsl/ci/1559fe3708515b7c61a0e7d2672102ec5ea1f1fa/tree/w32api/ChangeLog

Site Status

Site maintenance completed May 25th, 2012 at 12:38 UTC