OSDN Git Service

Merge post 2017-11-09 changes from 5.2-trunk.
authorKeith Marshall <keith@users.osdn.me>
Mon, 1 Apr 2019 15:16:17 +0000 (16:16 +0100)
committerKeith Marshall <keith@users.osdn.me>
Mon, 1 Apr 2019 15:16:17 +0000 (16:16 +0100)
--HG--
rename : w32api/ChangeLog => wslapi/ChangeLog
rename : w32api/include/commctrl.h => wslapi/include/commctrl.h
rename : w32api/include/iptypes.h => wslapi/include/iptypes.h
rename : w32api/include/nspapi.h => wslapi/include/nspapi.h
rename : w32api/include/prsht.h => wslapi/include/prsht.h
rename : w32api/include/sdkddkver.h => wslapi/include/sdkddkver.h
rename : w32api/include/wincon.h => wslapi/include/wincon.h
rename : w32api/include/wincrypt.h => wslapi/include/wincrypt.h
rename : w32api/include/windows.h => wslapi/include/windows.h
rename : w32api/include/winerror.h => wslapi/include/winerror.h
rename : w32api/include/winreg.h => wslapi/include/winreg.h
rename : w32api/include/winsock.h => wslapi/include/winsock.h
rename : w32api/include/winsock2.h => wslapi/include/winsock2.h
rename : w32api/include/winver.h => wslapi/include/winver.h
rename : w32api/include/ws2spi.h => wslapi/include/ws2spi.h
rename : w32api/include/wsnetbs.h => wslapi/include/wsnetbs.h
rename : w32api/lib/advapi32.def => wslapi/lib/advapi32.def
rename : w32api/lib/kernel32.def => wslapi/lib/kernel32.def
rename : w32api/tests/Makefile.in => wslapi/tests/Makefile.in
rename : w32api/tests/headers.at => wslapi/tests/headers.at

27 files changed:
1  2 
ChangeLog
Makefile.comm
README
VERSION.m4
configure.ac
mingwrt/ChangeLog
mingwrt/Makefile.in
mingwrt/tests/Makefile.in
wslapi/ChangeLog
wslapi/include/commctrl.h
wslapi/include/iptypes.h
wslapi/include/nspapi.h
wslapi/include/prsht.h
wslapi/include/sdkddkver.h
wslapi/include/wincon.h
wslapi/include/wincrypt.h
wslapi/include/windows.h
wslapi/include/winerror.h
wslapi/include/winreg.h
wslapi/include/winsock.h
wslapi/include/winsock2.h
wslapi/include/winver.h
wslapi/include/ws2spi.h
wslapi/include/wsnetbs.h
wslapi/lib/advapi32.def
wslapi/lib/kernel32.def
wslapi/tests/Makefile.in

diff --cc ChangeLog
+++ b/ChangeLog
++2019-04-01  Keith Marshall  <keith@users.osdn.me>
++
++      Merge post 2017-11-09 changes from 5.2-trunk.
++
++      * VERSION.m4 (__VERSION__): Preserve 6.0-exp setting.
++      (LIBMINGWEX_A_DLLVERSION): Preserve 5.2-trunk setting.
++
++      * README (winapi): Delete reference; change it to...
++      (wslapi): ...this.
++
+ 2019-02-02  Keith Marshall  <keith@users.osdn.me>
+       Add build option for <features.h> sample distribution.
+       * configure.ac (lua): Add AC_PATH_PROG check; assign result to...
+       (LUA): ...this new AC_SUBST propagated macro definition.
+       * Makefile.in (dist): Add dependencies on...
+       (dist-prepare, dist-extra): ...these new goals; implement...
+       (dist-prepare): ...to initialize an empty staging directory, and...
+       (dist-extra): ...incorporate optional distributable components.
+       (features.stamp): New optional goal; selected by definition of...
+       (FEATURES): ...this user specified macro, nominally defined by...
+       (option, options): ...evaluation of command line assignment.
+       (features.lua, features.unsupported): New prerequisite goals.
+       (WSL_TMPDIR, FEATURES_H_INITIALIZE, FEATURES_CFG, LUA, LUACMD)
+       (TODAY, ISSUE): New supporting macros; define them.
+ 2019-01-22  Keith Marshall  <keith@users.osdn.me>
+       Adjust repository version following WSL-5.2.1 release.
+       * VERSION.m4 (__VERSION__): Increment it to 5.2.2
+ 2019-01-22  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.2.1 release.
+       * All files (wsl-5.2.1-release): Tag assigned.
+ 2019-01-22  Keith Marshall  <keith@users.osdn.me>
+       Incorporate user-customized <features.h> configuration.
+       * Makefile.comm (_mingw.h): Add prerequisite dependency on...
+       (features.h): ...this; add rule to create a build-time stub, an empty
+       file, yielding the default fall-back configuration.
+       * var/features.lua: New direcctory/file; this implements the mingw-get
+       post-install action, which is required to integrate management of user
+       maintained <features.h> configuration alongside project updates.
+ 2018-12-23  Keith Marshall  <keith@users.osdn.me>
+       Adjust repository version following WSL-5.2 release.
+       * VERSION.m4 (__VERSION__): Increment it to 5.2.1
+ 2018-12-23  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.2 release.
+       * All files (wsl-5.2-release): Tag assigned.
+ 2018-09-04  Keith Marshall  <keith@users.osdn.me>
+       Pre-empt default EXEEXT use before its determination.
+       * aclocal.m4 (MINGW_AC_NO_EXECUTABLES): Assign an initial assumed
+       $ac_exeext value of ".xyz"; it will be updated appropriately, when
+       an actual EXEEXT determination has been completed.
+ 2018-09-03  Keith Marshall  <keith@users.osdn.me>
+       Adjust repository version following WSL-5.1.1 release.
+       * All files (5.2-trunk): New development branch; switch to it.
+       * VERSION.m4 (__VERSION__): Increment it to 5.2
+       (libmingwex.dll.a): Update ABI version identifier.
+ 2018-09-03  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.1.1 release.
+       * All files (wsl-5.1.1-release): Tag assigned.
+ 2018-07-13  Keith Marshall  <keith@users.osdn.me>
+       Advertise new canonical URI for source code repository.
+       * README (Important Notice): New section; identify new canonical
+       repository URIs; note obsolescence of old repositories.
+ 2018-02-26  Keith Marshall  <keith@users.osdn.me>
+       Adjust repository version following WSL-5.1 release.
+       * VERSION.m4 (__VERSION__): Increment it to 5.1.1
+ 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.
+       * VERSION.m4 (libmingwex.dll.a): Update ABI version identifier.
+ 2017-12-06  Keith Marshall  <keith@users.osdn.me>
+       Adjust repository version following WSL-5.0.2 release.
+       * VERSION.m4 (__VERSION__): Increment it to 5.1; no further patch
+       releases are anticipated for development on the 5.0 branch, hence...
+       * All files (5.1-trunk): ...assign new development branch name.
+ 2017-12-06  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.0.2 release.
+       * All files (wsl-5.0.2-release): Tag assigned.
 +2017-11-09  Keith Marshall  <keith@users.osdn.me>
 +
 +      Avoid an implication that the API is exclusively 32-bit.
 +
 +      * w32api: Rename directory to...
 +      * wslapi: ...this, thus removing any implied 32-bit specificity.
 +      * configure.ac (AC_CONFIG_SUBDIRS): Update directory name reference
 +      from "w32api" to "wslapi" accordingly.
 +
 +      * Makefile.comm (w32api_srcdir): Rename macro...
 +      (wslapi_srcdir): ...to this.
 +
 +2017-11-08  Earnie Boyd  <earnie@users.osdn.me>
 +
 +      Prepare environment for Earnie's tools.
 +
 +      * .gitignore (nohup.out, nbproject): Add, to avoid file collisions
 +      from gvim wrapper and Netbeans IDE project system.
 +
 +2017-11-08  Keith Marshall  <keith@users.osdn.me>
 +
 +      Create 6.0-exp branch, for Win64 support preparation.
 +
 +      * VERSION.m4 (__VERSION__): Initialize it to 6.0, for this branch.
 +
  2017-07-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
  
        MinGW.org WSL-5.0.1 released; update repository version.
