X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=mingwrt%2FChangeLog;h=130b3f45246a2c3113dcdef71a5894f27c6e61fd;hb=bb2a90f93abd0752d03f771b09889a94a343c586;hp=5c807025d5662599d7bdcb21ba5ad002eaf08c6a;hpb=45cb48357e671918e7ddff8e5fc29588e42fc641;p=mingw%2Fmingw-org-wsl.git diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog index 5c80702..130b3f4 100644 --- a/mingwrt/ChangeLog +++ b/mingwrt/ChangeLog @@ -1,3 +1,731 @@ +2020-05-27 Keith Marshall + + Fix libmingwex-n.dll dependencies; cf. Issue #40438. + + * Makefile.in (libmingwex.a): Remove... + (mbrscan.$OBJEEXT, wcharmap.$OBJEXT): ...these; relocate them to... + (libmingw32.a): ...here. + +2020-04-30 Keith Marshall + + Prepare and publish MinGW.org WSL-5.3.1 release. + + * All files (wsl-5.3.1-release): Tag assigned. + +2020-04-19 Keith Marshall + + Implement POSIX.1-2001 posix_memalign() function. + + * include/stdlib.h [_POSIX_C_SOURCE >= 200112L] (posix_memalign): + Implement as inline alias, with libmemalign.a stub, in terms of... + (__mingw_aligned_offset_malloc): ...this; duplicate declaration. + +2020-04-18 Keith Marshall + + Implement ISO-C11/C++17 aligned_alloc() function. + + * include/stdlib.h (free, realloc): Define as inline aliases for... + (__mingw_free, __mingw_realloc): ...these replacements, respectively. + [__STDC_VERSION__>=201112L || __cplusplus >=201703L] (aligned_alloc): + Implement as inline alias, with libmemalign.a stub, in terms of... + (__mingw_aligned_offset_malloc): ...this; duplicate declaration. + (_GLIBCXX_HAVE_ALIGNED_ALLOC): Define it. + +2020-04-11 Keith Marshall + + Manpage stylistic consistency updates. + + * man/dirname.3.man man/getline.3.man: Miscellaneous stylistic + formatting changes. + +2020-04-08 Keith Marshall + + Ensure PDF manpages are generated from local sources. + + * Makefile.in (%.$man3ext.pdf): Specify explicit path to $<.$man3ext + file, when invoking the 'man -t' command; without it, the command may + refer to the build host's native copy, instead of our local version. + +2020-04-08 Keith Marshall + + Automatically enumerate manpages for publication. + + * Makefile.in (manpages): New macro; define, and use it... + (mingwrt-man3): ...for this, to enumerate associated manpage sources. + (manpage_copy, mancopy, manpage_ref): New macros; define them, and... + (basename.3, getdelim.3): ...use them. + +2020-04-07 Keith Marshall + + Document MinGW MBCS/wide character conversion functions. + + * man/btowc.3.man man/mbrlen.3.man man/mbrtowc.3.man + * man/mbsinit.3.man man/mbsrtowcs.3.man man/wcrtomb.3.man + * man/wcsrtombs.3.man man/wctob.3.man: New files. + +2020-04-02 Keith Marshall + + Handle wcsrtombs() initial surrogate completion. + + * mingwex/wcsrtombs.c (__mingw_wcsrtombs_fallback) + [*ps -> high surrogate && **wcs -> low surrogate]: Complete surrogate + pair, and evaluate conversion; compute its length, and account for its + effect on alloted conversion buffer size. Reset *ps to initial state. + +2020-04-02 Keith Marshall + + Correct wchar_t to MBCS unpaired surrogate handling. + + * mingwex/wcharmap.c (__mingw_wctomb_convert) [codeset >= CP_UTF7]: + Scan source wchar_t sequence, prior to conversion, checking it for... + [high surrogate]: Abort unless immediately followed by low surrogate. + [low surrogate]: Likewise, if not preceded by high surrogate. + +2020-03-19 Keith Marshall + + Correct a potential mbsrtowcs() surrogate pair overrun. + + * mingwex/mbrscan.c (__mingw_mbtowc_copy) [(count + 1) == len)]: Stop, + without storing current multibyte conversion, if surrogate pair. + +2020-03-12 Keith Marshall + + Rationalize implementations of fwide() and mbsinit() functions. + + * include/wchar.h (mbsinit): Mark as __LIBIMPL__; reimplement its + inline definition, to evaluate its mbstate_t reference argument. + (fwide): Mark as __LIBIMPL__. + + * Makefile.in (libmingwex.a): Remove explicit dependencies on... + (fwide, mbsinit): ...these; they are implied by __LIBIMPL__ marks. + + * mingwex/fwide.c mingwex/mbsinit.c: Redundant files; delete them. + +2020-03-11 Keith Marshall + + Correct a defect in detection of failed btowc() conversions. + + * mingwex/btowc.c (__mingw_btowc_fallback): Use... + (__mingw_mbtowc_convert): ...this; verify successful conversion of + exactly one byte, to equivalent wchar, otherwise return WEOF. + (__mingw_btowc, __msvcrt_btowc): Delegate codeset initialization to... + (__mingw_mbrtowc_codeset_init): ...this, so delegating its management + externally; remove local provision. + +2020-03-10 Keith Marshall + + Correct defects in mbrtowc() invalid conversion state handling. + + * mingwex/mbrconv.c (__mingw_mbrtowc_handler): Abort if restarting a + conversion when a low surrogate is pending, but has not been correctly + retrieved; additionally, reject any mbstate_t object content which is + already representative of a complete multibyte character sequence. + +2020-03-10 Keith Marshall + + Base MBCS converter function call redirection on _ISOC99_SOURCE. + + * include/wchar.h (__mingw_redirect): New temporary macro; use it... + (btowc, mbrlen, mbrtowc, mbsrtowcs, wctob, wcrtomb, wcsrtombs): ...in + each of these inline function definitions, to select between use of... + [defined _ISOC99_SOURCE]: ...direct call to MinGW function, or... + [! defined _ISOC99_SOURCE]: ...attempt to call MSVCRT.DLL function, + with fall back to MinGW, when no MSVCRT.DLL function available. + +2020-03-05 Keith Marshall + + Prepare and publish MinGW.org WSL-5.3 release. + + * All files (wsl-5.3-release): Tag assigned. + +2020-03-05 Keith Marshall + + Let _ISOC11_SOURCE imply _ISOC99_SOURCE. + + * include/_mingw.h.in [! defined _ISOC99_SOURCE] + [defined _ISOC11_SOURCE] (_ISOC99_SOURCE): Define as 0x0F. + +2020-03-05 Keith Marshall + + Avoid deprecated specification of esp in asm clobber list. + + * crt1.c (__mingw_CRTStartup): In inline assembly, forced modulo-16 + alignment of esp is safe, but clobbered esp cannot be restored; GCC-9 + deprecates its inclusion in clobber list; remove it. + [-masm=intel]: Support inline assembler syntax. + +2020-03-04 Keith Marshall + + Disallow surrogates as printf() radix and grouping characters. + + * mingwex/stdio/pformat.c (__pformat_emit_digit) + [(c == '.') && ((rpchr & 0xF800) == 0xD800)]: Radix point requires a + surrogate pair, for representation as UTF-16LE; decline to use it. + (__pformat_enable_thousands_grouping) [(tc & 0xF800) == 0xD800]: + Likewise, for thousands group separator. + +2020-03-04 Keith Marshall + + Reimplement wcstof(), and wcstold() functions. + + * mingwex/wcstofp.c: New file; it implements... + (wcstof, wcstold): ...these functions; each is an alias for... + (__mingw_wcstof, __mingw_wcstold): ...these, respectively; also... + (__mingw_wcstod): ...this; all are implemented in terms of... + (__mingw_wcstofp_prescan, __mingw_wcstofp_prepare) + (__mingw_wcstofp_bufsize): ...these; implement them. + + * Makefile.in (libmingwex.a): Add dependency references... + (wcstofp.$OBJEXT, wcstod.$OBJEXT): ...for these; also include with... + (wcstof.$OBJEXT, wcstold.$OBJEXT): ...these, in new build rule. + + * include/stdlib.h (__mingw_wcstod, __mingw_wcstof) + (__mingw_wcstold): Declare them. + + * mingwex/mb_wc_common.h mingwex/wcstof.c mingwex/wcstold.c: Files + are obsolete, and no longer required; delete them. + +2020-03-03 Keith Marshall + + Reimplement btowc(), and wctob() functions. + + * include/wchar.h [__MSVCRT_VERSION__ < __MSVCR80_DLL] + (btowc, wctob): Implement them as static inline redirects... + (__msvcrt_btowc, __msvcrt_wctob): ...to these; declare them, with + additional MinGW specific alternatives declared... + (__mingw_btowc, __mingw_wctob): ...thus. + + * mingwex/btowc.c: Rewrite as new; it now implements... + (__mingw_btowc, __msvcrt_btowc): ...these public API functions, either + of which serves as a suitable replacement entry point for... + (btowc): ...this, with ultimate fallback served by... + (__mingw_btowc_fallback): ...this private function. + + * mingwex/wctob.c: Rewrite as new; it now implements... + (__mingw_wctob, __msvcrt_wctob): ...these public API functions, either + of which serves as a suitable replacement entry point for... + (wctob): ...this, with ultimate fallback served by... + (__mingw_wctob_fallback): ...this private function. + +2020-03-02 Keith Marshall + + Reimplement mbrlen(), mbrtowc(), and mbsrtowcs() functions. + + * include/wchar.h [__MSVCRT_VERSION__ < __MSVCR80_DLL] + (mbrlen, mbrtowc, mbsrtowcs): Implement as static inline redirects... + (__msvcrt_mbrlen, __msvcrt_mbrtowc, __msvcrt_mbsrtowcs): ...to these; + declare them, with additional MinGW specific alternatives declared... + (__mingw_mbrlen, __mingw_mbrtowc, __mingw_mbsrtowcs): ...thus. + + * mingwex/mbsrtowcs.c: New file; it implements... + (__mingw_mbsrtowcs, __msvcrt_mbsrtowcs): ...this pair of new + functions, either of which serves as a replacement for... + (mbsrtowcs): ...this; it was originally implemented... + * mingwex/mbrtowc.c: ...here; rewritten as new, it now implements... + (__mingw_mbrtowc, __msvcrt_mbrtowc): ...these new functions, + either of which serves as a public API replacement for... + (mbrtowc): ...this; with ultimate fallback served by... + (__mingw_mbrtowc_fallback): ...this private function. + + * mingwex/mbrlen.c: New file; it implements... + (__mingw_mbrlen, __msvcrt_mbrlen): ...these public API entries, and... + (__mingw_mbrlen_fallback): ...this supporting private function. + + * mingwex/mbrconv.c: New file; it implements... + (__mingw_mbrtowc_handler): ...this backend interpreter, shared by... + (__mingw_mbrlen_fallback, __mingw_mbrtowc_fallback): ...these. + + * mingwex/mbrscan.c: New file; it implements... + (__mingw_mbtowc_codeset_init, __mingw_mbtowc_cur_max_init) + (__mingw_mbtowc_cur_max): ...these TLS accessor functions, and... + (__mingw_mbrscan_begin, __mingw_mbtowc_convert, __mingw_mbtowc_copy): + ...these MBCS to wide character conversion helper functions. + + * mingwex/wcharmap.h (boolean): Define new private use data type... + (false, true): ...with these effective symbolic values; define them. + (__mingw_mbtowc_codeset_init, __mingw_mbtowc_cur_max_init) + (__mingw_mbtowc_cur_max, __mingw_mbrscan_begin, __mingw_mbtowc_copy) + (__mingw_mbtowc_convert): Declare them. + + * Makefile.in (libmingwex.a): Add dependency references for... + (mbrconv.$OBJEXT, mbrscan.$OBJEXT, mbrlen.$OBJEXT, mbsrtowcs.$OBJEXT): + ...these. + +2020-02-25 Keith Marshall + + Reimplement wcrtomb() and wcsrtombs(); cf. MinGW-Issue #39687. + + * include/wchar.h [__MSVCRT_VERSION__ < __MSVCR80_DLL] + (wcrtomb, wcsrtombs): Implement them as static inline redirects to... + (__msvcrt_wcrtomb, __msvcrt_wcsrtombs): ...these; declare them. + (__mingw_wcrtomb, __mingw_wcsrtombs): Also declare these. + + * include/limits.h (MB_LEN_MAX): Update value; was 2, but should be 5. + + * mingwex/wcsrtombs.c: New file; it implements... + (__mingw_wcsrtombs, __msvcrt_wcsrtombs): ...this pair of new + functions, either of which serves as a replacement for... + (wcsrtombs): ...this; it was originally implemented... + * mingwex/wcrtomb.c: ...here; rewritten as new, it now implements... + (__mingw_wcrtomb, __msvcrt_wcrtomb): ...these new functions, + either of which serves as a replacement for... + (wcrtomb): ...this. + + * mingwex/wcharmap.h: New private header; it declares the API for... + * mingwex/wcharmap.c: ...this new file, which implements... + (__mingw_wctomb_convert): ...this new function, required by... + (__mingw_wcrtomb, __msvcrt_wcrtomb, __mingw_wcsrtombs) + (__msvcrt_wcsrtombs): ...these; also provides... + (__mingw_wctomb_codeset_init, __mingw_wctomb_cur_max_init) + (__mingw_wctomb_cur_max): ...these supporting thread local storage + accessor functions. + + * mingwex/codeset.c: New file; it implements... + (__mb_codeset_for_locale, __mb_len_max_for_codeset): ...this pair of + new helper functions; they identify the codeset, and respectively, its + MB_CUR_MAX for the effective process locale, which are required by... + (__mingw_wctomb_convert): ...this. + + * Makefile.in (libmingwex.a): Add dependency references for... + (codeset.$OBJEXT, wcharmap.$OBJEXT, wcsrtombs.$OBJEXT): ...these. + +2020-01-21 Keith Marshall + + Address MinGW-Issue #39658; declare rand_s() function. + + * include/stdlib.h: When the user has defined... + [_CRT_RAND_S]: ...this optional feature test macro, and then... + [__MSVCRT_VERSION__ >= __MSVCR80_DLL]: ...either this non-free, or... + [_WIN32_WINNT >=_ WIN32_WINNT_VISTA]: ...this system-standard runtime + library version constraint is satisfied, then... + (rand_s): ...declare function prototype. + +2020-01-17 Keith Marshall + + Support GCC-9.x gratuitous dependency on ftruncate64() function. + + * include/unistd.h (ftruncate64): Declare prototype; implement it... + * mingwex/ftruncate.c: ...in this new file; it will delegate to... + (_chsize_s): ...this MSVCRT.DLL function, if available. + + * Makefile.in (libmingwex.a): Add dependency on... + (ftruncate.$OBJEXT): ...this. + + * msvcrt-xref/msvcrt.def.in (_chsize_s): Require dlsym look-up. + +2020-01-17 Keith Marshall + + Preserve order of tests for integrity of header files. + + * tests/Makefile.in: Explicitly sort $wildcard output, within... + (list_headers): ...this new function-style macro. + (enum_headers): Use it. + + * tests/headers.at: Adjust to recent GNU make $sort order. + +2020-01-17 Keith Marshall + + Update handling of test-suite limitation. + + * include/process.h (-Wbuiltin-declaration-mismatch) + [__IN_MINGWRT_TESTSUITE__ && __GNUC__ >= 7 && __cplusplus]: Drop... + [__cplusplus]: ...this diagnostic constraint, in test case when... + [__GNUC__ >= 9]: ...this applies; this diagnostic now affects both + C and C++ compilers, with respect to each of... + (execv, execve, execvp): ...these functions. + +2020-01-17 Keith Marshall + + Support GCC-9.x gratuitous use of non-standard errno accessor API. + + * include/stdlib.h (_get_errno, _set_errno): Declare prototypes; + implement them in-line, for legacy Windows versions which may lack + them, since GCC-9.x gratuitously and ill-advisedly requires them. + (__STDLIB_H_SOURCED__): Define, and selectively #include... + + * include/errno.h: ...this, subject to criterion... + [__STDLIB_H_SOURCED__]: ...for exposure of only... + (errno): ...this public API declaration, and... + (EINVAL): ...this symbolic constant. + +2019-10-26 Keith Marshall + + Fix MinGW-Issue #39757; avoid multiple vsnprintf() definitions. + + * include/stdio.h [C++] (__mingw_stdio_redirect__): Defer redirection + to in-line definitions applicable for C, when the compiler suite is... + [__GNUC__]: ...this. + +2019-10-16 Keith Marshall + + Address MinGW-Issue #39677; declare _findclose() only once. + + * include/io.h (_findclose): Relocate declaration within conditional + block, to prevent second exposure when is included in full, + following partial inclusion by + +2019-07-06 Keith Marshall + + Prepare and publish MinGW.org WSL-5.2.2 release. + + * All files (wsl-5.2.2-release): Tag assigned. + +2019-07-03 Keith Marshall + + Avoid built-in snprintf() prototypes; fix MinGW-Bug #39224 + + * include/stdio.h [__USE_MINGW_ANSI_STDIO] + (snprintf, vsnprintf): Implement them in-line, delegating to... + (__mingw_vsnprintf): ...this external function. + + * mingwex/stdio/snprintf.c mingwex/stdio/vsnprintf.c: Assert + copyright; include , instead of , to obtain a + definition of "size_t"; this is required because the new in-line + prototypes, now provided in , conflict with the intent + to provide external implementations. + + * tests/ansiprintf.at (MINGW_AT_CHECK_SNPRINTF): Conditionally + circumvent conditions which may produce -Wformat warnings. + +2019-07-01 Keith Marshall + + Revert to macro implementation of "alloca()" functions. + + * include/alloca.h (alloca, _alloca): Delete any prior definitions; + remove in-line implementations; replace with conventional prototypes, + followed by corresponding function style macro definitions. + +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.