OSDN Git Service

Incorporate user-customized <features.h> configuration.
[mingw/mingw-org-wsl.git] / mingwrt / ChangeLog
index 637c78a..df4517c 100644 (file)
@@ -1,3 +1,215 @@
+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.