diff --cc Makefile.comm
Simple merge
diff --cc README
--- 1/README
--- 2/README
+++ b/README
@@@ -1,12 -1,52 +1,52 @@@
- mingw.org-wsl (Windows System Libraries):
- =====
- This package contains both the C Runtime (libcrt) and the Windows API (winapi)
- definitions as provided by the MinGW.org team.  These libraries can be used
- for both 32 bit and 64 bit Windows programming.  We have extended some parts
- of the C runtime to be C99 compliant but for the most part you can find the
- documentation provided by http://msdn.microsoft.com to be your best source for
- how to use these libraries in your C programming.  The GNU C++ compiler (g++)
- has its own implementation of the C++ standard and the documentation you find
- for stdc++ on the http://gcc.gnu.org site will be your best source of informa-
- tion for it.  Note that some of the C++ API will not able to be used on Windows
- due to lack of implementation for the Windows platform.
+ MinGW.org-WSL (Windows System Libraries)
+ ========================================
+ This package provides both the C Runtime (mingwrt) and the Windows API
 -(winapi, a.k.a. w32api) system library components, which are required to
++(wslapi, a.k.a. w32api) system library components, which are required to
+ support the MinGW.org distribution of the GNU Compiler Collection.
+ Important Notice
+ ----------------
+ The canonical URI for this package's source code repository is:
+ git://git.osdn.net/gitroot/mingw/mingw-org-wsl.git
+ Alternative canonical URIs, equivalent to the above are:
+ https://scm.osdn.net/gitroot/mingw/mingw-org-wsl.git
+ http://scm.osdn.net/gitroot/mingw/mingw-org-wsl.git
+ Privileged users, with SSH update rights, may clone the repository from:
+ ssh://USERNAME@git.osdn.net:/gitroot/mingw/mingw-org-wsl.git
+ Privileged users, who favour Mercurial over Git, may enable Mercurial's
+ git extension, and then "hg clone" from the equivalent (hg-capable) URI:
+ git+ssh://USERNAME@git.osdn.net:/gitroot/mingw/mingw-org-wsl.git
+ If you obtain source code from any URI, other than those canonical URIs
+ listed above, (or any alternative URI as may be identified subsequently,
+ at these URIs), then you should be advised that such source code is not
+ maintained by the MinGW.org Development Team, and is likely obsolete.
+ Description
+ -----------
+ MinGW.org-WSL is provided, and maintained by the MinGW.org Development
+ Team, to furnish essential bindings between the GNU Compiler Collection
+ and the MS-Windows operating system.  Historically, development has been
+ focused on support for the 32-bit MS-Windows platform.  However, these
+ libraries are intended for use in both 32-bit and 64-bit programming;
+ patches to imporve support for both platforms, and in particular the
+ 64-bit platform, will be gratefully considered.
+ Parts of the C runtime have been adapted to improve C99 compliance, but
+ for the most part you may find that Microsoft's documentation, provided
+ at http://msdn.microsoft.com, offers the most useful advice on the use
+ the MinGW.org-WSL libraries in your own programming.
+ The GNU C++ Compiler (g++) provides its own implementation of the C++
+ standard; http://gcc.gnu.org offers the most useful documentation for
+ this particular implementation of the C++ standard.  (Do please note
+ that not all features of this implementation are fully supported on
+ the MS-Windows platforms).
diff --cc VERSION.m4
Simple merge
diff --cc configure.ac
@@@ -34,8 -34,9 +34,9 @@@
  
    AC_PROG_MKDIR_P
    AC_PATH_PROG([LN],[ln],[ln])
+   AC_PATH_PROG([LUA],[lua])
  
 -  AC_CONFIG_SUBDIRS([mingwrt w32api])
 +  AC_CONFIG_SUBDIRS([mingwrt wslapi])
    AC_CONFIG_FILES([Makefile])
    AC_OUTPUT
  #
