X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=mingwrt%2FChangeLog;h=9e450d11901736e97a408d977284e704d63562d9;hb=b6cf78ea43d348f29f89988f31062493e0329370;hp=67091e8c454a74fc6cad27c479f2bb5385f744be;hpb=df96caa682ec8abb3faf6caa181205b2de028fb5;p=mingw%2Fmingw-org-wsl.git diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog index 67091e8..9e450d1 100644 --- a/mingwrt/ChangeLog +++ b/mingwrt/ChangeLog @@ -1,3 +1,885 @@ +2019-01-22 Keith Marshall + + Prepare and publish MinGW.org WSL-5.2.1 release. + + * All files (wsl-5.2.1-release): Tag assigned. + +2019-01-22 Keith Marshall + + Incorporate user-customized configuration. + + * include/_mingw.h: Include , 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 stub; this + is an empty file, yielding the default fall-back configuration. + +2019-01-21 Keith Marshall + + 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 + + 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 + + Fix a 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 + + Prepare and publish MinGW.org WSL-5.2 release. + + * All files (wsl-5.2-release): Tag assigned. + +2018-12-22 Keith Marshall + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + Update and 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 ... + (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 , for... + (_getwch, _getwche, _ungetwch): ...these function prototypes, and... + [__MSVCRT_VERSION__>=__MSCVCR80_DLL] (_getwch_nolock) + (_getwche_nolock, _ungetwch_nolock): ...these. + +2018-10-18 Keith Marshall + + 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 + + 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 + + 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 + + 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 + + Prepare and publish MinGW.org WSL-5.1.1 release. + + * All files (wsl-5.1.1-release): Tag assigned. + +2018-09-02 Keith Marshall + + 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 + + Circumvent 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 + + 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 + + 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 + + Prepare and publish MinGW.org WSL-5.1 release. + + * All files (wsl-5.1-release): Tag assigned. + +2018-02-22 Keith Marshall + + Correct 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 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 + + Correct Windows version support for 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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 + + 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-10-25 Keith Marshall + + Include, and make test suite safe. + + * tests/headers.at (sys/bsdtypes.h): Add reference. + + * include/sys/bsdtypes.h [__IN_MINGWRT_TESTSUITE__]: Add to... + [_BSD_SOURCE || _WINSOCK2_H]: ...these, as conditions for supression + of "ill-advised usage" warning message. + +2017-09-15 Keith Marshall + + Factor duplicate content out of winsock headers. + + * include/sys/time.h: Assert copyright; tidy layout. + [_BEGIN_C_DECLS, _END_C_DECLS]: Use them to avoid C++ name mangling. + [__WINSOCK_H_SOURCED__] (_SYS_TIME_H): Do not define it; hence... + [!defined _SYS_TIME_H]: ...selectively expose definitions for only... + (timerclear, timerisset, timercmp): ...these functional macros, and... + (struct timeval): ...this data type; inhibit redefinition on... + [defined _SYS_TIME_H && _WINSOCK_H]: ...second reading. + (_TIMEVAL_DEFINED): Do not define; it isn't required. + +2017-09-09 Keith Marshall + + Factor BSD non-standard type definitions into common header. + + * profile/gmon.h [_BSDTYPES_DEFINED]: Delete block; include... + * include/sys/bsdtypes.h: ...this new file instead; it defines... + (u_char, u_int, u_long, u_short): ...these non-standard data types. + + * profile/gmon.c profile/mcount.c [_BSD_SOURCE]: Declare it; + it suppresses warnings from , about ill-advised + non-standard BSD typedef usage. + +2017-07-30 Keith Marshall + + Prepare and tag for release of MinGW.org WSL-5.0.1 + + * All files (wsl-5.0.1-release): Tag assigned. + +2017-07-12 Keith Marshall + + Automate testsuite dependency generation. + + * tests/Makefile.in (testsuite) [$srcdir/*.at]: Automatically + enumerate all such wildcard matches as prerequisites, instead of... + (headers.at, ansiprintf.at, logarithms.at, powerfunc.at): ...these, + which were previously enumerated explicitly. + +2017-06-05 Keith Marshall + + Automatically correct obsolete _XOPEN_SOURCE usage. + + * include/_mingw.h.in (__paste, __valueless): New macros; define them. + (_XOPEN_SOURCE) [defined with no value]: Use them to attempt to deduce + this obsolete usage; if detected, redefine it with a default assigned + value of one, emulating -D_XOPEN_SOURCE command line definition. + +2017-05-24 Keith Marshall + + Fix snprintf()/vsnprintf() -Wformat vs. multiple definition issue. + + * include/stdio.h (__mingw_stdio_redirect__): Add reference to... + (__Wformat): ...this new macro; define it, such that it expands via... + (__Wformat_mingw_printf, __Wformat_msvcrt_printf): ...these new macros, + ultimately expanding to an attribute declaration, in terms of... + (__Wformat_ms_vprintf, __Wformat_ms_vfprintf, __Wformat_ms_vsprintf) + (__Wformat_ms_printf, __Wformat_ms_fprintf, __Wformat_ms_sprintf): + ...any one of these; they map to an ms_printf attribute, or... + (__Wformat_vprintf, __Wformat_vfprintf, __Wformat_vsprintf) + (__Wformat_printf, __Wformat_fprintf, __Wformat_sprintf): ...any one + of these; they map conditionally to... + [__GNUC__>=6] (__mingw_printf__): ...this new format attribute, or... + [__GNUC__< 6]: ...nothing. + (snprintf, vsnprintf): Revert 2017-01-30 inline definitions; add... + (__Wformat_snprintf, __Wformat_vsnprintf): ...these attributes; they + are also mapped conditionally, in this case to... + [__GNUC__>=6] (__mingw_printf__): ...this, or... + [__GNUC__< 6] (__gnu_printf__): ...this. + +2017-03-14 Keith Marshall + + Refactor mingwrt and w32api common makefile content. + + * Makefile.in (mingwrt-srcdist-config-files): Rename it... + (mingwrt-srcdist-common-files): ...as this phoney build rule. + (shared_include_file): New macro; define it, and include named file. + (configure, config.status, Makefile, config.status.missing, _mingw.h) + (w32api.h, PACKAGE_VERSION_SCRIPT, PACKAGE_VERSION_FORMAT): Factor + out; relocate them to new file in common parent directory... + * ../Makefile.comm: ...here. + +2017-03-09 Keith Marshall + + Fix generated header file dependencies. + + * Makefile.in (_mingw.h, w32api): Make them depend on changes in... + [VERSION.m4]: ...this; package version changes are no longer made... + [configure.ac]: ...here; delete associated prerequisite reference. + (distclean-local): Delete them. + +2017-03-09 Keith Marshall + + Strip optional DLLs, when staging for distribution. + + * Makefile.in (mingwrt-%-optist): Recursively make... + (install-strip-$*-optional-dll): ...this internal target, not... + (install-$*-optional-dll): ...this. + +2017-03-08 Keith Marshall + + Prepare and tag for release of mingwrt-5.0 package set. + + * All files (wsl-5.0-release): Tag assigned. + +2017-03-07 Keith Marshall + + Avoid -shared-libgcc dependencies in optional DLLs. + + * Makefile.in (dllname): Qualify it, by addition of... + (LIBGCC_LINK_OPTION): ...this DLL name specific linking option macro. + (libmingwex.dll.a): Force it to use -static-libgcc for associated DLL. + +2017-02-27 Keith Marshall + + Support optional DLL builds from static libraries. + + * aclocal.m4 (MINGW_AC_SET_DLLVERSION): New macro; define it, and... + * VERSION.m4: ...use it here, to enumerate the specifcations for... + (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): ...this collection of DLL + version identification records. + + * Makefile.in (DLLVERSION): New macro; define default, and capture + library specific variants, as generated by AC_SUBST output from... + (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): ...this configuration macro. + (a2dll, dllname, dllsuffix): New macros; define them, together with + new pattern rule using them, to create DLLs and import libraries from + existing static object libraries; augment these with... + (optional_dll_version): ...this further new macro, used by... + (install-optional-dlls, install-mingwrt-optional-dlls) + (install-libmingwex-optional-dll): ...these new installation rules... + (uninstall-optional-dlls, uninstall-mingwrt-optional-dlls): ...and + counterpart rules, to uninstall all such optional DLL files. + (optional_dll_package): Further new macro; it is required by... + (optdist, mingwrt-optdist, mingwrt-libmingwex-optdist): ...these new + distribution rules; they create packages for optional DLLs. + (dist): Add optdist. + + * configure.ac (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): Invoke it. + +2017-02-24 Keith Marshall + + Make floating point environment more robust. + + * CRT_fp8.c CRT_fp10.c: Delete them; both are replaced by... + * CRT_fenv.c: ...this new common source file; it implements... + (_CRT_fenv): ...this new global variable, with alternative definitions + evaluated during application start-up, to assign one or other of... + [FE_PC53_ENV, FE_PC64_ENV]: ...these, as the preferred default... + [FE_DFL_ENV]: ...represented by this; replacement linkage for... + (_fpreset): ...this MSVCRT.DLL function is no longer supported. + + * Makefile.in: Add new static pattern rule, for compiling... + (CRT_fp8.$OBJEXT, CRT_fp10.$OBJEXT): ...each of these, from CRT_env.c + + * crt1.c (_gnu_exception_handler, __mingw_CRTStartup): Do not call... + (_fpreset): ...this; its linkage was non-deterministically ambiguous. + (fesetenv): Use this, unambiguously, instead; initially configure the + floating point environment to the predefined state, as assigned to... + [_CRT_fenv]: ...this new global variable; thereafter, reset to... + [FE_DFL_ENV]: ...this ISO-C99 mandatory configuration. + + * include/float.h: Assert copyright; tidy layout. + [_MINGW_FLOAT_H_]: Retain, but replace in guard macro usage by... + [_MINGW_FLOAT_H]: ...this, conforming to preferred naming convention. + [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate. + (_fpreset): Add _CRTIMP attribute; it is resolved by MSVCRT.DLL + (fpreset): Deprecate it; provide inline __LIBIMPL__ fall-back. + + * include/fenv.h: Assert copyright; tidy layout. + [_FENV_H_]: Rename multiple inclusion guard macro, adopting... + [_FENV_H]: ...this preferred stylistic naming convention. + [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate. + (FE_INVALID, FE_DENORMAL, FE_DIVBYZERO, FE_OVERFLOW, FE_UNDERFLOW) + (FE_INEXACT, FE_ALL_EXCEPT, FE_TONEAREST, FE_DOWNWARD, FE_UPWARD) + (FE_TOWARDZERO): Redefine them, in terms of enumerated bit positions. + (FE_PD53_ENV, FE_PD64_ENV): New predefined environment selectors; they + serve as initialization-time aliases, causing redefinition of... + [FE_DFL_ENV]: ...this, as run-time alias for one or other of... + [FE_PC53_ENV, FE_PC64_ENV]: ...these, respectively. + + * mingwex/fesetenv.c: Assert copyright; tidy layout. + (fesetenv) [FE_PD53_ENV || FE_PD64_ENV]: Handle them, assigning to... + (FE_DFL_ENV): ...this ISO-C99 mandatory configuration, representing... + (fenv_default): ...the value of this new static variable. + (_fpreset): Call it directly; now always resolved by MSVCRT.DLL, so... + (*_imp__fpreset): ...this indirection becomes unnecessary. + +2017-02-21 Keith Marshall + + Make mingwrt and w32api test suites consistent. + + * Makefile.in (test): New rule; define it as a synonym for... + (check tests): ...these, so maintaining consistency with w32api. + +2017-02-16 Keith Marshall + + Work around GCC bug; force C++11 to support std::wcstof(). + + * include/_mingw.h [_ISOC99_SOURCE && __cplusplus >= 201103L] + [__GNUC__ < 6] (_GLIBCXX_HAVE_WCSTOF): Define it to 1; it is required + because, prior to GCC-6, GCC's configuration process fails to specify + it correctly, and so invalidates its own header file. + +2017-02-12 Keith Marshall + + Support brace expansion in globbing patterns. + + * include/glob.h (GLOB_BRACE): New manifest constant; define it... + (__GLOB_FLAG__): ...in terms of this macro. + + * mingwex/glob.c (glob_match): Reindent, with preamble invoking... + (glob_brace_expand): ...this new static inline function; implement it. + (GLOB_INIT, GLOB_FREE): Redefine them, relating them to... + (__GLOB_FLAG_OFFSET_HIGH_WATER_MARK): ...this. + + * setargv.c (__mingw32_setargv) [_CRT_glob]: Check if it includes... + [GLOB_CASEMATCH | GLOB_BRACE]: either of these; remove check for... + [__CRT_GLOB_CASE_SENSITIVE__]: ...this defunct option. + + * include/_mingw.h.in (GLOB_BRACE): Note its use in _CRT_glob. + (GLOB_CASEMATCH): Likewise; this replaces all former usage of... + (__CRT_GLOB_CASE_SENSITIVE__): ...this; delete definition. + +2017-02-11 Keith Marshall + + Refactor and shared declarations. + + * include/getopt.h: Assert copyright. + (_BEGIN_C_DECLS, _END_C_DECLS): Use as appropriate. + (__GETOPT_H__, __GETOPT_LONG_H__): Delete them; replace them with... + (_GETOPT_H): This new macro; it guards the entire file, except when... + [__UNISTD_H_SOURCED__]: ...do not activate it; hence when... + [!_GETOPT_H]: ...do not expose API declarations for... + (getopt_long, getopt_long_only): ...these functions. + [_GETOPT_H && _UNISTD_H]: Skip second pass API declarations for... + (getopt): ...this function. + + * include/unistd.h: Use the #include "..." form when including... + (io.h, process.h, getopt.h): ...these, to ensure correct association. + (ftruncate): Map it directly to MSVCRT.DLL's _chsize() entry point. + +2017-02-10 Keith Marshall + + Avoid unnecessary duplication of configuration files. + + * Makefile.in (vpath install-sh): Define it; it matches... + (vpath %.m4): ...this; add $top_srcdir/..; search it first; delete + rule for creating duplicate file reference links in $top_srcdir. + (configure): Add '-I ..' option, when running autoconf. + (mingwrt-srcdist-package-files): Remove dependencies on... + (aclocal.m4 VERSION.m4 install-sh): ...these; reinstate them in... + (mingwrt-srcdist-config-files): ...this new distributable files + enumeration goal; add it as a new prerequisite of... + (mingwrt-srcdist-files): ...this. + +2017-02-07 Keith Marshall + + Ensure selective inclusion of the correct + + * include/string.h: Use "..." form for selective inclusion of ... + (strings.h): ...this, to ensure that we get our own version, avoiding + any inappropriate alternative which may have been insinuated into the + system header include path. + +2017-02-04 Keith Marshall + + Resolve a global variable naming inconsistency. + + * mingwex/ofmt.c (__mingw_output_format_flag): Rename it as... + (__mingw_output_format_flags): ...this, at point of definition, and + update all references, to maintain consistency with usage... + * mingwex/ofmtctl.c (__mingw_output_format_flags): ...here. + + * mingwex/stdio/pformat.c: Update references. + +2017-01-30 Keith Marshall + + Implement strerror_r()/strerror_s() API. + + * mingwex/strerror_r.c: New file; it implements... + (strerror_r): ...this new POSIX.1-2001 conforming function. + + * include/string.h (strerror_s): Add function prototype, subject to... + [_MSVCR80_DLL || _WIN32_WINNT_VISTA]: ...this DLL version dependency; + otherwise implement an inline wrapper function to emulate it, using... + [_POSIX_C_SOURCE > 200112L] (strerror_r): ...this; add prototype. + + * Makefile.in (libmingwex.a): Add strerror_r.$OBJEXT + +2017-01-30 Keith Marshall + + Avoid -Wformat noise from snprintf() and vsnprintf() + + * include/stdio.h (snprintf, vsnprintf): Add inline implementations; + they redirect to "__mingw_" prefixed alternatives, so suppressing the + effect of automatic format attribute recognition. + +2017-01-30 Keith Marshall + + Remove duplicate libmingwex.a entries. + + * mingwex/jmpstub.sx (DLLENTRY): Interpret it. + + * Makefile.in (jmpstub_awk_script): Handle DLLENTRY. + (libmingwex.a): Remove explicit object file references to... + (snwprintf, vsnwprintf): ...these. + + * include/stdio.h (snwprintf, vsnwprintf): Map them as __JMPSTUB__ + references to MSVCRT.DLL entry points, via DLLENTRY references to... + (_snwprintf, _vsnwprintf): ...these, respectively. + + * mingwex/snwprintf.c: Redundant file; delete it. + * mingwex/vsnwprintf.c: Likewise. + +2017-01-29 Keith Marshall + + Clean up header file. + + * include/limits.h: Tidy layout; assert copyright. + (#pragma GCC system_header): Declare it as being such. + (_LIMITS_H_): Rename this multiple inclusion guard macro... + (_LIMITS_H): ...to adopt this preferred form. + [__STDC_VERSION__ >= 199901L]: Infer it... + [_ISOC99_SOURCE]: ...from this. + +2017-01-29 Keith Marshall + + Expose C99 features required by C++11; fix issue [#2335] + + * include/_mingw.h.in (_ISOC99_SOURCE): Ensure it is defined for... + [__cplusplus >= 201103L]: ...this conformance level, in addition to... + [__STDC_VERSION__>= 199901L || _POSIX_C_SOURCE >= 200112L]: ...these. + [_GLIBCXX_USE_C99]: Force it for -std=c++11, subject to... + [__GNUC__ < 6]: ...this. + + * include/ctype.h (isblank): Declare it only if... + [_ISOC99_SOURCE]: ...this, thus simplifying declarative condition. + * include/wctype.h (iswblank) [_ISOC99_SOURCE]: Likewise. + * include/inttypes.h (SCNd8, SCNdLEAST8, SCNdFAST8, SCNi8, SCNiLEAST8) + (SCNiFAST8, SCNo8, SCNoLEAST8, SCNoFAST8, SCNx8, SCNxLEAST8, SCNxFAST8) + (SCNu8, SCNuLEAST8, SCNuFAST8) [_ISOC99_SOURCE]: Likewise. + +2017-01-28 Keith Marshall + + Make strnlen() and wcsnlen() declaratively consistent. + + * include/string.h (strnlen): Do not expose its declaration, unless... + [_POSIX_C_SOURCE >= 200809L]: ...this feature test is enabled. + +2017-01-28 Keith Marshall + + Implement wcsnlen() API per feature request [#2332]. + + * mingwex/strnlen.s: Rename it as... + * mingwex/strnlen.sx: ...this; use C preprocessor logic to adapt... + (__mingw_strnlen): ...this existing function implementation for use... + [_UNICODE] (__mingw_wcsnlen): ...as this. + + * include/wchar.h [_POSIX_C_SOURCE >= 200809L] (wcsnlen): Declare... + [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...using MS DLL implementation... + [!__MSVCRT_VERSION__>=__MSVCR80_DLL] (__mingw_wcsnlen): ...otherwise, + declare this, with inline __JMPSTUB__ implementation, providing... + (wcsnlen): ...this. + + * Makefile.in (wcsnlen.$OBJEXT): New build rule. + (libmingwex.a): Add wcsnlen.$OBJEXT as new prerequisite. + (libmoldname.a, libmoldnamed.a): Add __JMPSTUB__ wrappers. + (libmoldname70.a, libmoldname70d.a): Likewise. + (libmoldname71.a, libmoldname71d.a): Likewise. + + for all other MSVC non-free associated oldname import libraries. + (vpath): Add $srcdir/mingwex for %.sx; hence mapping for... + (jmpstub.sx): ...this becomes redundant; delete it. + +2017-01-26 Jason Hood + + Honour GLOB_CASEMATCH for globbing sets; cf. issue [#2327]. + + * include/glob.h (GLOB_CASEMATCH): Update comment. + * mingwex/glob.c (glob_case_match): Move before, and use it in... + (glob_in_set): ...this function, to test characters in the set. + 2017-01-26 Keith Marshall Avoid snprintf() overhead in directory stream functions.