X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=mingwrt%2FChangeLog;h=84588ad396559db43c0ec93a86457d10aa43270a;hb=b4fe285fd979fae8364d3c70056584aaacd95e8b;hp=0414ca6b5d63682a81e3ab041a31372061c8674d;hpb=d7b481768ce6b21f7cd3cc849e0c4295846117b4;p=mingw%2Fmingw-org-wsl.git diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog index 0414ca6..84588ad 100644 --- a/mingwrt/ChangeLog +++ b/mingwrt/ChangeLog @@ -1,3 +1,1072 @@ +2016-07-09 Keith Marshall + + Factor out vs. duplicate elements. + + * include/ctype.h: Assert copyright; tidy layout. + [!_CTYPE_H_]: Do not evaluate; rename macro to be tested, as... + [!_CTYPE_H]: ...this preferred multiple inclusion guard macro name. + (__CTYPE_H_SOURCED__): New macro; define it, and include , + so requesting partial inclusion, to retrieve definitions for... + (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE) + (_UPPER, WEOF): ...these macros; hence, do not define them locally. + (wint_t, wchar_t, wctype_t): Likewise these type definitions... + (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype) + (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace) + (iswupper, iswxdigit, towlower, towupper, is_wctype): ...these function + prototypes, and corresponding inline alternative implementations. + (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate. + [__MSVCRT_VERSION__<=__MSVCR70_DLL]: Likewise. + + * include/wctype.h: Assert copyright; tidy layout. + [!_WCTYPE_H_]: Do not evaluate; rename macro to be tested, as... + [!_WCTYPE_H]: ...this preferred multiple inclusion guard macro name; + do not define it when partial inclusion only is selected, by... + [__CTYPE_H_SOURCED__]: ...this; thence define only... + (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE) + (_UPPER): ...these character characterisation macros... + (wint_t, wchar_t, wctype_t): ...these type definitions... + (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype) + (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace) + (iswupper, iswxdigit, towlower, towupper): ...these function + prototypes, with corresponding inline alternative implementations... + (is_wctype): ...this further prototype, qualified as deprecated... + (WEOF): ...and this status reporting macro. + (_ctype, _pctype, _pctype_dll, _imp___ctype, _imp___pctype): Delete + declarations, and associated definitions; they do not belong here. + (isleadbyte): Likewise, this Microsoft specific function prototype... + (_LEADBYTE): ...and this associated character classification macro. + (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate. + +2016-07-04 Keith Marshall + + Do not pass MAKEFLAGS explicitly, when invoking recursive make. + + * Makefile.in (install-strip, uninstall): Delete explicit $(MAKEFLAGS) + references from $(MAKE) command lines; make passes them implicitly. + +2016-07-03 Keith Marshall + + Rework tsearch and friends; resolve issues [#1512] and [#1576]. + + * include/search.h: Assert copyright; tidy layout. + (_SEARCH_H_): Rename this multiple inclusion guard macro... + (_SEARCH_H): ...to conform to this preferred standard convention. + (__search_comparator): New function prototype typedef; it provides a + convenient shorthand notation for argument declarations in functions + which require a comparator function pointer; use it where appropriate. + (tsearch, tfind, tdelete) [__MINGW_ATTRIB_NONNULL]: Apply to arguments + #2 and #3; was previously incorrectly applied to arguments #1 and #3. + (twalk) [__MINGW_ATTRIB_NONNULL]: Apply to both arguments #1 and #2. + [_SEARCH_PRIVATE] (__MINGW_ATTRIB_NONNULL): Suppress its effect, to + ensure that GCC does not optimize away checks within implementation. + (_BEGIN_C_DECLS, _END_C_DECLS): Use these. + + * mingwex/tdelete.c: Tidy layout. + (tdelete): Reimplement it as a thin wrapper around... + (__tdelete): ...this; it encapsulates the original implementation as a + __CRT_ALIAS (inline) function, to simplify void ** --> node_t ** casts. + Remove unnecessary non-null assertions for arguments #1 and #3; prefer + to validate arguments #2 and #3 internally, and simply return NULL if + necessary; hence, do not include + + * mingwex/tfind.c: Tidy layout. + (tfind): Similarly reimplement it as a thin wrapper around... + (__tfind): ...this __CRT_ALIAS (inline) encapsulation of the original. + Add non-null validation for argument #3; do not include + + * mingwex/tsearch.c: Tidy layout. + (tsearch): Once again, reimplement it as a thin wrapper around... + (__tsearch): ...this __CRT_ALIAS variant. Add non-null validation for + argument #3; do not include + + * mingwex/twalk.c: Tidy layout; do not include + +2016-06-28 Keith Marshall + + Rework __try1/__except1 to resolve issue [#1328]. + + * include/excpt.h: Assert copyright; tidy layout. + (_EXCPT_H_): Multiple inclusion guard macro renamed to... + (_EXCPT_H): ...this; update all references as appropriate. + (_BEGIN_C_DECLS, _END_C_DECLS): Use these. + (__typecast_alloca): New macro; define it, casting return type of... + (__builtin_alloca): ...this to a specified data type; use it in... + (__try1_setup, __except1_teardown): ...these new macros; define them + as parameterized templates, providing both -masm-att and -masm-intel + syntax implementations, with host specific word size and register + assignment parameter substitutions; use them to redefine... + (__try1, __except1): ...each of these, using __builtin_alloca to avoid + direct stack pushes when registering exception handlers; assign the + template parameters as appropriate to support implementation for... + [_WIN64, _WIN32]: ...either of these, as the host requires. + +2016-06-17 Keith Marshall + + Merge Cygwin CVS updates to legacy branch. + + * include/stdio.h: Merge 2011-11-30 and 2012-08-02 commits. + (getc, getchar, putc, putchar): Declare function prototypes. + (fopen64, ftello64): Likewise; change implementation classification + from __CRT_INLINE to __CRT_ALIAS, to avoid C++ emitted code bloat. + (_lock_file, _unlock_file): Add prototypes; modify merge to... + [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...require this. + + * include/stdint.h: Merge 2012-07-30 commit; include <_mingw.h> + + * include/excpt.h: Merge 2012-08-01 commit. + (__try1, __except1) [_WIN64]: Add alternative implementations. + + * include/stdlib.h: Merge 2012-08-02 commit. + [__MSVCRT__VERSION__>=__MSVCR70_DLL || _WIN32_WINNT >= _WINXP] + (_strtoi64, _strtoui64, _wcstoi64, _wcstoui64): Declare prototypes. + [__MSVCRT__VERSION__>=__MSVCR80_DLL || _WIN32_WINNT >= _VISTA] + (_strtoi64_l, _strtoui64_l, _wcstoi64_l, _wcstoui64_l): Likewise... + [!__have_typedef_locale_t] (__need_locale_t): ...and define to get... + (locale_t): ...this, by selective inclusion of + [__WCHAR_H_SOURCED] (_wcstoi64, _wcstoui64, _wcstoi64_l) + (_wcstoui64_l): Make these function prototypes available for selective + inclusion by... + * include/wchar.h: ...this; merge 2012-08-02 commit. + [__MSVCRT__VERSION__>=__MSVCR70_DLL || _WIN32_WINNT >= _WINXP] + (_wcstoi64, _wcstoui64): Note availability of function prototypes via + selective inclusion of their actual declarations from + [__MSVCRT__VERSION__>=__MSVCR80_DLL || _WIN32_WINNT >= _VISTA] + (_wcstoi64_l, _wcstoui64_l): Likewise. + + * include/limits.h: Merge 2012-08-02 commit. + [__STRICT_ANSI__] (PATH_MAX): Suppress definition. + + * include/sys/param.h: Merge 2012-08-02 commit. + [PATH_MAX not defined] (MAXPATHLEN): Define it explicitly. + [PATH_MAX defined] (MAXPATHLEN): Define it as an alias. + +2016-06-12 Keith Marshall + + Add typedef and access support for opaque locale_t objects. + + * include/locale.h (locale_t, _locale_t): Define opaque types. + [__need_locale_t]: Make them selectively accessible; define... + (__have_typedef_locale_t): ...this, when they are available. + [_LOCALE_H] (_create_locale, _get_current_locale, _free_locale): + Declare function prototypes, on direct inclusion only. + [_LOCALE_H || _WCHAR_H] (_wcreate_locale): Likewise; this is to be + visible on direct inclusion, or when including + + * include/stdio.h [!(_STDIO_H && _WCHAR_T)]: Correct expression of... + [__MSVCR80_DLL || _WIN32_WINNT_VISTA]: ...this subsidiary condition; + for all cases when this is true, (including when [_STDIO_H] alone)... + [!__have_typedef_locale_t] (__need_locale_t): ...define this, and + include , for selective definition of... + (locale_t): ...this. + +2016-05-19 Keith Marshall + + Occlude unsupported _S_IFBLK feature; resolve issue [#1146]. + + * include/sys/stat.h (_MINGW_S_IFBLK_KLUDGE): New feature test macro; + do not define it, and strongly recommend that it remains undefined. + [!_MINGW_S_IFBLK_KLUDGE] (_S_IFBLK, S_IFBLK): Do not define them. + [!_MINGW_S_IFBLK_KLUDGE] (_S_ISBLK, S_ISBLK): Poison them. + [_MINGW_S_IFBLK_KLUDGE] (_S_IFBLK, S_IFBLK): Adjust definitions; use a + modified value, which is guaranteed to be impossible to match in... + [_S_ISBLK, S_ISBLK]: ...these, thus enforcing false test results. + +2016-05-18 Keith Marshall + + Fix a typo in a inline function definition. + + * include/sys/stat.h [__MSVCRT_VERSION__ >= __MSVCR80_DLL] + (stat): First argument declared as 'int'; should be 'const char *'; + correct it. + +2016-05-12 Keith Marshall + + Resolve some strnlen() implementation issues. + + * mingwex/strnlen.s (__mingw_strnlen) [!NUL]: Correct termination + logic; should have used jnz, not jz, to skip endpoint adjustment on + scanning past a terminal NUL character code. + + * include/string.h [_POSIX_C_SOURCE >= 200809L] (strnlen): Do not + #define it, as this breaks GCC compilation; use __CRT_ALIAS instead, + with __JMPSTUB__ referencing via "oldname" libraries. + + * Makefile.in (jmpstub_awk_script, libimpl_awk_script): Adapt to + facilitate assignment of __JMPSTUB__ and __LIBIMPL__ references to + libraries other than libmingwex.a + (strnlen.jmpstub.$OBJEXT): Assign it to all "moldname" libraries prior + to libmoldname80.a, in addition to libcoldname.a, as specified by the + __JMPSTUB__ assignment within + +2016-05-03 Keith Marshall + + Enforce consistent specification of package version. + + * include/_mingw.h: Rename as... + * include/_mingw.h.in: ...this build-time template file. + (__MINGW32_VERSION): Redefine it, in terms of... + (%PACKAGE_VERSION_LONG%): ...this substitution template. + (__MINGW32_MAJOR_VERSION, __MINGW32_MINOR_VERSION) + (__MINGW32_PATCHLEVEL): Likewise, redefine them in terms of... + (%PACKAGE_VERSION_MAJOR%, %PACKAGE_VERSION_MINOR%) + (%PACKAGE_VERSION_PATCH%): ...these. + + * configure.ac (AC_CONFIG_SRCDIR): Adjust for renamed file. + (MINGW_AC_CONFIG_EXTRA_SRCDIR): Likewise, for similarly renamed + w32api/include/w32api.h.in file. + + * Makefile.in (all-mingwrt-stage-1-only): Add dependency on... + (_mingw.h, w32api.h): ...these; add rule to generate them, using... + (PACKAGE_VERSION_SCRIPT, PACKAGE_VERSION_FORMAT): ...these new macros; + they apply appropriate substitutions to the renamed template files. + (install-mingwrt-headers): Explicitly add _mingwrt.h + +2016-04-30 Keith Marshall + + Make strnlen() available for all MSVCRT.DLL versions. + + * msvcrt-xref/msvcrt.def.in (strnlen): Mark it as... + (__MINGW_DLSYM): ...this, excluding its exposure in libmsvcrt.dll, and + thus requiring a dlsym() lookup for versions which provide it. + + * include/string.h [__MSVCRT_VERSION__>=__MSVCR80_DLL] (strnlen): + Declare prototype, for use from these non-free DLLs, otherwise... + [_POSIX_C_SOURCE >= 200809L] (strnlen): Define it as an alias for... + (__mingw_strnlen): ...this new libmingwex.a function. + + * mingwex/strnlen.s: New file; it implements... + (__mingw_strnlen, __mingw_strnlen_s): ...these new functions. + + * Makefile.in (libmingwex.a): Add requirement for... + (strnlen.$OBJEXT): ...this; add vpath specification for its source. + +2016-04-26 Keith Marshall + + Use correct paths for partially included header files. + + * include/io.h include/process.h: Use 'iquote' #include "stdint.h", to + ensure that we get stdint.h from the same include directory. + * include/stdio.h: Likewise for #include "stdarg.h", and "sys/types.h" + * include/wchar.h: Likewise for all of #include "stdio.h", "stdlib.h", + "direct.h", "sys/stat.h", "io.h", "time.h", "locale.h", and "process.h" + * include/dir.h include/dos.h: Likewise for #include "io.h" + * include/direct.h: Likewise for #include "dos.h" + +2016-04-13 Keith Marshall + + Generalize procedure for installing manpages. + + * man/dirname.man: Rename it as... + * man/dirname.3.man: ...this, with inherent MANSECT specification. + (TH): Use %PAGEREF% substitution for NAME, MANSECT, and DATE. + (MS-Windows): Do not append \[tm]; it doesn't render well in Windows + console. Further, correct typos; some syntactic adjustments. + + * Makefile.in (%:%.man): New rule; define it. + (%.mancopy, %.mancopy-recursive): New rules; define and use with... + (reference_manpage): ...this new macro, defining it to map... + (dirname.3.man): ...this as the reference source file for both of... + (basename.3, dirname.3): ...these installed manpages. + (format_manpage): Add MANSECT and DATE to expansion of... + (%PAGEREF%): ...this sed substitution pattern. + +2016-04-12 Keith Marshall + + Update several incorrectly attributed header files. + + * include/direct.h include/io.h include/locale.h include/math.h + * include/process.h include/stdio.h include/stdlib.h include/string.h + * include/sys/stat.h include/sys/types.h include/time.h: Identify the + original author as Colin Peters; Rob Savoye merely imported them into + the original CVS repository, when he created it. + + * include/wchar.h: Likewise, imported by Rob Savoye, but the original + source file is unattributed. + +2016-04-11 Keith Marshall + + Eliminate all references to non-standard __NO_ISOCEXT macro. + + * include/math.h: Tidy layout. + [!defined __NO_ISOCEXT]: Do not use this ugly double negative; in any + case, we do not want to encourage users to define such implementation + private macros; instead, prefer to make use of... + [defined _ISOC99_SOURCE]: ...this glibc compatible feature test. + [__STDC_VERSION__ >= 199901L]: Do not require this; it is implied, by + definition, in _ISOC99_SOURCE. + * include/stdio.h [!defined __NO_ISOCEXT]: Likewise; replace with... + [defined _ISOC99_SOURCE]: ...this, throughout. + +2016-04-10 Keith Marshall + + Make resetting of __need_typedef requests more robust. + + * include/sys/types.h [__need_off_t, __need___off64_t] + [__need_ssize_t, __need_time_t]: Move corresponding #undef out of, and + after the respective conditional blocks, which provide each associated + typedef, so ensuring that any repeat request is properly reset. + + * include/time.h [__need_time_t]: Always delegate to for + typedef, and reset of request, even in cases where... + [_TIME_H]: ...this is already defined. + +2016-04-10 Keith Marshall + + Add a missing comment terminator. + + * include/io.h [!(defined _IO_H && defined _WCHAR_H)]: Properly + terminate the comment annotating the closing #endif statement. + +2016-04-06 Keith Marshall + + Declare as formally deprecated. + + * include/dir.h: Assert copyright. + (pragma GCC system_header): Declare it. + (_DIR_H): Define as multiple inclusion macro. + [!_DIR_H]: Emit "obsolete header" warning message. + +2016-04-06 Keith Marshall + + Factor out vs. duplicate declarations. + + * include/io.h: Assert copyright; tidy layout. + (_IO_H_): Rename this multiple inclusion guard macro... + (_IO_H): ...to this preferred form; do not define it when... + [__WCHAR_H_SOURCED__]: ...this is defined, in which case declare... + (_waccess, _wchmod, _wcreat, _wopen, _wsopen, _wunlink, _wmktemp) + (_wfindfirst, _wfindnext, _wfindfirst64, _wfindnext64, _wfindfirsti64) + (_wfindnexti64, _wfindfirst32i64, _wfindnext32i64, _wfindfirst64i32) + (_wfindnext64i32, _wfindfirst32, _wfindnext32, _findclose): ...only + these function prototypes, common to , together with... + (_fsize_t, struct _wfinddata_t, struct _wfinddatai64_t) + (struct __wfinddata64_t, struct _wfinddata64i32_t) + (struct _wfinddata32i64_t, struct __wfinddata32_t): ...these + requisite data type definitions. + (pragma GCC system_header): Declare it. + (__need_intptr_t): Define, and include to get... + (intptr_t): ...this typedef; neither define it locally, nor define... + (_INTPTR_T_DEFINED): ...this; delete all references. + (_FSIZE_T_DEFINED): Do not define it; delete all references; rather... + [!(defined _IO_H && defined _WCHAR)] (_fsize_t): Define it. + (FILENAME_MAX): Define it unconditionally. + (__struct_finddata_t): New temporary macro; define and use it to... + (struct _finddata_t, struct _wfinddata_t, struct _finddatai64_t) + (struct _wfinddatai64_t, struct __finddata64_t, struct __wfinddata64_t) + (struct _finddata64i32_t, struct _wfinddata64i32_t) + (struct _finddata32i64_t, struct _wfinddata32i64_t) + (struct __finddata32_t, struct __wfinddata32_t): ...define these. + + * include/wchar.h (_WFINDDATA_T_DEFINED): Do not define it; delete all + references; filter out associated data type definitions, namely... + (struct _wfinddata_t, struct _wfinddatai64_t): ...these, and also... + (struct __wfinddata64_t, struct _wfinddata64i32_t): ...these, and... + (struct _wfinddata32i64_t, struct __wfinddata32_t): ...these. + (_WIO_DEFINED): Likewise, do not define it; delete all references; + filter out associated function prototype declarations for all of... + (_waccess, _wchmod, _wcreat, _wopen, _wsopen, _wunlink, _wmktemp) + (_wfindfirst, _wfindnext, _wfindfirst64, _wfindnext64, _wfindfirsti64) + (_wfindnexti64, _wfindfirst32i64, _wfindnext32i64, _wfindfirst64i32) + (_wfindnext64i32, _wfindfirst32, _wfindnext32): ...these; reproduce + them by selective inclusion of . + +2016-04-04 Keith Marshall + + Factor out vs. duplicate declarations. + + * include/process.h: Assert copyright; tidy layout. + (_PROCESS_H_): Rename this multiple inclusion guard macro... + (_PROCESS_H): ...to this preferred form; do not define it when... + [__WCHAR_H_SOURCED__]: ...this is defined, in which case declare... + (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve, _wexecvp) + (_wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe, _wspawnv) + (_wspawnve, _wspawnvp, _wspawnvpe): ...only these functions. + [!__WCHAR_H_SOURCED__] (_PROCESS_H): Define it; declare all functions + normally specified herein, including those listed above, as required. + (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations. + (__need_intptr_t): Define it prior to including . + (pragma GCC system_header): Declare it. + + * include/wchar.h (_WPROCESS_DEFINED): Delete it; filter out... + (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve, _wexecvp) + (_wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe, _wspawnv) + (_wspawnve, _wspawnvp, _wspawnvpe): ...these function prototypes; + reproduce them, by selective inclusion of . + +2016-04-04 Keith Marshall + + Enable selective retrieval of intptr typedefs from . + + * include/stdint.h: Assert copyright; tidy layout. + [__need_intptr_t || __need_uintptr_t] (_STDINT_H): Do not define it; + conceal all normally defined data types, except either or both of... + [__need_intptr_t] (intptr_t): ...this, and/or... + [__need_uintptr_t] (uintptr_t): ...this. + (pragma GCC system_header): Declare it. + +2016-03-29 Keith Marshall + + Factor out vs. duplicate declarations. + + * include/sys/stat.h: Assert copyright; tidy layout. + (pragma GCC system_header): Declare it. + (_STAT_H_): Rename multiple inclusion guard macro; adopt... + (_SYS_STAT_H): ...this preferred naming convention; however, when... + [__WCHAR_H_SOURCED__] (_SYS_STAT_H): ...do not define it; declare... + (_wstat, _wstati64, _wstat64, _wstat32): ...these functions, and... + (_wstat32i64, _wstat64i32): ...these, as appropriate to user specified + __MSVCRT_VERSION__ and _WIN32_WINNT macro definitions, namely... + [__MSVCRT_VERSION__ >= 0x601]: ...this, updated to become... + [__MSVCRT_VERSION__ >= __MSVCR61_DLL]: ...this; augment it with... + [|| _WIN32_WINNT >= _WIN32_WINNT_WIN2K]: ...this complement; also... + [__MSVCRT_VERSION__ < 0x800]: this, updated to become... + [__MSVCRT_VERSION__ < __MSVCR80_DLL]: ...this; likewise... + [__MSVCRT_VERSION__ >= 0x800]: ...this, which becomes... + [__MSVCRT_VERSION__ >= __MSVCR80_DLL]: ...this. + (__struct_stat_defined): New macro; define, and use it to define... + (struct stat, struct _stat, struct _stati64, struct __stat64) + (struct __stat32, struct _stat32i64, struct _stat64i32): ...these. + [!__WCHAR_H_SOURCED__] (_SYS_STAT_H): Define it; also include + , delegating to it the inclusion of <_mingw.h>, and + definition of types size_t and wchar_t; declare all header content, + including that declared when __WCHAR_H_SOURCED__ is defined, unless + already declared as a result of selective inclusion by + (__need_size_t, __need_wchar_t): Do not define them; consequently, + there is no need to include ; do not do so. + + * include/wchar.h (_wstat, _wstati64, _wstat64): Factor out. + (_wstat32, _wstat32i64, _wstat64i32, struct stat, struct _stat) + (struct _stati64, struct __stat64, struct __stat32, struct _stat32i64) + (struct _stat64i32): Likewise; reproduce them by selective inclusion + of + +2016-03-28 Keith Marshall + + Factor out vs. duplicate declarations. + + * include/direct.h: Conditionally partition it, such that... + [__WCHAR_H_SOURCED__] (_DIRECT_H): Do not define it; declare only... + (_wchdir, wchar_t, wchar_t, _wmkdir, _wrmdir): ...these, otherwise... + [!__WCHAR_H_SOURCED__] (_DIRECT_H): Define it; expose all content. + (_WDIRECT_DEFINED): Never define it; delete all references. + + * include/wchar.h (_WDIRECT_DEFINED): Delete all references. + (_wchdir, wchar_t, wchar_t, _wmkdir, _wrmdir): Delete prototypes; + selectively #include to reproduce them. + +2016-03-26 Keith Marshall + + Factor out vs. duplicate declarations. + + * include/dos.h: Assert copyright; tidy layout. + (pragma GCC system_header): Declare it. + (_DOS_H_): Rename multiple inclusion guard macro, to adopt... + (_DOS_H): ...this preferred convention; do not define it when... + [__DIRECT_H_SOURCED__]: ...this applies; restrict declarations to... + (struct _diskfree_t): ...this aggregate data type, together with... + [_NO_OLDNAMES] (diskfree_t): ...this alternative name for it, and... + (_getdiskfree): ...this associated function. + [!__DIRECT_H_SOURCED__] (_DOS_H): Define it; expose all content, but + emit a warning that this header is obsolete, and should not be used. + (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations. + (_DISKFREE_T_DEFINED): Do not define it; delete all references. + (__need_wchar_t): Do not define it; it isn't needed here, and hence, + neither is it necessary to #include ; do not do so. Also, + do not #include <_mingw.h> explicitly, but always #include , + which will implicitly #include <_mingw.h> anyway. + + * include/direct.h: Assert copyright; tidy layout. + (pragma GCC system_header): Declare it. + (_DIRECT_H_): Rename this multiple inclusion guard macro... + (_DIRECT_H): ...to adopt this preferred naming convention. + (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations. + (_DISKFREE_T_DEFINED, diskfree_t, struct _diskfree_t): Do not define. + (_getdiskfree): Likewise, do not declare prototype; instead... + (__DIRECT_H_SOURCED__): ...define this, and #include ; also + delegate indirect inclusion of <_mingw.h> and to this, rather + than include them directly; undefine __DIRECT_H_SOURCED__ when done. + (__need_wchar_t): Do not define it, and do not #include ; + although needed, we may inherit it indirectly from , + included by via . + +2016-03-26 Keith Marshall + + Evade CPP mismatched apostrophe warnings in windres comments. + + * msvcrt-xref/msvcrt.def.in (; pexports): 1,Gs/doesn't/does not/g + +2016-03-20 Keith Marshall + + Factor out vs. duplicate declarations. + + * include/locale.h: Assert copyright; tidy layout. + (_LOCALE_H_): Rename multiple inclusion guard macro, to... + (_LOCALE_H): ...this; do not define it when... + [__WCHAR_H_SOURCED__]: ...this applies; restrict declarations to... + (_wsetlocale): ...just this one visible function prototype. + [!__WCHAR_H_SOURCED__] (_LOCALE_H): Define it; expose all content. + (_WLOCALE_DEFINED): Do not define it; delete all references. + (pragma GCC system_header): Declare it. + + * include/wchar.h (_wsetlocale): Delete prototype; maintain its + visibility by selective inclusion of instead. + (_WLOCALE_DEFINED): Delete all references. + +2016-03-18 Keith Marshall + + Resolve some "implicit function declaration" warnings. + + * setargv.c (isspace): Include for declaration. + * cpu_features.h (__cpu_features_init): Declare function prototype. + * crt1.c (_setargv): Likewise; (this isn't needed elsewhere). + +2016-03-18 Keith Marshall + + Factor out vs. duplicate declarations. + + * include/stdlib.h [__WCHAR_H_SOURCED__] + (_STDLIB_H): Do not define it; restrict visible declarations to... + (wcstol, wcstoul, wcstod, _wgetenv, _wputenv, _wsearchenv, _wsystem) + (_wmakepath, _wsplitpath, _wfullpath, wcstof, wcstold): ...this subset + of regular content; full content is declared only when... + [!__WCHAR_H_SOURCED__] (_STDLIB_H): ...this applies; define it. + (_WSTDLIB_DEFINED): Do not define it; delete all references. + (pragma GCC system_header): Declare it; tidy layout. + + * include/wchar.h: Delete duplicated declarations for... + (wcstol, wcstoul, wcstod, _wgetenv, _wputenv, _wsearchenv, _wsystem) + (_wmakepath, _wsplitpath, _wfullpath, wcstof, wcstold): ...these; + include selectively, to maintain their visibility. + (_WSTDLIB_DEFINED): Delete all references. + +2016-03-17 Keith Marshall + + Relocate misplaced umask() function prototypes. + + * include/sys/stat.h (umask, _umask): Declare prototypes; duplicate... + * include/io.h (umask, _umask): ...these; POSIX doesn't expect them + here, but leave them for backward, or Microsoft, compatibility. + +2016-03-17 Keith Marshall + + Correct another _BEGIN_C_DECLS imbalance error. + + * include/wchar.h (_BEGIN_C_DECLS): One misplaced, superfluous, and + unbalanced instance deleted; one correctly balanced instance remains. + +2016-03-13 Keith Marshall + + Support installation of headers with empty parts directory. + + * Makefile.in (SUB_HEADERS_PRESENT): New macro; define it, and... + (install-mingwrt-headers): ...invoke it; if false, do not perform... + (INSTALL_SUB_HEADERS): ...this. + +2016-03-13 Keith Marshall + + Reinstate typedef for non-standard off64_t. + + * include/sys/types.h [!__STRICT_ANSI__] (off64_t): Define it as... + (__off64_t): ...typedef derived from this; although non-standard, it + is gratuitously required when building GCC's libgfortran.a + +2016-03-13 Keith Marshall + + Correct conditional compilation block nesting errors. + + * include/stdio.h include/time.h (_BEGIN_C_DECLS, _END_C_DECLS): Keep + them balanced within, and around, conditional compilation blocks. + +2016-03-10 Keith Marshall + + Feature test _MINGW32_EXTENDED_SOURCE renamed. + + * include/_mingw.h (_MINGW32_EXTENDED_SOURCE): Rename to... + (_MINGW32_SOURCE_EXTENDED): ...this, to improve naming consistency... + (_XOPEN_SOURCE_EXTENDED): ...with this POSIX-XSI feature test. + (__USE_MINGW_ANSI_STDIO): Note that it is intended for internal use; + users should enable any conventional feature test which implies it. + + * include/time.h (_MINGW32_EXTENDED_SOURCE): Update references... + (_MINGW32_SOURCE_EXTENDED): ...i.e. to refer to this. + +2016-02-28 Keith Marshall + + Correct atexit() and _onexit() export declaration regression. + + * msvcrt-xref/msvcrt.def.in (atexit, _onexit): These must be exported + as DATA; declare them accordingly. + +2016-02-18 Keith Marshall + + Refactor to make and redundant. + + * include/string.h: Tidy layout. + (__STRING_H_SOURCED__): New macro; define it at start; delete at end. + (_stricmp, _strnicmp): Include their prototypes, selectively from... + * include/strings.h [__STRING_H_SOURCED__]: ...here, reproduce them... + * include/parts/strings.h: ...from here; file is obsolete; delete it. + + * include/string.h (_wcscmpi): Define alias. + (wcscat, wcschr, wcscmp, wcscoll, wcscpy, wcscspn, wcslen, wcsncat) + (wcsncmp, wcsncpy, wcspbrk, wcsrchr, wcsspn, wcsstr, wcstok, wcsxfrm) + (_wcsdup, _wcsicmp, _wcsicoll, _wcslwr, _wcsnicmp, _wcsnset, _wcsrev) + (_wcsset, _wcsupr, _wcsncoll, _wcsnicoll, _wcserror, __wcserror) + (wcscmpi, wcscmpi, wcsdup, wcsicmp, wcsicoll, wcslwr, wcsnicmp) + (wcsnset, wcsrev, wcsset, wcsupr): Selectively include prototypes... + * include/wchar.h [__STRING_H_SOURCED__]: ...from here; reproduce... + * include/parts/wchar.h: ...from here; file is obsolete; delete it. + + * include/strings.h (_STRINGS_H): Do not define it, when... + [__STRING_H_SOURCED__]: ...selectively included by . + * include/wchar.h (_WCHAR_H) [__STRING_H_SOURCED__]: Likewise. + +2016-02-16 Keith Marshall + + Refactor to make redundant. + + * include/sys/types.h (time_t, __time32_t, __time32_t) + [__need_time_t && !__have_typedef_time_t]: Reproduce definitions... + * include/parts/time.h: ...from here; preserve selective exposure. + + * include/time.h (time_t, __time32_t, __time32_t): Get them... + * include/sys/types.h: ...from here, by selective inclusion. + + * include/time.h (struct timespec, struct __mingw_extended_timespec) + [__need_struct_timespec && !__struct_timespec_defined]: Reproduce... + * include/parts/time.h: ...from here; preserve selective exposure. + + * include/parts/time.h: Delete file; it is no longer required. + +2016-02-16 Keith Marshall + + Declare the nanosleep() function where POSIX expects it. + + * include/time.h (__mingw_sleep): Declare function prototype. + (nanosleep): Declare prototype, and provide in-line implementation; + this is a reproduction of the original implementation, relocated... + * include/unistd.h (nanosleep): ...from here; remove it; hence... + (struct timespec): ...this need not be declared here, and there is + no need to include ; remove reference. + +2016-02-15 Keith Marshall + + Refactor vs. to avoid duplication. + + * include/wchar.h (__WCHAR_H_SOURCED__): New macro; define it... + [_WCHAR_H]: ...at start of processing in this scope; delete at end. + (struct tm): Delete definition; delegate it, together with each of... + (_wctime, _wasctime, _wstrdate, _wstrtime, _wctime64, _wctime32) + (wcsftime): ...these function prototypes; delete them, but note in + comments, that they remain declared, via delegation to... + * include/time.h: ...this; include it selectively, subject to... + [defined __WCHAR_H_SOURCED__](__need_wchar_decls): ...this; define it. + [defined __WCHAR_H_SOURCED__](_TIME_H): Suppress its definition. + [_TIME_H]: Process all definitions and declarations; otherwise... + [__need_wchar_decls]: ...process only shared content, but... + [_TIME_H && _WCHAR_H]: ...not on second, or later, time of processing. + (_WTIME_DEFINED): Obsolete macro; delete all references. + +2016-02-11 Keith Marshall + + Implement support for POSIX "%n$*m$" printf() format control. + + * mingwex/stdio/pformat.c (NL_ARGMAX): New macro; nominally, it should + be defined in , but MinGW may not do so; provide a fallback. + (__pformat_inline__): New macro; define, and use it where appropriate. + (PFORMAT_CONVERSION_TYPE, PFORMAT_LENGTH_MODIFIER) + (PFORMAT_TYPE_DOUBLE, PFORMAT_TYPE_INTEGER, PFORMAT_TYPE_POINTER) + (PFORMAT_LENGTH_DEFAULT): New enumerated values; define them. + (PFORMAT_ARGMAP_ENTRIES): New enumerated value tally; use it in... + (__pformat_argmap_t): ...this new union data type; define it. + (__pformat_indexed_argc, __pformat_sizeof_argument, __pformat_argmap) + (__pformat_imul10plus, __pformat_arg_index, __pformat_read_arg_index) + (__pformat_read_arg_index_after, __pformat_look_ahead_beyond_flags) + (__pformat_look_ahead, __pformat_ignore_flags, __pformat_is_ldouble) + (__pformat_is_conversion_type, __pformat_is_alt_ldouble_modifier) + (__pformat_length_modifier, __pformat_check_length_modifier): New + locally defined static and/or inline functions; implement, and... + (__pformat): ...use them. + +2016-02-11 Keith Marshall + + Add prototypes for Microsoft's _printf_p() family of functions. + + * include/stdio.h [>=__MSVCR80_DLL || >=_WIN32_WINNT_VISTA] + (_printf_p, _printf_p_l, _vprintf_p, _vprintf_p_l, _fprintf_p) + (_fprintf_p_l, _vfprintf_p, _vfprintf_p_l, _sprintf_p, _sprintf_p_l) + (_vsprintf_p, _vsprintf_p_l): Add function prototypes; they require + either a non-free MSVC runtime, or MSVCRT.DLL from Vista onward. + (_wprintf_p, _wprintf_p_l, _vwprintf_p, _vwprintf_p_l, _fwprintf_p) + (_fwprintf_p_l, _vfwprintf_p, _vfwprintf_p_l, _swprintf_p) + (_swprintf_p_l, _vswprintf_p, _vswprintf_p_l): Likewise; make them + available for selective inclusion by both and ... + [_STDIO_H || __WCHAR_H_SOURCED__]: ...when either of these defined. + +2016-02-09 Keith Marshall + + Adapt msvcrt-xref to become msvcrt.def.in provider. + + * Makefile.in (msvcrt_version_script) [__MSVCRT_VERSION__]: Adjust + filter value assignment; scale it upwards, by a factor of 0x10000. + (%.def.in) [vpath]: Make it refer to msvcrt-xref directory. + (%.def) [msvcr*]: Do not preserve comments; define... + (__DLLNAME__): ...this preprocessor symbol. + + * msvcrt.def.in: Content is obsolete; delete file and replace with... + * msvcrt-xref/msvcrt.def.in: ...this updated alternative. + (__MINGW_DLSYM): New preprocessor macro; define it conditionally... + [__MSVCRT_VERSION__ != 0]: ...to emit in-scope symbols it declares... + [__MSVCRT_VERSION__ == 0]: ...to hide symbols it declares, followed by + redefinition of __MSVCRT_VERSION__ itself, to a value of 0x10000. + +2016-02-09 Keith Marshall + + Import msvcrt-xref documentation resources. + + * msvcrt-xref: New directory. + * msvcrt-xref/ChangeLog msvcrt-xref/COPYING: New files. + * msvcrt-xref/msvcrt-xref.ms msvcrt-xref/fdl-1.3.ms: New files. + * msvcrt-xref/configure.ac msvcrt-xref/Makefile.in: New files. + * msvcrt-xref/README.in msvcrt-xref/msvcrt.def.in: New files. + +2016-01-29 Keith Marshall + + Refactor vs. to avoid duplication. + + * include/wchar.h: Some minor layout adjustments. + (__WCHAR_H_SOURCED__): New macro; define it temporarily, only while + within the scope of reading ; undefine it at end of file. + (struct tm): Do not define; it is sufficient to keep it opaque. + (FILE, FILENAME_MAX, NULL, __VALIST, off_t, __off64_t, size_t) + (ssize_t, va_list, wchar_t, wint_t): Do not require or define them + directly; delegate to indirect definition by including . + (fgetwc, fputwc, fgetws, fputws, fwprintf, fwscanf, getwc, getwchar) + (_getws, putwc, putwchar, _putws, snwprintf, _snwprintf, swprintf) + (swscanf, ungetwc, vfwprintf, vfwscanf, _vscwprintf, vsnwprintf) + (_vsnwprintf, vswprintf, vwprintf, vswscanf, vwscanf, _wfdopen) + (_wfopen, _wfreopen, _wfsopen, _wperror, _wpopen, wprintf, _wrename) + (_wremove, wscanf, _wtmpnam, _wtempnam): Omit prototypes; acquire them + indirectly, by selective inclusion from ; hence include it. + + * include/stdio.h: Assert copyright; tidy layout. + (_STDIO_H_): Multiple inclusion guard macro, renamed as... + (_STDIO_H): ...this, but defined conditionally, subject to... + [__WCHAR_H_SOURCED__]: ...selectively define and declare only those + entities which are required by ; do not define... + [__WCHAR_H_SOURCED__] (_STDIO_H): ...this; define it only if... + [!__WCHAR_H_SOURCED__]: ...this; define and declare ALL entities which + are normally specified within , INCLUDING those specifically + itemised above, as selectively required by . + + * pseudo-reloc.c: Some minor layout adjustments. + (WIN32_LEAN_AND_MEAN): Define it; we don't need the windows baggage. + [typedef ptrdiff_t]: Do not assume this is gratuitously defined; + include to guarantee it. + +2016-01-29 Keith Marshall + + Enable selective definition of POSIX system types. + + * include/sys/types.h (_SYS_TYPES_H): Do NOT define, if including with + any specific __need_TYPE selector having been set prior to inclusion; + DO define it when no such selector is present, and undefine all such + selectors as may have been set, after evaluation of their effects. + (_DEV_T_, _FPOS64_T_, _INO_T_, _MODE_T_, _OFF_T_, _OFF64_T_, _PID_T_) + (_SIGSET_T_, _SSIZE_T_): Unnecessary guard macros; delete them; this + accommodates reorganization of the file, to achieve a tidier layout. + (__have_typedef_off_t): New repeat definition guard; define it for + compilers which may choke on any repeated typedef for either of... + (off_t, _off_t): ...these; make them selectively defineable for... + [_SYS_TYPES_H && !__have_typedef_off_t]: ...non-selective inclusion... + [__need_off_t && !__have_typedef_off_t]: ...this specific selection; + in either case, redefine them in terms of... + (__off32_t): ...this new internal type, for consistency with... + (__off64_t): ...this previously defined non-standard type; also make + it selectively defineable, either by... + [_SYS_TYPES_H && !__have_typedef___off64_t]: ...non-selective, or... + [__need_off_t && !__have_typedef___off64_t]: ...selective inclusion. + (__have_typedef___off64_t): New repeat definition guard; define it. + (ssize_t, _ssize_t): Also make them selectively defineable, on... + [_SYS_TYPES_H && !__have_typedef_ssize_t]: ...non-selective, or... + [__need_off_t && !__have_typedef_ssize_t]: ...selective inclusion. + (__have_typedef_ssize_t): New repeat definition guard; define it. + +2015-12-30 Keith Marshall + + Avoid user namespace pollution by non-standard type 'off64_t'. + + * include/sys/types.h (off64_t): Rename it as... + (__off64_t): ...this implementation-private alternative name, so + eliminating the potential for user namespace pollution. + + * include/io.h (lseek64): Use '__off64_t', instead of 'off64_t', as + return type, and type of offset argument, in both prototype and inline + implementation; note that this addresses the issue of pollution in the + user namespace, while avoiding the issue of MinGW-Bug [#2024]. + + * include/stdio.h (fseeko64, __mingw_fseeko64): Use '__off64_t' + instead of 'off64_t', as offset argument type in function prototypes. + (ftello64): Likewise, for return type of inline function. + + * mingwex/mingw-fseek.c: Assert copyright; tidy layout. + (WIN32_LEAN_AND_MEAN): Define, to minimize impact of . + (__mingw_fseeko64): Use '__off64_t' per modified function prototype. + + * mingwex/stdio/fseeko64.c: Assert copyright. + (fseeko64): Use '__off64_t' per modified function prototype. + +2015-12-27 Keith Marshall + + Improve ISO-C conformity in MinGW printf(); cf. MinGW-Bug [#1761] + + * mingwex/ofmtctl.c: New file; it implements... + (_mingw_output_format_control): ...this new function; it provides + additional MinGW specific printf() format processing options. + + * Makefile.in (libmingwex.a) [prerequisites]: Add ofmtctl.$OBJEXT + + * include/stdio.h (_mingw_output_format_control): Declare it. + (_EXPONENT_DIGIT_MASK, _MSVC_PRINTF_QUIRKS, _QUERY_MSVC_PRINTF_QUIRKS) + (_ENABLE_MSVC_PRINTF_QUIRKS, _DISABLE_MSVC_PRINTF_QUIRKS): New + manifest constant expressions; define them. + + * mingwex/stdio/pformat.c: Revise licensing terms. + (__pformat) [%le, %lE, %lf, %lF, %lg, %lG, %lx, %lX]: When... + [_mingw_output_format_flag & _MSVC_PRINTF_QUIRKS == 0]: ...ignore `l' + modifier; this matches the behaviour specified by ISO-C99, else... + [_mingw_output_format_flag & _MSVC_PRINTF_QUIRKS != 0]: ...revert to + previous MSVC compatible behaviour, treating it as an `L' modifier. + [!_WIN32] (_MSVC_PRINTF_QUIRKS): Force the zero match case. + + * mingwex/ofmt.c (ARGLIST): Subsume references to... + (ARGTYPE): ...this now obsolete macro; delete it throughout. + (update_output_format_flag): New inline function; it restricts flag + operations to affect only Microsoft's exponent digit bits. + [FUNCTION == _set_output_format]: Use it. + [FUNCTION == _get_output_format]: Likewise. + +2015-10-23 Keith Marshall + + Make atof() and strtod() conform to ISO-C; fix MinGW-Bug [#2273] + + * include/_mingw.h (_ISOC99_SOURCE): Ensure this feature test macro is + defined, when implied by any STDC or POSIX version selection, viz. ... + [__STDC_VERSION__ >= 199901L || _POSIX_C_SOURCE >= 200112L]: ...this. + + * include/stdlib.h: Assert copyright; tidy layout. + (_STDLIB_H_): Multiple inclusion guard macro renamed... + (_STDLIB_H): ...to this, preferring no trailing underscore. + [!defined __NO_ISOCEXT]: Delete double negative references; use... + [defined _ISOC99_SOURCE]: ...this feature test instead, when... + (lldiv_t): ...defining this C99 specific aggregate data type, and... + (lldiv, llabs, atoll, strtoll, strtoull, strtof, strtold, wcstof) + (wcstold, _Exit): ...declaring these C99 function prototypes. + (wtoll, lltoa, ulltoa, lltow, ulltow): Mark as deprecated, pending + future removal; not in MSVCRT.DLL, these conform to no known standard. + [__USE_MINGW_ANSI_STDIO] (atof, strtod): Implement inline, using... + (__strtod): ...this libmingwex.a provided function; it handles string + representations of hexadecimal-floats, infinities and NaNs, whereas... + (strtod): ...this MSVCRT.DLL implementation does not. + (__MSVCRT_VERSION__): Prefer symbolic comparison... + [>= __MSVCR80_DLL]: ...for this requirement. + +2015-10-22 Keith Marshall + + Rationalize definition of struct timespec. + + * include/parts/time.h (struct timespec): Redefine; use __time64_t for + tv_sec field, in place of anonymous union, thus avoiding missing brace + warnings when initializing; leave a copy of the previous definition... + (struct __mingw32_expanded_timespec): ...named thus. + + * include/unistd.h (nanosleep): Adjust inline implementation, to match + altered specification of tv_sec field in struct timespec. + + * include/_mingw.h (_MINGW32_EXTENDED_SOURCE): New feature test macro. + [! defined __STRICT_ANSI__]: Define it, making it a default feature. + + * include/time.h [_MINGW32_EXTENDED_SOURCE] (mingw_timespec): New + convenience function; defined as inline, with __LIBIMPL__ equivalent, + it facilitates interpretation of an instance of struct timespec as if + it were defined as struct __mingw32_expanded_timespec. + +2015-09-14 Keith Marshall + + Make strings.h mostly POSIX.1-2008 compliant. + + * include/strings.h: Rewritten. Do not include... + (string.h): ...this; mandated by POSIX.1, it now defines... + (strcasecmp, strncasecmp): ...these POSIX.1 functions, complete with + prototypes, possible in-line implementations, and JMPSTUB references + to corresponding external implementations, which will now become + automatically created within libmingwex.a + + * include/parts/strings.h: New file; it declares prototypes for... + (_stricmp, _strnicmp): ...these MSVC functions; nominally declared in + string.h, but we also require them in strings.h + + * include/parts/wchar.h: New file; it declares prototypes for all wide + character functions which MSVC specifies in both wchar.h and string.h + + * include/string.h: Miscellaneous layout adjustments. + (strcasecmp, strncasecmp): Delete; they belong in strings.h + (_stricmp, _strnicmp): Factor out; include them from parts/strings.h + [!_WSTRING_DEFINED]: Factor out all associated function prototypes; + include them from parts/wchar.h instead. + + * include/wchar.h [!_WSTRING_DEFINED]: Delete all associated function + prototypes; include them from parts/wchar.h instead, so making this + guard macro redundant; delete it. + + * Makefile.in (strcasecmp.$OBJEXT, strncasecmp.$OBJEXT) + (wcscmpi.$OBJEXT): Implementations are now automatically generated + from header file, for inclusion in libmingwex.a; remove free-standing + implementations from the entire family of liboldname libraries, and... + * strcasecmp.c strncasecmp.c wcscmpi.c: ...delete corresponding source + files; they are no longer required. + +2015-07-16 Keith Marshall + + Incorporate build system updates from w32api package. + + * Makefile.in (NTDDI_VERSION): Set default to NTDDI_WINNT4. + (mkinstalldirs, INSTALL_DATA): Reimplement to support $(call ...) + (install-strip, uninstall): New make command goals; implement them. + (mingwrt-dist-staged): Use 'install-strip' in this rule; hence... + (devdist, dlldist): ...these have no need to strip explicitly. + (INSTALL_SUB_HEADERS): New macro; implement it, and use it... + (install-mingwrt-headers): ...here. + +2015-07-14 Keith Marshall + + Adapt platform feature checks to NTDDI_VERSION conventions. + + * include/_mingw.h: Assert copyright; include w32api.h + (UNICODE, _UNICODE): Factor out consistency checks; relocate them + to w32api/include/w32api.h, whence they remain in effect. + (_EXTERN_C, _BEGIN_C_DECLS, _END_C_DECLS): Likewise. + +2015-07-14 Keith Marshall + + Correct mismatched #if/#endif from preceding commit. + + * include/_mingw.h (#pragma GCC system_header) + [__GNUC__ >= 3 && ! defined __PCC__]: Merge these conditions, thus + correcting for inadvertent removal of matching #endif introduced by + preceding 2015-06-19 commit. + +2015-06-19 Keith Marshall + + Define symbolic names for alternative Microsoft runtime DLLs. + + * include/msvcrtver.h: New file; it assigns a value for... + (__MSVCRT_VERSION__): ...this, making its default equivalent to... + (__MSVCR60_DLL): ...this new manifest constant, with each of... + (__MSVCR61_DLL, __MSVCR70_DLL, __MSVCR71_DLL, __MSVCR80_DLL) + (__MSVCR90_DLL, __MSVCR100_DLL, __MSVCR110_DLL, __MSVCR120_DLL): + ...these also defined, as user assignable alternatives. + + * include/_mingw.h (__MSVCRT_VERSION__): Use include/msvcrtver.h + to establish its default value. + +2015-06-18 Keith Marshall + + Track dependencies on modified system header files. + + * Makefile.in (DEPFLAGS): Use -MD, rather than -MMD. + +2015-06-18 Keith Marshall + + Correct an anomaly in stage 1 only build procedure. + + * Makefile.in (all-gcc): New goal; it is an alias for... + (all-mingwrt-stage-1): ...this, renamed to match configure, as... + (all-mingwrt-stage-1-only): ...this; upate all references. + (active-goals): Adjusted accordingly; it now reguires... + (all-deprecated-mingwrt-stage-1-only): ...this new goal. + (install): Adjusted, as directed by... + (DEFAULT_MAKECMDGOALS): ...this. + +2015-06-13 Keith Marshall + + Prefer our hypot() implementation in complex maths operations. + + * mingwex/complex/cabs_generic.c: New file; it replaces... + * mingwex/complex/cabs.c mingwex/complex/cabsf.c: ...all of... + * mingwex/complex/cabsl.c: ...these. + + * mingwex/complex/catan_generic.c: New file; it replaces... + * mingwex/complex/catan.c mingwex/complex/catanf.c: ...all of... + * mingwex/complex/catanl.c: ...these. + + * mingwex/complex/clog_generic.c: New file; it replaces... + * mingwex/complex/clog.c mingwex/complex/clogf.c: ...all of... + * mingwex/complex/clogl.c: ...these. + + * mingwex/complex/cpow_generic.c: New file; it replaces... + * mingwex/complex/cpow.c mingwex/complex/cpowf.c: ...all of... + * mingwex/complex/cpowl.c: ...these. + + * mingwex/complex/csqrt_generic.c: Do not use... + (_hypot): ...this Microsoft form of function reference; use... + (hypot): ...this ANSI standard form instead. + +2015-06-10 Keith Marshall + + Correct C++ compilation anomaly with hypotf() in cmath header. + + * include/math.h: Add copyright notice; generally tidy layout. + (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations. + (hypotf): Delete inline implementation; it did not properly handle + range errors, and was uncompilable with optimization when any g++ + option implying __STRICT_ANSI__ conformity was specified. + (_MATH_H_): Rename this multiple inclusion guard... + (_MATH_H): ...to this. + + * mingwex/math/hypot_generic.c: New file; it implements... + (hypot, hypotf, hypotl): ...these; use the latter pair in place of... + * mingwex/math/hypotf.c mingwex/math/hypotl.c: ...these; delete them. + +2015-06-08 Keith Marshall + + Prepare and tag all files for release of mingwrt-3.21.1. + + * configure.ac (AC_INIT): Adjust package version argument. + * include/_mingw.h (__MINGW32_PATCHLEVEL): Increment to 1, and... + (__MINGW32_VERSION): ...increment this to match. + +2015-05-18 Keith Marshall + + Refactor to avoid possible time_t conflicts across headers. + + * include/parts/time.h (struct timespec): Make it more descriptive of, + and better able to accommodate, potential ambiguity relating to... + (time_t, __time32_t, __time64_t): ...these typedefs; define them here, + whence they may be identically imported into each of... + * include/sys/types.h include/time.h include/wchar.h: these; delete + duplicate typedefs, and import accordingly. + + * include/sys/types.h: Add licence; general comment additions. + (_TYPES_H_): Rename multiple inclusion guard macro... + (_SYS_TYPES_H): ...to this. + + * include/time.h: Add licence; general comment/layout adjustments. + (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations. + (_TIME_T_DEFINED, _TIME32_T_DEFINED, _TIME64_T_DEFINED) + (_CLOCK_T_DEFINED): Superfluous guard macros; delete them. + (_TIME_H_): Rename multiple inclusion guard macro... + (_TIME_H): ...to this. + + * include/unistd.h (nanosleep): Adjust to accommodate redefinition... + (struct timespec): ...of this. + + * include/wchar.h: Add licence; general comment/layout adjustments. + (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations. + [GCC] (system_header): Add pragma, identifying header as such. + (_WCHAR_H_): Rename multiple inclusion guard macro... + (_WCHAR_H): ...to this. + 2015-05-09 Keith Marshall Remove obsolete varargs.h header file. @@ -512,6 +1581,78 @@ * jamfile: Delete it; it hasn't been updated in ages, is likely no longer relevant, and I have no desire to maintain it. +2012-08-02 Earnie Boyd + + Add another more rigorous __STRICT_ANSI__ filter. + + * include/limits.h [__STRICT_ANSI__] (PATH_MAX): Suppress definition. + * include/sys/param.h [PATH_MAX defined] (MAXPATHLEN): Alias it. + [PATH_MAX not defined] (MAXPATHLEN): Define it directly. + +2012-08-02 Ivan Maidanski + + Add missing function prototypes per issue [#1305]. + + * include/process.h [#ifndef _WPROCESS_DEFINED] + (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve) + (_wexecvp, _wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe) + (_wspawnv, _wspawnve, _wspawnvp, _wspawnvpe): Declare them. + +2012-08-02 Earnie Boyd + + Add function prototype declarations per issue [#1293]. + + * include/stdio.h (_lock_file, _unlock_file): Declare them. + +2012-08-02 Earnie Boyd + + Apply some more rigorous __STRICT_ANSI__ filtering. + + * include/stdio.h (_getws, _putws, _wfdopen, _wfopen) + (_wfreopen, _wfsopen, _wtmpnam, _wtempnam, _wrename, _wremove) + (_wperror, _wpopen): Do not declare these functions unless... + [#ifndef __STRICT_ANSI__]: ...this is satisfied. + +2012-08-02 Earnie Boyd + + Add string to 64-bit integer conversion function prototypes. + + * include/stdlib.h (_strtoi64, _strtoi64_l, _strtoui64, _strtoui64_l) + (_wcstoi64, _wcstoi64_l, _wcstoui64, _wcstoui64_l): Declare them. + * include/wchar.h (_wcstoi64, _wcstoi64_l, _wcstoui64, _wcstoui64_l): + Likewise; these are duplicates of the declarations. + +2012-08-01 Earnie Boyd + + Update for _WIN64 exception handler readiness. + + * include/excpt.h [_WIN64] (__try1, __except1): Add alternative inline + assembly code implementation, based on X86-64 architecture. + +2012-07-30 Earnie Boyd + + Correct missing inclusion of <_mingw.h>. + + * include/stdint.h: Add omitted #include; all mingwrt headers are + expected to include this; it is required to define __int64. + +2011-11-30 Ozkan Sezer + + Correct prototypes for _wfindfirst()/_wfindnext() function family. + + * include/io.h (_wfindfirst, _wfindfirst32, _wfindfirsti64) + (_wfindfirst32i64, _wfindfirst64i32): Return type changed to intptr_t. + (_wfindnext, _wfindnext32, _wfindnexti64, _wfindnext32i64) + (_wfindnext64i32, _wfindnext64): Type of parameter #1 must match. + +2011-11-30 Earnie Boyd + + Avoid potential GCC "missing function prototype" warnings. + + * include/stdio.h (getc, putc, getchar, putchar, fopen64) + (ftello64): Provide a function prototype declaration for each of + these, prior to the corresponding inline implementation. + 2011-08-23 Chris Sutcliffe * include/_mingw.h: Increment version to 3.20. @@ -2186,7 +3327,7 @@ * include/wchar.h (WCHAR_MAX): Define as 0xffff, so preprocessor #if (WCHAR_MAX <= WCHAR_MIN) is false. - * include/stdint.h (WCHAR_MAX): Likwise. + * include/stdint.h (WCHAR_MAX): Likewise. (WINT_MAX): Likewise. 2005-05-03 Danny Smith @@ -2267,7 +3408,7 @@ 2005-02-11 Gregory W. Chicares - * include/math.h (expm1, expm1f, expmll): Add prototypes. + * include/math.h (expm1, expm1f, expm1l): Add prototypes. * mingwex/Makefile.in (MATH_DISTFILES): Add expm1.c, expm1f.c, expm1l.c. (MATH_OBJS): Add expm1.o, expm1f.o, expm1l.o. @@ -2278,7 +3419,7 @@ 2005-02-07 Danny Smith * include/sys/stat.h (struct stat): Guard with _NO_OLDNAMES. - * include/wchar.h (struct stat): Likwwise. + * include/wchar.h (struct stat): Likewise. Bug reported to Debian by Anand Kumria * include/sys/stat.h: Remove empty __STRICT_ANSI__ guard. @@ -2788,7 +3929,7 @@ * include/sys/stat.h (__stat64): Add struct definition. (_fstat64): Add prototype for __MSVCRT_VERSION__ >= 0x0601. (_stat64): Likewise. - (_wstat64): Likwise. + (_wstat64): Likewise. * include/sys/types.h (__time64_t): Add typedef. * include/wchar.h (__wfinddata64_t): Add structure definition. (__stat64): Likewise. @@ -2796,7 +3937,7 @@ (_wfindfirst64): Likewise. (_wfindnext64): Likewise. (_wutime64): Likewise. - (_wstat64): Likwise. + (_wstat64): Likewise. * include/malloc.h (_aligned_free): Add prototype for __MSVCRT_VERSION__ >= 0x0700. (_aligned_malloc): Likewise. @@ -2897,7 +4038,7 @@ 2004-01-16 Danny Smith - * include/stdint.h Fix __STDC_CONSTANT_MACROS for 8 and 16 bit + * include/stdint.h [__STDC_CONSTANT_MACROS]: Fix for 8 and 16 bit types. (Thanks to John Maddock for report.) 2004-01-14 Greg Chicares @@ -3803,7 +4944,7 @@ mingwex/math. Adjust MATH_OBJS. Add MATH_DISTFILES and use it to build source distro. - * include/ math.h: Add protypes for new functions and + * include/math.h: Add protypes for new functions and reorganise to reflect ANSI,C99 status. 2002-06-19 Danny Smith @@ -3878,8 +5019,7 @@ 2002-05-21 Danny Smith - * include/stdint.h: Include stddef.h to get - wchar_t and wint_t. + * include/stdint.h: Include to get wchar_t and wint_t. (WINT_MAX): Define to ((wint_t)-1). 2002-05-21 Danny Smith