++2019-04-01  Keith Marshall  <keith@users.osdn.me>
++
++      Merge post 2017-11-09 changes from 5.2-trunk.
++
+ 2019-01-22  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.2.1 release.
+       * All files (wsl-5.2.1-release): Tag assigned.
+ 2019-01-22  Keith Marshall  <keith@users.osdn.me>
+       Incorporate user-customized <features.h> configuration.
+       * include/_mingw.h: Include <features.h>, or...
+       [_MINGW_FEATURES_HEADER]: ...nominated alternative header.
+       [!defined __MINGW_FEATURES__]: Provide fall-back definition.
+       (__MINGW_FEATURES_BEGIN__, __MINGW_FEATURES_ENABLE__)
+       (__MINGW_FEATURES_IGNORE__, __MINGW_FEATURES_UNSET__)
+       (__MINGW_FEATURES_END__): New macros; define them.
+       * tests/Makefile.in (install-mingwrt): Create <features.h> stub; this
+       is an empty file, yielding the default fall-back configuration.
+ 2019-01-21  Keith Marshall  <keith@users.osdn.me>
+       Handle another GCC compile-time warning.
+       * mingwex/memalign.c (is_power_of_two): Use in-line expansion...
+       (memalign_is_power_of_two): ...of this new function; this is required
+       to avoid -Wsequence-point warnings, which may arise when testing the
+       result of an assignment expression passed as the macro argument.
+ 2019-01-11  Keith Marshall  <keith@users.osdn.me>
+       Fix a mkstemp() file name generator defect.
+       * mingwex/cryptnam.c (crypto_random_filename_char): Revert 2018-09-06
+       change; argument type must be unsigned char *, to avoid math errors.
+       (__mingw_crypto_tmpname): Use explicit casts to resolve type conflicts.
+ 2019-01-11  Keith Marshall  <keith@users.osdn.me>
+       Fix a <stdio.h> typedef omission.
+       * include/stdio.h: Adjust comment formatting.
+       (__need___off64_t) [__MSVCRT__]: Require it, but remove...
+       [!(__STRICT_ANSI__||__NO_MINGW_LFS)]: ...this exclusion filter.
+       [!__MSVCRT__] (__need___off32_t): Require this alternative.
+       (sys/types.h): Include unconditionally.
+ 2018-12-23  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.2 release.
+       * All files (wsl-5.2-release): Tag assigned.
+ 2018-12-22  Keith Marshall  <keith@users.osdn.me>
+       Correct an optional DLL installation and packaging defect.
+       * Makefile.in (optional_dll): New function macro; define it, and...
+       (MAP_LIBMINGWEX_A_DLLVERSION): ...wrap this, replacing all usage of...
+       (optional_dll_version, optional_dll_package): ...these; delete them,
+       together with all dependent references.
+ 2018-12-22  Keith Marshall  <keith@users.osdn.me>
+       Update ANSI stdio feature test to accommodate ISO-C11.
+       * include/_mingw.h.in (__USE_MINGW_ANSI_STDIO): Add a deprecation
+       warning, for ill-advised direct definition in user code; include...
+       (_ISOC11_SOURCE): ...this new user defined feature test macro as a
+       further indirect enabling condition.
+ 2018-12-20  Keith Marshall  <keith@users.osdn.me>
+       Implement test suite for aligned heap management API.
+       * tests/testsuite.at.in: Include...
+       * tests/memalign.at: ...this new file; it replaces...
+       * mingwex/tst-aligned-malloc.c: ...this; delete it.
+ 2018-12-20  Keith Marshall  <keith@users.osdn.me>
+       Reimplement aligned heap management API.
+       * mingwex/mingw-aligned-malloc.c: Delete it; it is replaced by...
+       * mingwex/memalign.c: ...this new file; it reimplements...
+       (__mingw_aligned_offset_malloc, __mingw_aligned_offset_realloc)
+       (__mingw_aligned_free): ...each of these public API functions; also...
+       (__mingw_realloc, __mingw_free): ...adds these new public functions,...
+       (__mingw_memalign_base, __mingw_memalign_realloc): ...these private,
+       but globally exposed, supporting functions, and additionally...
+       (__mingw_memalign_lwm): ...this global, private use, variable.
+       * include/stdlib.h (__mingw_realloc, __mingw_free): Declare prototypes.
+       * include/malloc.h (__mingw_aligned_malloc, __mingw_aligned_realloc):
+       Implement them in-line; export them, via __LIBIMPL__, to libmingwex.a
+       (_aligned_malloc, __mingw_aligned_malloc, _aligned_offset_malloc)
+       (__mingw_aligned_offset_malloc): Add __MINGW_ATTRIB_MALLOC attribute.
+       [__MSVCRT_VERSION__ < __MSVCR70_DLL] (_aligned_malloc, _aligned_free)
+       (_aligned_realloc, _aligned_offset_malloc, _aligned_offset_realloc):
+       Implement them in-line, as wrappers around their MinGW alternatives;
+       export them, via __LIBIMPL__, to new library, libmemalign.a
+       * Makefile.in (LIBMINGWEX_MEMALIGN): New macro; define it; derive...
+       (LIBMINGWEX_MEMALIGN_OBJECTS): ...this macro; add compilation rule.
+       (libmingwex.a): Add $LIBMINGWEX_MEMALIGN_OBJECTS; they replace...
+       (mingw-aligned-malloc.$OBJEXT): ...this; remove dependency.
+       (all-mingwrt-libs, install-mingwrt-libs): Add libmemalign.a
+       (msvcrt_repl_funcs): Add alias references for...
+       (free, realloc): ...these.
+ 2018-12-04  Keith Marshall  <keith@users.osdn.me>
+       Reimplement Win9x specific fseek()/fwrite() redirector.
+       * include/stdio.h [__USE_MINGW_FSEEK]: Deprecate support for direct
+       user definition; deduce it, as an internal private definition, from...
+       [_WIN32_WINDOWS]: ...this, when appropriately defined for Win9x.
+       [__USE_MINGW_FSEEK] (__mingw_fseek): Declare new prototype; map it as
+       multiple __CRT_ALIAS inline function overrides for each of...
+       (fseek, _fseeki64, fseeko64): ...these.
+       [__USE_MINGW_FSEEK] (__mingw_fwrite): Likewise, overriding...
+       (fwrite): ...this.
+       (__mingw_fseeko64): Delete all references; it is no longer provided,
+       nor required.
+       * mingwex/stdio/fwrite.c: New file; it reimplements the Win9x
+       fseek()/fwrite() function redirector interface, and thus replaces...
+       * mingex/ming-fseek.c: ...this; delete it.
+       * Makefile.in (libmingwex.a): Remove dependency on...
+       (mingw-fseek.$OBJEXT): ...this object module; replace it with...
+       (fwrite.$OBJEXT): ...this alternative dependency.
+ 2018-12-04  Keith Marshall  <keith@users.osdn.me>
+       Implement POSIX.1-1996 linked-list queue management API.
+       * mingwex/insque.c mingwex/remque.c: New files; they implement the
+       POSIX.1-1996 insque(), and remque() functions, respectively.
+       * include/search.h (insque, remque): Declare function prototypes.
+       * Makefile.in (libmingwex.a): Add dependencies on...
+       (insque.$OBJEXT, remque.$OBJEXT): ...these.
+ 2018-11-25  Keith Marshall  <keith@users.osdn.me>
+       Emulate _fseeki64()/_ftelli64() API on legacy platforms.
+       * mingwex/stdio/fseeki64.c: New file; it implements...
+       (__mingw_fseeki64, fseeko64): ...both of these functions, avoiding any
+       dependency on undocumented internal implementation details of...
+       (fpos_t): ...this opaque data type, and replacing...
+       * mingwex/stdio/fseeko64.c: ...this; delete it.
+       * mingwex/stdio/ftelli64.c: New file; it implements...
+       (_ftelli64, ftello64): ...both of these, again avoiding any dependency
+       on undocumented internal implementation details of...
+       (fpos_t): ...this opaque data type.
+       * include/stdio.h (fpos_t): Make it more effectively opaque.
+       (__mingw_fseeki64, __mingw_ftelli64): Declare them for legacy use.
+       [_WIN32_WINNT < VISTA && __MSVCRT_VERSION__ < MSVCR80_DLL] (_fseeki64)
+       (_ftelli64): Map inline emulations, to "__mingw" prefixed names.
+       (ftello64): Remove inline implementation.
+       * Makefile.in (libmingwex.a): Add references to...
+       (fseeki64.$OBJEXT, ftelli64.$OBJEXT): these; remove reference to...
+       (fseeko64.$OBJEXT): ...this.
+ 2018-10-21  Keith Marshall  <keith@users.osdn.me>
+       Update <conio.h> and <wchar.h> header files.
+       * include/conio.h: Tidy layout; assert copyright.
+       [_CONIO_H_]: Rename multiple inclusion guard macro, to conform to...
+       [_CONIO_H]: ...this preferred convention; do not define when...
+       [__WCHAR_H_SOURCED__]: ...this selective inclusion condition applies.
+       [__need_wint_t, __need_wchar_t]: Define them; include <stddef.h>...
+       (wint_t, wchar_t): ...for these corresponding data type definitions.
+       [_WIN32_WINNT >= WINXP || __MSVCRT_VERSION__ >= __MSVCR70_DLL]
+       (_getwch, _getwche, _ungetwch, _putwch): Declare function prototypes.
+       [__MSVCRT_VERSION__>=__MSVCR80_DLL] (_getch_nolock, _getche_nolock)
+       (_ungetch_nolock, _putch_nolock, _getwch_nolock, _getwche_nolock)
+       (_ungetwch_nolock, _putwch_nolock): Likewise.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them.
+       * include/wchar.h: Selectively include <conio.h>, for...
+       (_getwch, _getwche, _ungetwch): ...these function prototypes, and...
+       [__MSVCRT_VERSION__>=__MSCVCR80_DLL] (_getwch_nolock)
+       (_getwche_nolock, _ungetwch_nolock): ...these.
+ 2018-10-18  Keith Marshall  <keith@users.osdn.me>
+       Map compile-time constant references for POSIX clocks.
+       * include/time.h (CLOCK_REALTIME, CLOCK_MONOTONIC): Redefine, using...
+       (__MINGW_POSIX_CLOCKAPI): ...this new macro; it converts clock indices
+       to odd-valued compile-time constant pseudo-pointers, (distinguishable
+       from real pointers which are always even-valued), which may be passed
+       as clockid_t references in POSIX clock API function calls.
+       * mingwex/clockapi.h (struct __clockid__): Specify 4-byte alignment.
+       (__clock_api_is_valid): Change return type to "clockid_t".
+       * mingwex/clockapi.c (__clock_api_is_valid): Return an even-valued,
+       non-NULL, "clockid_t" reference pointer, or "NULL" if invalid; use...
+       (clock_reference): ...this new static inline function, to convert...
+       (CLOCK_REALTIME, CLOCK_MONOTONIC): ...these odd-valued pseudo-pointers
+       to their actual run-time pointer equivalents; delete their physical
+       initializations, which have now become invalid.
+       * mingwex/clockres.c (clock_getres)
+       * mingwex/clocktime.c (clock_gettime)
+       * mingwex/clockset.c (clock_settime): Update the "clockid_t" argument
+       to match the real pointer returned by __clock_api_is_valid()
+ 2018-10-08  Keith Marshall  <keith@users.osdn.me>
+       Suppress autoconf detection of _aligned_malloc functions.
+       * msvcrt-xref/msvcrt.def.in (_aligned_malloc, _aligned_free)
+       (_aligned_offset_malloc, _aligned_realloc, _aligned_offset_realloc):
+       Mark as requiring dlsym() lookup, when linking with MSVCRT.DLL
+ 2018-10-07  Keith Marshall  <keith@users.osdn.me>
+       Make alloca() API both GNU and Microsoft compatible.
+       * include/malloc.h: Tidy layout; assert copyright.
+       (_MALLOC_H_): Rename guard macro, for conformance with...
+       (_MALLOC_H): ...this preferred guard macro naming convention.
+       (GCC system_header): Add pragma, declaring it as such.
+       [__MSVCRT_VERSION__ >= 0x0700]: Express symbolically, guarding...
+       (_aligned_malloc, _aligned_offset_malloc)
+       (_aligned_realloc, _aligned_offset_realloc)
+       (_aligned_recalloc, _aligned_offset_recalloc): ...these...
+       [__MSVCRT_VERSION__>=__MSVCR70_DLL]: ...thus.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them.
+       (alloca, _alloca): Factor them out, then include from...
+       * include/alloca.h: ...this new header file; it reimplements...
+       (alloca, _alloca): ...these, such that they remain Microsoft
+       compatible, while adding GNU conformity, either explicitly when
+       included by user code, or conditionally when included by...
+       * include/stdlib.h [!__STRICT_ANSI__]: ...this.
+       * tests/headers.at: Regenerated by "make check".
+       (MINGWRT_AT_PACKAGE_HEADERS): Add alloca.h
+ 2018-09-06  Keith Marshall  <keith@users.osdn.me>
+       Avoid unwanted GCC warning diagnostic messages.
+       * Makefile.in (libm_dummy.c): Remove "static" qualifier from...
+       (__mingw_libm_dummy): ...this variable; it caused "-Wunused-variable"
+       warning diagnostics, when compiled with "-Wall".
+       * main.c (WinMain): Remove unnecessary argument names from prototype.
+       (main): Make its argument list conform to convention, otherwise it
+       causes a "-Wmain" warning diagnostic when compiled with "-Wall".
+       * mingwex/clocktime.c (clock_gettime) [clock_id-type]
+       * mingwex/clockapi.c (clock_api_getres_interval) [clock_api->type]:
+       Ensure that switches include default cases; this avoids a "-Wswitch"
+       warning diagnostic message, in each case, when compiled with "-Wall".
+       * mingwex/cryptnam.c (crypto_random_filename_char): Remove "unsigned"
+       qualifier from both argument and return type; this avoids an argument
+       type mismatch, raising a "-Wpointer-sign" warning when called from...
+       (__mingw_crypto_tmpname): ...here, and compiled with "-Wall".
+       * mingwex/imaxdiv.c: Tidy layout; assert copyright.
+       (lldiv): Correct return type; explicitly disable "-Wattribute-alias"
+       diagnostic messages, under GCC pragma control.
+       * mingwex/ofmt.c [__crtofmt__] (__mingw_set_output_format_fallback)
+       [__crtnfmt__] (__mingw_get_printf_count_output_fallback): Likewise,
+       disable "-Wattribute-alias" diagnostics.
+       * mingwrt/mingwex/stdio/pformat.c (__pformat_ignore_flags): Adjust
+       layout, to avoid a "-Wmisleading-indentation" warning diagnostic.
+       (__pformat_argmap) [length]: Add a no-op default case, to avoid a
+       "-Wswitch" warning diagnostic message.
+       * mingwrt/profile/mcount.c: Explicitly disable "-Wframe-address"
+       diagnostics, under GCC pragma control, to avoid warnings relating...
+       (__builtin_return_address): ...this, when called from...
+       (mcount): ...here.
+       * mingwrt/setargv.c (__mingw_setargv): Insert parentheses, as advised,
+       to eliminate "-Wparentheses" diagnostic messages.
+ 2018-09-03  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.1.1 release.
+       * All files (wsl-5.1.1-release): Tag assigned.
+ 2018-09-02  Keith Marshall  <keith@users.osdn.me>
+       Make clockapi symbolic constants #ifdef detectable.
+       * mingwex/clockapi.c (CLOCK_REALTIME, CLOCK_MONOTONIC): Add "const".
+       * include/time.h (CLOCK_REALTIME, CLOCK_MONOTONIC): Likewise; also
+       define both as self-referencing macros.
+ 2018-08-26  Keith Marshall  <keith@users.osdn.me>
+       Circumvent <process.h> testsuite failure with GCC-7+.
+       * include/process.h (execv, execve, execvp): Subject declarations to
+       #pragma GCC diagnostic ignored "-Wbuiltin-declaration-mismatch", if...
+       [__cplusplus && __IN_MINGWRT_TESTSUITE__ && __GNUC__ >= 7]: ...this.
+ 2018-04-16  Keith Marshall  <keith@users.osdn.me>
+       Suppress glob-brace expansion within quoted arguments.
+       * setargv.c (__mingw32_setargv) [quoted]: Handle '{', ',', and '}'
+       in the same manner as '*', and '?'.
+ 2018-04-16  Keith Marshall  <keith@users.osdn.me>
+       Suppress glob-brace expansion of single item lists.
+       * mingwex/glob.c (glob_match) [c == '{']: Look-ahead to matching '}';
+       ignore intervening nested '{' ... '}' expression groups, and suppress
+       special interpretation of '{' if '\0' encountered before '}' at outer
+       nesting level, or if no unescaped ',' found within outer expression.
+ 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.
+ 2017-12-06  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.0.2 release.
+       * All files (wsl-5.0.2-release): Tag assigned.
+       * Makefile.in (mingwrt-srcdist-package-files): Add reference...
+       * $mingwrt_srcdir/*.sx: ...for files matching this template.
+ 2017-12-02  Keith Marshall  <keith@users.osdn.me>
+       Provide legacy OS work around for issue [#2357]
+       * cpu_features.c: Delete; replace it with...
+       * cpu_features.sx: ...this new assembly language file.
+       * cpu_features.h [__ASSEMBLER__]
+       (__cpu_features, __cpu_features_init): Suppress declarations.
+       * Makefile (%.sx): Add $srcdir vpath reference.
+ 2017-11-28  Keith Marshall  <keith@users.osdn.me>
+       Handle indeterminate FLT_EVAL_METHOD; fix issue [#2352].
+       * include/math.h [FLT_EVAL_METHOD == 0 || FLT_EVAL_METHOD == 1]
+       (float_t, double_t): Define them explicitly, as appropriate for each
+       of these two specific cases only; otherwise, define them as if for...
+       [FLT_EVAL_METHOD == 2]: ...this explicit case, but also apply it as a
+       suitable default compromise for the indeterminate case, in which...
+       [FLT_EVAL_METHOD != 2]: ...emit indeterminacy warning.
 +2017-11-09  Keith Marshall  <keith@users.osdn.me>
 +
 +      Avoid an implication that the API is exclusively 32-bit.
 +
 +      * configure.ac (MINGW_AC_CONFIG_EXTRA_SUBDIR): Update directory name
 +      reference from "w32api" to "wslapi", per top level rename.
 +
 +      * Makefile.in (w32api_srcdir): Rename macro and AC_SUBST variable...
 +      (wslapi_srcdir): ...to this; update all references.
 +
 +      * tests/Makefile.in (install-w32api-headers): Update directory name
 +      reference, to ensure that the testsuite finds the corresponding target
 +      in the build directory's wslapi/Makefile; do NOT change the target
 +      name until it has been updated in wslapi/Makefile.in itself!
 +
  2017-10-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
  
        Include, and make <sys/bsdtypes.h> test suite safe.
Simple merge
Simple merge
++2019-04-01  Keith Marshall  <keith@users.osdn.me>
++
++      Merge post 2017-11-09 changes from 5.2-trunk.
++
+ 2019-02-03  Keith Marshall  <keith@users.osdn.me>
+       Clean up winsock default version selection stratagem.
+       * include/winsock.h [_WINSOCK_H]: Defer definition until within new
+       internal recursion breaking retest block; following evaluation of...
+       [__USE_MINGW_WINSOCK_DEFAULT]: ...this, whence <winsock2.h> may be
+       included, reproducing the original version selection logic from...
+       * include/_winsock.h: ...here; file is now obsolete; delete it.
+       * include/winsock2.h (__USE_MINGW_WINSOCK_DEFAULT): Undefine it,
+       before including <winsock.h>
+       * include/windows.h include/nspapi.h include/wsnetbs.h: Define...
+       (__USE_MINGW_WINSOCK_DEFAULT): ...this, and then include <winsock.h>
+       instead of deleted file <_winsock.h>
+       * tests/headers.at: Regenerated.
+ 2019-01-22  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.2.1 release.
+       * All files (wsl-5.2.1-release): Tag assigned.
+ 2019-01-22  Keith Marshall  <keith@users.osdn.me>
+       Incorporate user-customized <features.h> configuration.
+       * tests/Makefile.in (install-mingwrt-headers): Create <features.h>
+       stub; this is an empty file, yielding the default configuration.
+ 2018-12-23  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.2 release.
+       * All files (wsl-5.2-release): Tag assigned.
+ 2018-12-18  Keith Marshall  <keith@users.osdn.me>
+       Make <winver.h> header effectively self-contained.
+       * include/winver.h: Include <windef.h>
+ 2018-11-23  Keith Marshall  <keith@users.osdn.me>
+       Fix MinGW-Bug #2248 (SF ticket).
+       * include/commctrl.h (NMPGSCROLL): Set packing to 1-byte alignment.
+       (NMPGSCROLL.fwKeys): Change type from BOOL to WORD.
+ 2018-11-23  Keith Marshall  <keith@users.osdn.me>
+       Apply some more cosmetic layout adjustments.
+       * include/commctrl.h: Keep 'typedef' and 'struct' on a single line,
+       for each untagged aggregate type definition.
+ 2018-11-18  Jelle Geerts  <heisenbug@users.osdn.me>
+       Fix MinGW-Bug #38736 (OSDN ticket).
+       * include/commctrl.h (DTM_SETFORMATW): Correct definition; was 0x1050,
+       but should be equivalent to 0x1000 + 50, which is actually 0x1032.
+ 2018-11-18  Keith Marshall  <keith@users.osdn.me>
+       Make <commctrl.h> header effectively self-contained.
+       * include/commctrl.h: Tidy layout; assert copyright.
+       Include <winbase.h> and <prsht.h>; both are required to resolve
+       inter-header dependencies, so achieving effective self-containment.
+       Correctly parenthesize argument references in macro definitions.
+       (pragma GCC system_header): Remove redundant GCC version guard.
+       (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons.
+       (SNDMSG): Remove definition; it is inherited from <prsht.h> anyway.
+       (__AW_ALIAS__, __AW_SUFFIXED__, __AW_STRING_A__, __AW_STRING_W__):
+       Use them; they facilitate maintenance of robust definitions for...
+       [UNICODE vs. ! UNICODE]: ...generic symbols and strings.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+ 2018-11-16  Keith Marshall  <keith@users.osdn.me>
+       Make <prsht.h> header effectively self-contained.
+       * include/prsht.h: Tidy layout; assert copyright.
+       Include <winuser.h> to resolve inter-header dependencies.
+       Correctly parenthesize argument references in macro definitions.
+       (pragma GCC system_header): Remove redundant GCC version guard.
+       (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons.
+       (SNDMSG, POSTMSG) [ifndef]: Remove guard condition; it prevents GCC
+       from checking consistency of alternative definition sources.
+       (__AW_SUFFIXED__): Use it; it improves robustness of...
+       [UNICODE vs. ! UNICODE]: ...generic definitions.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+ 2018-10-29  Keith Marshall  <keith@users.osdn.me>
+       Clean up <wincon.h>; consolidate its version dependencies.
+       * include/wincon.h: Tidy layout; assert copyright.
+       [_WIN32_WINNT]: Always compare it symbolically, with respect to...
+       [_WIN32_WINNT_WIN2K, _WIN32_WINNT_WINXP, _WIN32_WINNT_VISTA]: ...each
+       of these; group and consolidate respective version dependencies.
+       (FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED)
+       (FOREGROUND_INTENSITY, BACKGROUND_BLUE, BACKGROUND_GREEN)
+       (BACKGROUND_RED, BACKGROUND_INTENSITY, COMMON_LVB_LEADING_BYTE)
+       (COMMON_LVB_TRAILING_BYTE, COMMON_LVB_GRID_HORIZONTAL)
+       (COMMON_LVB_GRID_LVERTICAL, COMMON_LVB_GRID_RVERTICAL)
+       (COMMON_LVB_REVERSE_VIDEO, COMMON_LVB_UNDERSCORE, CTRL_C_EVENT)
+       (CTRL_BREAK_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT)
+       (CTRL_SHUTDOWN_EVENT, ENABLE_LINE_INPUT, ENABLE_ECHO_INPUT)
+       (ENABLE_PROCESSED_INPUT, ENABLE_WINDOW_INPUT, ENABLE_MOUSE_INPUT)
+       (ENABLE_INSERT_MODE, ENABLE_QUICK_EDIT_MODE, ENABLE_EXTENDED_FLAGS)
+       (ENABLE_AUTO_POSITION, ENABLE_VIRTUAL_TERMINAL_INPUT)
+       (ENABLE_PROCESSED_OUTPUT, ENABLE_WRAP_AT_EOL_OUTPUT)
+       (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN)
+       (ENABLE_LVB_GRID_WORLDWIDE, KEY_EVENT, MOUSE_EVENT)
+       (WINDOW_BUFFER_SIZE_EVENT, MENU_EVENT, FOCUS_EVENT, CAPSLOCK_ON)
+       (ENHANCED_KEY, RIGHT_ALT_PRESSED, LEFT_ALT_PRESSED)
+       (RIGHT_CTRL_PRESSED, LEFT_CTRL_PRESSED, SHIFT_PRESSED, NUMLOCK_ON)
+       (SCROLLLOCK_ON, FROM_LEFT_1ST_BUTTON_PRESSED)
+       (FROM_LEFT_2ND_BUTTON_PRESSED, FROM_LEFT_3RD_BUTTON_PRESSED)
+       (FROM_LEFT_4TH_BUTTON_PRESSED, RIGHTMOST_BUTTON_PRESSED, MOUSE_MOVED)
+       (DOUBLE_CLICK, MOUSE_WHEELED, MOUSE_HWHEELED, CONSOLE_FULLSCREEN)
+       (CONSOLE_FULLSCREEN_HARDWARE, CONSOLE_FULLSCREEN_MODE)
+       (CONSOLE_WINDOWED_MODE, CONSOLE_NO_SELECTION)
+       (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_SELECTION_NOT_EMPTY)
+       (CONSOLE_MOUSE_SELECTION, CONSOLE_MOUSE_DOWN, HISTORY_NO_DUP_FLAG):
+       Redefine, expressing all values in hexadecimal rather than decimal;
+       this is consistent with Microsoft documentation, and it is also more
+       logical, since all represent bit-flags, bit-fields, or bit-masks.
+ 2018-10-24  Keith Marshall  <keith@users.osdn.me>
+       Make <wincon.h> header effectively self-contained.
+       * include/wincon.h [_WIN32_WINNT < 0x0600]: Include <windef.h>...
+       [_WIN32_WINNT >= 0x0600]: ...but, Vista and later need <wingdi.h>
+       [__GNUC__ >= 3]: Remove condition; used only in association with...
+       (#pragma GCC system_header): ...this, it is redundant in this context.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them as appropriate.
+ 2018-10-24  David Gressett  <texasgaidheal@users.osdn.me>
+       Improve WinXP/Vista console I/O support.
+       * include/wincon.h (AddConsoleAlias, GetConsoleAlias)
+       (GetConsoleAliases, GetConsoleAliasExes, GetConsoleAliasesLength)
+       (GetConsoleAliasExesLength, GetConsoleOriginalTitle): New function
+       name aliases; define them, mapping them conditionally to represent...
+       [UNICODE]: ...their corresponding UTF-16LE function names, else...
+       [!UNICODE]: ...their corresponding ASCII/DBCS function names.
+       (COMMON_LVB_LEADING_BYTE, COMMON_LVB_TRAILING_BYTE
+       (COMMON_LVB_GRID_HORIZONTAL, COMMON_LVB_GRID_LVERTICAL)
+       (COMMON_LVB_GRID_RVERTICAL, COMMON_LVB_REVERSE_VIDEO)
+       (COMMON_LVB_UNDERSCORE, ENABLE_VIRTUAL_TERMINAL_INPUT)
+       (ENABLE_VIRTUAL_TERMINAL_PROCESSING, DISABLE_NEWLINE_AUTO_RETURN)
+       (ENABLE_LVB_GRID_WORLDWIDE,(MOUSE_HWHEELED): Define them.
+       (GetConsoleAliasA, GetConsoleAliasW, HandlerRoutine): Declare.
+       (CONSOLE_FULLSCREEN, CONSOLE_FULLSCREEN_HARDWARE): Define when...
+       [_WIN32_WINNT >= 0x0500]: ...this prevails; additionally...
+       (GetConsoleFontSize): ...declare function.
+       (CONSOLE_NO_SELECTION, CONSOLE_SELECTION_NOT_EMPTY)
+       (CONSOLE_SELECTION_IN_PROGRESS, CONSOLE_MOUSE_SELECTION)
+       (CONSOLE_MOUSE_DOWN): Define them; make them visible only when...
+       [_WIN32_WINNT >= 0x0501]: ...this prevails.
+       (struct _CONSOLE_FONT_INFO): Make it visible, only when...
+       [_WIN32_WINNT >= 0x0501]: ...this prevails; when visible, map it to...
+       (CONSOLE_FONT_INFO, PCONSOLE_FONT_INFO): ...these typedefs.
+       (struct _CONSOLE_SELECTION_INFO): Declare it; visible only when...
+       [_WIN32_WINNT >= 0x0501]: ...this prevails; when visible, map it to...
+       (CONSOLE_SELECTION_INFO, PCONSOLE_SELECTION_INFO): ...these typedefs.
+       [_WIN32_WINNT >= 0x0501] (AddConsoleAliasA, AddConsoleAliasW)
+       (GetConsoleAliasesA, GetConsoleAliasesW, GetConsoleAliasExesA)
+       (GetConsoleAliasExesW, GetConsoleAliasesLengthA)
+       (GetConsoleAliasesLengthW, GetConsoleAliasExesLengthA)
+       (GetConsoleAliasExesLengthW, GetConsoleSelectionInfo)
+       (GetCurrentConsoleFont): Declare functions.
+       [_WIN32_WINNT >= 0x0600] (HISTORY_NO_DUP_FLAG): Define it.
+       (struct _CONSOLE_FONT_INFOEX): New structure; declare it only when...
+       [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+       (CONSOLE_FONT_INFOEX, PCONSOLE_FONT_INFOEX): ...these typedefs.
+       (CONSOLE_HISTORY_INFO, PCONSOLE_HISTORY_INFO): New typedefs; they
+       map to an anonymous structure, and are visible only when...
+       [_WIN32_WINNT >= 0x0600]: ...this prevails.
+       (struct _CONSOLE_READCONSOLE_CONTROL): New structure; declare when...
+       [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+       (CONSOLE_READCONSOLE_CONTROL, PCONSOLE_READCONSOLE_CONTROL): ...these.
+       (struct _CONSOLE_SCREEN_BUFFER_INFOEX): New structure; declare when...
+       [_WIN32_WINNT >= 0x0600]: ...this prevails; when declared, map to...
+       (CONSOLE_SCREEN_BUFFER_INFOEX, PCONSOLE_SCREEN_BUFFER_INFOEX):
+       ...these typedefs.
+       [_WIN32_WINNT >= 0x0600] (GetConsoleHistoryInfo)
+       (GetConsoleOriginalTitleA, GetConsoleOriginalTitleW)
+       (GetConsoleScreenBufferInfoEx, GetCurrentConsoleFontEx)
+       (SetConsoleHistoryInfo, SetConsoleScreenBufferInfoEx)
+       (SetCurrentConsoleFontEx): Declare functions.
+ 2018-09-03  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.1.1 release.
+       * All files (wsl-5.1.1-release): Tag assigned.
+ 2018-07-29  Keith Marshall  <keith@users.osdn.me>
+       Don't restrict <winerror.h> exposure when including <winsock.h>
+       * include/winerror.h [__WINSOCK_H_SOURCED__]: Remove filters.
+       (__WINSOCK_V1_ERRORS__, __WINSOCK_V2_ERRORS__): Do not define; delete
+       all dependent filter references.
+ 2018-07-11  Keith Marshall  <keith@users.osdn.me>
+       Make <wincrypt.h> header effectively self-contained.
+       * include/wincrypt.h: Include <winbase.h>
+ 2018-07-11  Keith Marshall  <keith@users.osdn.me>
+       Correct <wincrypt.h> typographic errors; fix issue [#38391]
+       * include/wincrypt.h (CALG_TLS1PRF): Delete symbolic reference to...
+       (ALG_CLASS_DHASH): ...this; there is no such symbol; replace it with...
+       (ALG_CLASS_HASH): ...this, which represents the correct reference.
+       (struct _CRYPTOAPI_BLOB): Delete extraneous "typedef" keyword; this
+       struct definition is not directly associated with any type name.
+       (struct _SSL_EXTRA_CERT_CHAIN_POLICY_PARA): Likewise.
+ 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-24  Keith Marshall  <keith@users.osdn.me>
+       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]: ...as 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  <keith@users.osdn.me>
+       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  <keith@users.osdn.me>
+       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  <spuebla@users.sourceforge.net>
+       Update registry management API, per issue [#2262].
+       * include/winreg.h: Merge changes from 4.1-dev branch.
+       (REG_LATEST_FORMAT, REG_NO_COMPRESSION, REG_OPTION_BACKUP_RESTORE)
+       (REG_STANDARD_FORMAT, RRF_RT_ANY, RRF_RT_DWORD, RRF_RT_QWORD)
+       (RRF_RT_REG_BINARY, RRF_RT_REG_DWORD, RRF_RT_REG_EXPAND_SZ)
+       (RRF_RT_REG_MULTI_SZ, RRF_RT_REG_NONE, RRF_RT_REG_QWORD, RRF_RT_REG_SZ)
+       (RRF_NOEXPAND, RRF_SUBKEY_WOW6464KEY, RRF_SUBKEY_WOW6432KEY)
+       (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  <keith@users.osdn.me>
+       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.
+ 2017-12-06  Keith Marshall  <keith@users.osdn.me>
+       Prepare and publish MinGW.org WSL-5.0.2 release.
+       * All files (wsl-5.0.2-release): Tag assigned.
+ 2017-11-28  Keith Marshall  <keith@users.osdn.me>
+       Make <wsnetbs.h> header effectively self-contained.
+       * include/wsnetbs.h: Assert copyright; tidy layout; include
+       "_winsock.h", so making this header effectively self-contained, and
+       thus relieving the user of a responsibility for ensuring that some
+       other appropriate WinSock header has been included first.
+ 2017-11-28  Keith Marshall  <keith@users.osdn.me>
+       Factor <winsock.h> duplicate content out of <winsock2.h>
+       * include/winsock2.h: Remove all declarations and definitions which
+       are identically specified in <winsock.h>, but keep them in scope by...
+       [! defined _WINSOCK_H]: ...including <winsock.h> itself; override any
+       declarations and definitions therefrom, which introduce conflicts.
+       [defined _WINSOCK_H]: Diagnose misuse; suppress all further
+       definitions and declarations.
+       * include/winsock.h (SOMAXCONN): Add comment; note disparity between
+       WinSock v1.1 and WinSock v2, the latter of which will override when
+       correctly included by <winsock2.h>
+ 2017-11-24  Keith Marshall  <keith@users.osdn.me>
+       Make <winsock.h> and <winsock2.h> duplicate code congruent.
+       * include/winsock.h (SOMAXCONN): Move definition into...
+       [!__INSIDE_MSYS__]: ...this guarded scope.
+       * include/winsock2.h: Rearrange as necessary.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Keep them balanced.
+       (_USE_SYS_TYPES_FD_SET): Define and use, as in <winsock.h>
+       [!_WINSOCK_ANOMALOUS_TYPEDEFS] (FD_SET): Declare function, not type.
+       [!_WINSOCK_ANOMALOUS_TYPEDEFS] (PFD_SET, LPFD_SET): Suppress typedefs.
+       (FD_SET, FD_ISSET, FD_CLR, FD_ZERO): Reimplement, as in <winsock.h>
+       (FD_READ_BIT, FD_WRITE_BIT, FD_OOB_BIT, FD_ACCEPT_BIT)
+       (FD_CONNECT_BIT, FD_CLOSE_BIT, FD_QOS_BIT, FD_GROUP_QOS_BIT)
+       (FD_ROUTING_INTERFACE_CHANGE_BIT, FD_ADDRESS_LIST_CHANGE_BIT)
+       (FD_MAX_EVENTS): Enumerate them, as in <winsock.h>
+       [!(defined __INSIDE_CYGWIN__ || defined __INSIDE_MSYS__)]: Recast...
+       [!defined __INSIDE_MSYS__]: ...as this, throughout.
+       (gethostname): Update function prototype, adding...
+       (WINSOCK_API_LINKAGE): ...this DLL import control attribute.
+       * include/ws2spi.h: Tidy layout; assert copyright.
+       [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
+       (LPFD_SET): Delete all type references; use...
+       (fd_set *): ...this instead.
+ 2017-11-14  Keith Marshall  <keith@users.osdn.me>
+       Establish default selection for WinSock API declaration.
+       * include/windows.h include/nspapi.h: Include...
+       * include/_winsock.h: ...this new system private header; it selects...
+       [_WIN32_WINNT >= _WIN32_WINNT_NT4]: ...WinSock v2 API declarations, as
+       provided by conditional inclusion of <winsock2.h>, otherwise...
+       [_WIN32_WINNT < _WIN32_WINNT_NT4]: ...WinSock v1.1 API declarations,
+       as provided by inclusion of <winsock.h>
+       * tests/headers.at <_winsock.h>: Add reference.
+ 2017-11-14  Keith Marshall  <keith@users.osdn.me>
+       Update gethostname() declaration; drop Cygwin specificity.
+       * include/winsock.h (gethostname): Declare unconditionally; add...
+       (WINSOCK_API_LINKAGE): ...this DLL import control attribute.
+       [!(defined __INSIDE_CYGWIN__ || defined __INSIDE_MSYS__)]: Recast...
+       [!defined __INSIDE_MSYS__]: ...as this, throughout.
  2017-11-09  Keith Marshall  <keith@users.osdn.me>
  
 +      Avoid an implication that the API is exclusively 32-bit.
 +
 +      * Makefile.in (w32api_srcdir): Rename macro...
 +      (wslapi_srcdir): ...to this; update all references.
 +
++2017-11-09  Keith Marshall  <keith@users.osdn.me>
++
+       Normalize fd_set event macros for <winsock2.h> compatibility.
+       * include/winsock.h (FD_READ, FD_WRITE, FD_OOB, FD_ACCEPT, FD_CONNECT)
+       (FD_CLOSE): Redefine them, deriving respective values as shifts by...
+       (FD_READ_BIT, FD_WRITE_BIT, FD_OOB_BIT, FD_ACCEPT_BIT, FD_CONNECT_BIT)
+       (FD_CLOSE_BIT): ...this new enumerated count sequence, applying each
+       count to a bit flag with value of 1, in each case respectively.
+       [_WINSOCK2_H]: Extend shift count enumeration, to include...
+       (FD_QOS_BIT, FD_GROUP_QOS_BIT, FD_ROUTING_INTERFACE_CHANGE_BIT)
+       (FD_ADDRESS_LIST_CHANGE_BIT): ...these additional counts; hence...
+       [_WINSOCK2_H] (FD_QOS, FD_GROUP_QOS, FD_ROUTING_INTERFACE_CHANGE)
+       [_WINSOCK2_H] (FD_ADDRESS_LIST_CHANGE): ...define each of these.
+       (FD_MAX_EVENTS): Define unconditionally; it represents a shift count
+       of 1 greater than the offset of the last defined flag; hence...
+       (FD_ALL_EVENTS): ...derive this mask for all event flags.
+ 2017-11-09  Keith Marshall  <keith@users.osdn.me>
+       Filter potential WinSock v2 conflicts out of <winsock.h>
+       * include/winsock.h [_WINSOCK2_H] <mswsock.h>: Do not include it.
+       [_WINSOCK2_H] (IP_MULTICAST_IF, IP_MULTICAST_TTL, IP_MULTICAST_LOOP)
+       (IP_ADD_MEMBERSHIP, IP_DROP_MEMBERSHIP, IP_DEFAULT_MULTICAST_TTL)
+       (IP_DEFAULT_MULTICAST_LOOP, IP_MAX_MEMBERSHIPS, struct ip_mreq): Do
+       not define any of these; they are not compatible with WinSock v2.
+       [_WINSOCK2_H] (SOMAXCONN): Do not define it; it will be defined
+       appropiately in <winsock2.h>
+ 2017-11-09  Keith Marshall  <keith@users.osdn.me>
+       Filter out <winsock.h> typedef anomalies.
+       * include/winsock.h (FD_SET, PFD_SET, LPFD_SET): If user defines...
+       [_WINSOCK_ANOMALOUS_TYPEDEFS]: ...this new feature test macro, expose
+       them as type definitions, but warn of potential conflict with...
+       [!_WINSOCK_ANOMALOUS_TYPEDEFS] (FD_SET): ...this POSIX.1 mandated
+       function; declare its prototype.
  2017-11-08  Keith Marshall  <keith@users.osdn.me>
  
        Overhaul WinSock fd_set content management macros.
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge