X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=mingwrt%2FChangeLog;h=b8ee2a7accfc8abe983ce235d70d61067d1271ba;hb=a94ded612ec67b5e83958133350dd35f6249f461;hp=e2677bd55e5bbd76cb6da2c4fdb1297867bc5f90;hpb=f8a8324deb5fb459c79afc10f3d2f4b3707e09bf;p=mingw%2Fmingw-org-wsl.git diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog index e2677bd..b8ee2a7 100644 --- a/mingwrt/ChangeLog +++ b/mingwrt/ChangeLog @@ -1,3 +1,956 @@ +2017-03-09 Keith Marshall + + Strip optional DLLs, when staging for distribution. + + * Makefile.in (mingwrt-%-optist): Recursively make... + (install-strip-$*-optional-dll): ...this internal target, not... + (install-$*-optional-dll): ...this. + +2017-03-08 Keith Marshall + + Prepare and tag for release of mingwrt-5.0 package set. + + * All files (wsl-5.0-release): Tag assigned. + +2017-03-07 Keith Marshall + + Avoid -shared-libgcc dependencies in optional DLLs. + + * Makefile.in (dllname): Qualify it, by addition of... + (LIBGCC_LINK_OPTION): ...this DLL name specific linking option macro. + (libmingwex.dll.a): Force it to use -static-libgcc for associated DLL. + +2017-02-27 Keith Marshall + + Support optional DLL builds from static libraries. + + * aclocal.m4 (MINGW_AC_SET_DLLVERSION): New macro; define it, and... + * VERSION.m4: ...use it here, to enumerate the specifcations for... + (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): ...this collection of DLL + version identification records. + + * Makefile.in (DLLVERSION): New macro; define default, and capture + library specific variants, as generated by AC_SUBST output from... + (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): ...this configuration macro. + (a2dll, dllname, dllsuffix): New macros; define them, together with + new pattern rule using them, to create DLLs and import libraries from + existing static object libraries; augment these with... + (optional_dll_version): ...this further new macro, used by... + (install-optional-dlls, install-mingwrt-optional-dlls) + (install-libmingwex-optional-dll): ...these new installation rules... + (uninstall-optional-dlls, uninstall-mingwrt-optional-dlls): ...and + counterpart rules, to uninstall all such optional DLL files. + (optional_dll_package): Further new macro; it is required by... + (optdist, mingwrt-optdist, mingwrt-libmingwex-optdist): ...these new + distribution rules; they create packages for optional DLLs. + (dist): Add optdist. + + * configure.ac (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): Invoke it. + +2017-02-24 Keith Marshall + + Make floating point environment more robust. + + * CRT_fp8.c CRT_fp10.c: Delete them; both are replaced by... + * CRT_fenv.c: ...this new common source file; it implements... + (_CRT_fenv): ...this new global variable, with alternative definitions + evaluated during application start-up, to assign one or other of... + [FE_PC53_ENV, FE_PC64_ENV]: ...these, as the preferred default... + [FE_DFL_ENV]: ...represented by this; replacement linkage for... + (_fpreset): ...this MSVCRT.DLL function is no longer supported. + + * Makefile.in: Add new static pattern rule, for compiling... + (CRT_fp8.$OBJEXT, CRT_fp10.$OBJEXT): ...each of these, from CRT_env.c + + * crt1.c (_gnu_exception_handler, __mingw_CRTStartup): Do not call... + (_fpreset): ...this; its linkage was non-deterministically ambiguous. + (fesetenv): Use this, unambiguously, instead; initially configure the + floating point environment to the predefined state, as assigned to... + [_CRT_fenv]: ...this new global variable; thereafter, reset to... + [FE_DFL_ENV]: ...this ISO-C99 mandatory configuration. + + * include/float.h: Assert copyright; tidy layout. + [_MINGW_FLOAT_H_]: Retain, but replace in guard macro usage by... + [_MINGW_FLOAT_H]: ...this, conforming to preferred naming convention. + [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate. + (_fpreset): Add _CRTIMP attribute; it is resolved by MSVCRT.DLL + (fpreset): Deprecate it; provide inline __LIBIMPL__ fall-back. + + * include/fenv.h: Assert copyright; tidy layout. + [_FENV_H_]: Rename multiple inclusion guard macro, adopting... + [_FENV_H]: ...this preferred stylistic naming convention. + [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate. + (FE_INVALID, FE_DENORMAL, FE_DIVBYZERO, FE_OVERFLOW, FE_UNDERFLOW) + (FE_INEXACT, FE_ALL_EXCEPT, FE_TONEAREST, FE_DOWNWARD, FE_UPWARD) + (FE_TOWARDZERO): Redefine them, in terms of enumerated bit positions. + (FE_PD53_ENV, FE_PD64_ENV): New predefined environment selectors; they + serve as initialization-time aliases, causing redefinition of... + [FE_DFL_ENV]: ...this, as run-time alias for one or other of... + [FE_PC53_ENV, FE_PC64_ENV]: ...these, respectively. + + * mingwex/fesetenv.c: Assert copyright; tidy layout. + (fesetenv) [FE_PD53_ENV || FE_PD64_ENV]: Handle them, assigning to... + (FE_DFL_ENV): ...this ISO-C99 mandatory configuration, representing... + (fenv_default): ...the value of this new static variable. + (_fpreset): Call it directly; now always resolved by MSVCRT.DLL, so... + (*_imp__fpreset): ...this indirection becomes unnecessary. + +2017-02-21 Keith Marshall + + Make mingwrt and w32api test suites consistent. + + * Makefile.in (test): New rule; define it as a synonym for... + (check tests): ...these, so maintaining consistency with w32api. + +2017-02-16 Keith Marshall + + Work around GCC bug; force C++11 to support std::wcstof(). + + * include/_mingw.h [_ISOC99_SOURCE && __cplusplus >= 201103L] + [__GNUC__ < 6] (_GLIBCXX_HAVE_WCSTOF): Define it to 1; it is required + because, prior to GCC-6, GCC's configuration process fails to specify + it correctly, and so invalidates its own header file. + +2017-02-12 Keith Marshall + + Support brace expansion in globbing patterns. + + * include/glob.h (GLOB_BRACE): New manifest constant; define it... + (__GLOB_FLAG__): ...in terms of this macro. + + * mingwex/glob.c (glob_match): Reindent, with preamble invoking... + (glob_brace_expand): ...this new static inline function; implement it. + (GLOB_INIT, GLOB_FREE): Redefine them, relating them to... + (__GLOB_FLAG_OFFSET_HIGH_WATER_MARK): ...this. + + * setargv.c (__mingw32_setargv) [_CRT_glob]: Check if it includes... + [GLOB_CASEMATCH | GLOB_BRACE]: either of these; remove check for... + [__CRT_GLOB_CASE_SENSITIVE__]: ...this defunct option. + + * include/_mingw.h.in (GLOB_BRACE): Note its use in _CRT_glob. + (GLOB_CASEMATCH): Likewise; this replaces all former usage of... + (__CRT_GLOB_CASE_SENSITIVE__): ...this; delete definition. + +2017-02-11 Keith Marshall + + Refactor and shared declarations. + + * include/getopt.h: Assert copyright. + (_BEGIN_C_DECLS, _END_C_DECLS): Use as appropriate. + (__GETOPT_H__, __GETOPT_LONG_H__): Delete them; replace them with... + (_GETOPT_H): This new macro; it guards the entire file, except when... + [__UNISTD_H_SOURCED__]: ...do not activate it; hence when... + [!_GETOPT_H]: ...do not expose API declarations for... + (getopt_long, getopt_long_only): ...these functions. + [_GETOPT_H && _UNISTD_H]: Skip second pass API declarations for... + (getopt): ...this function. + + * include/unistd.h: Use the #include "..." form when including... + (io.h, process.h, getopt.h): ...these, to ensure correct association. + (ftruncate): Map it directly to MSVCRT.DLL's _chsize() entry point. + +2017-02-10 Keith Marshall + + Avoid unnecessary duplication of configuration files. + + * Makefile.in (vpath install-sh): Define it; it matches... + (vpath %.m4): ...this; add $top_srcdir/..; search it first; delete + rule for creating duplicate file reference links in $top_srcdir. + (configure): Add '-I ..' option, when running autoconf. + (mingwrt-srcdist-package-files): Remove dependencies on... + (aclocal.m4 VERSION.m4 install-sh): ...these; reinstate them in... + (mingwrt-srcdist-config-files): ...this new distributable files + enumeration goal; add it as a new prerequisite of... + (mingwrt-srcdist-files): ...this. + +2017-02-07 Keith Marshall + + Ensure selective inclusion of the correct + + * include/string.h: Use "..." form for selective inclusion of ... + (strings.h): ...this, to ensure that we get our own version, avoiding + any inappropriate alternative which may have been insinuated into the + system header include path. + +2017-02-04 Keith Marshall + + Resolve a global variable naming inconsistency. + + * mingwex/ofmt.c (__mingw_output_format_flag): Rename it as... + (__mingw_output_format_flags): ...this, at point of definition, and + update all references, to maintain consistency with usage... + * mingwex/ofmtctl.c (__mingw_output_format_flags): ...here. + + * mingwex/stdio/pformat.c: Update references. + +2017-01-30 Keith Marshall + + Implement strerror_r()/strerror_s() API. + + * mingwex/strerror_r.c: New file; it implements... + (strerror_r): ...this new POSIX.1-2001 conforming function. + + * include/string.h (strerror_s): Add function prototype, subject to... + [_MSVCR80_DLL || _WIN32_WINNT_VISTA]: ...this DLL version dependency; + otherwise implement an inline wrapper function to emulate it, using... + [_POSIX_C_SOURCE > 200112L] (strerror_r): ...this; add prototype. + + * Makefile.in (libmingwex.a): Add strerror_r.$OBJEXT + +2017-01-30 Keith Marshall + + Avoid -Wformat noise from snprintf() and vsnprintf() + + * include/stdio.h (snprintf, vsnprintf): Add inline implementations; + they redirect to "__mingw_" prefixed alternatives, so suppressing the + effect of automatic format attribute recognition. + +2017-01-30 Keith Marshall + + Remove duplicate libmingwex.a entries. + + * mingwex/jmpstub.sx (DLLENTRY): Interpret it. + + * Makefile.in (jmpstub_awk_script): Handle DLLENTRY. + (libmingwex.a): Remove explicit object file references to... + (snwprintf, vsnwprintf): ...these. + + * include/stdio.h (snwprintf, vsnwprintf): Map them as __JMPSTUB__ + references to MSVCRT.DLL entry points, via DLLENTRY references to... + (_snwprintf, _vsnwprintf): ...these, respectively. + + * mingwex/snwprintf.c: Redundant file; delete it. + * mingwex/vsnwprintf.c: Likewise. + +2017-01-29 Keith Marshall + + Clean up header file. + + * include/limits.h: Tidy layout; assert copyright. + (#pragma GCC system_header): Declare it as being such. + (_LIMITS_H_): Rename this multiple inclusion guard macro... + (_LIMITS_H): ...to adopt this preferred form. + [__STDC_VERSION__ >= 199901L]: Infer it... + [_ISOC99_SOURCE]: ...from this. + +2017-01-29 Keith Marshall + + Expose C99 features required by C++11; fix issue [#2335] + + * include/_mingw.h.in (_ISOC99_SOURCE): Ensure it is defined for... + [__cplusplus >= 201103L]: ...this conformance level, in addition to... + [__STDC_VERSION__>= 199901L || _POSIX_C_SOURCE >= 200112L]: ...these. + [_GLIBCXX_USE_C99]: Force it for -std=c++11, subject to... + [__GNUC__ < 6]: ...this. + + * include/ctype.h (isblank): Declare it only if... + [_ISOC99_SOURCE]: ...this, thus simplifying declarative condition. + * include/wctype.h (iswblank) [_ISOC99_SOURCE]: Likewise. + * include/inttypes.h (SCNd8, SCNdLEAST8, SCNdFAST8, SCNi8, SCNiLEAST8) + (SCNiFAST8, SCNo8, SCNoLEAST8, SCNoFAST8, SCNx8, SCNxLEAST8, SCNxFAST8) + (SCNu8, SCNuLEAST8, SCNuFAST8) [_ISOC99_SOURCE]: Likewise. + +2017-01-28 Keith Marshall + + Make strnlen() and wcsnlen() declaratively consistent. + + * include/string.h (strnlen): Do not expose its declaration, unless... + [_POSIX_C_SOURCE >= 200809L]: ...this feature test is enabled. + +2017-01-28 Keith Marshall + + Implement wcsnlen() API per feature request [#2332]. + + * mingwex/strnlen.s: Rename it as... + * mingwex/strnlen.sx: ...this; use C preprocessor logic to adapt... + (__mingw_strnlen): ...this existing function implementation for use... + [_UNICODE] (__mingw_wcsnlen): ...as this. + + * include/wchar.h [_POSIX_C_SOURCE >= 200809L] (wcsnlen): Declare... + [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...using MS DLL implementation... + [!__MSVCRT_VERSION__>=__MSVCR80_DLL] (__mingw_wcsnlen): ...otherwise, + declare this, with inline __JMPSTUB__ implementation, providing... + (wcsnlen): ...this. + + * Makefile.in (wcsnlen.$OBJEXT): New build rule. + (libmingwex.a): Add wcsnlen.$OBJEXT as new prerequisite. + (libmoldname.a, libmoldnamed.a): Add __JMPSTUB__ wrappers. + (libmoldname70.a, libmoldname70d.a): Likewise. + (libmoldname71.a, libmoldname71d.a): Likewise. + + for all other MSVC non-free associated oldname import libraries. + (vpath): Add $srcdir/mingwex for %.sx; hence mapping for... + (jmpstub.sx): ...this becomes redundant; delete it. + +2017-01-26 Jason Hood + + Honour GLOB_CASEMATCH for globbing sets; cf. issue [#2327]. + + * include/glob.h (GLOB_CASEMATCH): Update comment. + * mingwex/glob.c (glob_case_match): Move before, and use it in... + (glob_in_set): ...this function, to test characters in the set. + +2017-01-26 Keith Marshall + + Avoid snprintf() overhead in directory stream functions. + + * mingwex/dirent.c (dirent_update): Do not use either snprintf() or + snwprintf() functions when updating dd->d_name and dd->d_namlen data; + emulate them instead, using a lightweight inline char-by-char counted + copy loop, operating on char or wchar_t data as appropriate. + (DIRENT_ASSIGN_NAME): Macro no longer required; delete it. + (NUL): New manifest constant; define it. + +2017-01-26 Keith Marshall + + Avoid #include_next misbehaviour; cf. MinGW-Bug [#2330] + + * include/ctype.h (wctype.h): Use "..." form of #include, rather than + the <...> form; we must include our own corresponding mingwrt version + of this subsidiary header, and avoid any bogus alternative which may + have been insinuated earlier in the system header path. + + * include/string.h (wchar.h): Likewise. + +2017-01-25 Jason Hood + + Correct quoted backslash handling, per bug [#2328]. + + * setargv.c (__mingw32_setargv): Within single quotes, backslashes + should be interpreted literally; copy them as-is. + +2017-01-25 Keith Marshall + + Use C99 blanks as default argv separators, per issue [#2329]. + + * setargv.c [_ISOC99_SOURCE]: Require it. + (__mingw32_setargv): Separate command line arguments based on... + [(quoted == 0) && isblank( c )]: ...this condition, instead of on... + [(quoted == 0) && isspace( c )]: ...this, so that only blanks, rather + than any whitespace characters, serve as default argument separators. + +2017-01-10 Keith Marshall + + Correct preprocessor logic; fix bug [#2322] + + * include/strings.h (_stricmp, _strnicmp): Always declare, unless... + [__STRICT_ANSI__ && __NO_INLINE__]: ...both of these are defined. + +2016-11-28 Keith Marshall + + Implement POSIX.1 compatible setenv() and unsetenv() functions. + + * mingwex/setenv.c: New file; it implements... + (__mingw_setenv): ...this function, providing common code for... + * include/stdlib.h [_POSIX_C_SOURCE >= 200112L] (setenv, unsetenv): + ...these user visible functions, implemented as __CRT_ALIAS inlines; + qualify them as __JMPSTUB__ and __LIBIMPL__ respectively, so ensuring + that their corresponding external representations are automatically + added to libmingwex.a + + * Makefile.in (libmingwex.a): Add setenv.$OBJEXT + +2016-11-27 Keith Marshall + + Work around another C++11 compliance issue; fix bug [#2321]. + + * include/excpt.h (__try1_setup, __except1_teardown): Add spaces to + separate each use of '__wsize' and '__ts' macros from all surrounding + string literals, to ensure that C++ parses them as distinct tokens. + +2016-11-21 Keith Marshall + + Replace defective powf() and powl() function implementations. + + * mingwex/math/powf.c mingwex/math/powl.c: Delete; replaced by... + * mingwex/math/pow_generic.sx: ...this new file; it implements... + (__x87pow): ...this generic power function back-end, serving... + (pow, powf, powl): ...each of these front-end entry points. + + * Makefile.in (libmingwex.a): Add x87pow.$OBJEXT + + * include/math.h (powf): Remove inline implementation; it no longer + offers any inline advantage. + +2016-11-18 Keith Marshall + + Implement unit tests for power functions. + + * tests/testsuite.at.in: m4_include... + * tests/Makefile.in (testsuite): ...and add dependency on... + * tests/powerfunc.at: ...this new file; it specifies unit tests to + check POSIX.1-2008 compliance of results and errno assignment from... + (pow, powf, powl): ...each of these functions. + +2016-11-14 Keith Marshall + + Add POSIX compliant errno assignments to log functions. + + * include/errno.h: Make it assembly language compatible. + [__ASSEMBLER__]: Omit <_mingw.h>; do not declare prototype for... + (_errno): ...this accessor function; the declaration is syntactically + invalid, in assembly language code. + + * mingwex/math/errno.sx: New file; when included by other assembly + language files, it provides bindings for assignement of any constant + defined in to the global errno variable, facilitated by... + (errno): ...this new GAS macro. + + * mingwex/math/log_generic.sx: New file; it provides a generic back + end implementation for multiple logarithmic functions, accessed via... + (___x87log, ___x87log_chk): ...this pair of entry points, serving... + (log, logf, log): ...each of these primary functions; it replaces... + * mingwex/math/logf.s mingwex/math/logl.s: ...these; delete them. + + * mingwex/math/log1p_generic.sx mingwex/math/log10_generic.sx + * mingwex/math/log2_generic.sx: New files; each acts as a wrapper for + log_generic.sx, providing the front end entry stubs for each of... + (log1p, log1pf, log1pl, log10, log10f, log10l, log2, log2f, log2l): + ...these functions; thus, they provide complete replacements for... + * mingwex/math/log1p.s mingwex/math/log1pf.s mingwex/math/log1pl.s + * mingwex/math/log10f.s mingwex/math/log10l.s mingwex/math/log2.s + * mingwex/math/log2f.s mingwex/math/log2l.s: ...these; delete them. + + * mingwex/math/x87cvt_generic.sx: New file; it implements... + (___x87cvt, ___x87cvtf): ...this pair of return value conversion + routines, for conversion from the FPU's internal REAL10 data format, + to REAL8 and REAL4, for double and float functions respectively. + + * Makefile.in (libmingwex.a): Add dependencies on... + (x87cvt.$OBJEXT), x87cvtf.$OBJEXT), x87log.$OBJEXT), x87logf.$OBJEXT): + ...these object modules; implement pattern rule to build them from... + (x87cvt_generic.sx, log_generic.sx): ...these generic sources; also + provide for building the respective log function entry stubs from + their respective generic sources. + +2016-11-08 Keith Marshall + + Implement unit tests for logarithmic functions. + + * tests/testsuite.at.in: m4_include... + * tests/Makefile.in (testsuite): ...and add dependency on... + * tests/logarithms.at: ...this new file; it specifies unit tests to + check POSIX.1-2008 compliance of results and errno assignment from... + (log, logf, logl, log1p, log1pf, log1pl, log10, log10f, log10l, log2) + (log2f, log2l): ...each of these functions. + +2016-11-02 Keith Marshall + + Implement unit tests for ANSI printf() functions. + + * tests/Makefile.in (testsuite): Add dependency for... + * tests/ansiprintf.at: ...this new file, and... + * tests/testsuite.at.in: ...m4_include it. + +2016-11-01 Keith Marshall + + Fix another printf() hex-float formatting bug. + + * mingwex/stdio/pformat.c (__pformat_emit_xfloat) + [stream->flags & PFORMAT_ZEROFILL]: Ignore this; it should be... + [(stream->flags & PFORMAT_JUSTIFY) == PFORMAT_ZEROFILL]: ...thus. + +2016-10-30 Keith Marshall + + Merge post 2016-10-18 updates from legacy branch. + + * include/io.h include/wchar.h: Updated. + * mingwex/stdio/pformat.c: Likewise. + +2016-10-30 Keith Marshall + + Work around MSDN inconsistencies in _finddata_t naming. + + * include/io.h (_finddata64_t, _wfinddata64_): Define them + respectively as aberrant alternative data type names for each of... + (__finddata64_t, __wfinddata64_t): ...these original names. + (_wfinddata32_t): Similarly, define this with... + (__wfinddata32_t): ...this alternative name. + + * include/wchar.h (_wfinddata32_t): Correct references in comments. + +2016-10-30 Keith Marshall + + Fix a potentially infinite printf() format conversion loop. + + * mingwex/stdio/pformat.c (__pformat_emit_xfloat) + [value.__pformat_fpreg_mantissa == 0]: Do not attempt to normalize + it; there are no 1-bits to promote, so repeated shifting until one + appears in most significant position will never terminate. + +2016-10-18 Keith Marshall + + Merge mingwrt-3.22.4 updates into 5.0-active branch. + + * configure.ac: Preserve original 5.0-active state. + * include/wchar.h: Update per 2016-10-17 commits. + +2016-10-17 Keith Marshall + + Prepare and tag mingwrt-3.22.4 patch release. + + * configure.ac (AC_INIT): Increment patch level. + +2016-10-17 Keith Marshall + + Resolve an ANSI mode vs. conflict. + + * include/wchar.h [!(_WCHAR_H && _STRING_H)]: Change condition... + [!(_WCHAR_H && (_STRING_H && !__STRICT_ANSI__))]: ...to this; the + guarded declarations are not exposed by including when... + [__STRICT_ANSI__]: ...this is defined; hence, we must declare them + when including , even after including + +2016-10-14 Keith Marshall + + Add dependency tracking for tests/Makefile. + + * tests/Makefile.in (top_builddir): Define it. + (Makefile): Add automatic rebuild rule, tracking both srcdir and + top_builddir prerequisite changes. + +2016-10-14 Keith Marshall + + Correct a minor typographic error. + + * tests/atlocal.in (autoconf_input): Replace invalid AC_SUBST tag... + (configure_input): ...with this correctly named alternative. + +2016-10-14 Keith Marshall + + Merge mingwrt-3.22.3 updates into 5.0-active branch. + + * configure.ac: Preserve original 5.0-active state. + * include/_mingw.h.in include/string.h include/sys/types.h + * include/io.h: Update per 2016-10-13 commits. + +2016-10-13 Keith Marshall + + Prepare and tag mingwrt-3.22.3 patch release. + + * configure.ac (AC_INIT): Increment patch level. + +2016-10-13 Keith Marshall + + Emulate glibc POSIX.1 non-compliance. + + * include/_mingw.h.in (_EMULATE_GLIBC): New feature test macro. + [_GNU_SOURCE || _BSD_SOURCE || !__STRICT_ANSI__]: Enable it when... + [_XOPEN_SOURCE || _POSIX_C_SOURCE || _POSIX_SOURCE]: ...none of + these have been pre-defined by the user. + + * include/string.h [_EMULATE_GLIBC]: Include in full... + (strcasecmp, strncasecmp): ...so prototypes for these are declared. + [!_EMULATE_GLIBC]: Preserve partial include, guarded by... + [__STRING_H_SOURCED__]: ...this context selector, so suppressing the + declarations of those function prototypes. + +2016-10-13 Keith Marshall + + Resolve some non-ANSI typedef omissions. + + * include/sys/types.h (off_t, ssize_t): Always typedef them when... + [_POSIX_C_SOURCE || !_NO_OLDNAMES]: ...either of these prevails. + + * include/io.h (_fsize_t): Do not suppress its typedef when... + [__STRICT_ANSI__]: ...this compiler option applies, irrespective of... + [!(_IO_H && _WCHAR_H)]: ...this, which otherwise causes supression. + +2016-09-20 Keith Marshall + + Prepare and tag mingwrt-3.22.2 patch release. + + * configure.ac (AC_INIT): Increment patch level. + * config.guess config.sub: Delete, per 2016-07-16 commit. + * include/stdlib.h: Backport, per 2016-09-14 commit. + * include/wchar.h: Backport, per 2016-09-17 commits. + +2016-09-17 Keith Marshall + + Add missing declarations when compiling C++. + + * include/wchar.h (fwide, mbsinit, wmemset, wmemchr, wmemcpy) + (wmemmove, wcstoll, wcstoull): Declare each of these for either of... + [_ISOC99_SOURCE || __cplusplus]: ...these conditions, rather than... + [_ISOC99_SOURCE]: ...this alone. + +2016-09-17 Keith Marshall + + Stricter ISO-C99 conformity filtering. + + * include/wchar.h [__STRICT_ANSI__]: Do not include any part of... + (direct.h, io.h, sys/stat.h, locale.h, process.h): ...any of these. + +2016-09-14 Keith Marshall + + Relax strict ISO-C conformity to facilitate C99 support. + + * include/stdlib.h (_atoi64, _exit) [__STRICT_ANSI__]: Convention + dictates that the Microsoft specific functions should not be declared; + however, C99 provides equivalents in atoll() and _Exit(), for which we + gratuituously use them to provide inline implementations; thus... + [_ISOC99_SOURCE && !__NO_INLINE__]: ...declare them anyway. + +2016-09-13 Keith Marshall + + Suppress expected header warnings when running testsuite. + + * include/dir.h include/dos.h [__IN_MINGWRT_TESTSUITE__]: New feature + test; do not emit warning messages, which declare this pair of headers + to be obsolete. These warnings are expected, but their format may not + be deterministically predictable; there is no reason to fail any test + on account of any such expected warning message. + +2016-09-13 Keith Marshall + + Create a preliminary autotest framework. + + * configure.ac (AC_TESTDIR): Initialize tests subdirectory. + (AC_PROG_CXX): Identify C++ compiler; the testsuite will use it. + (AC_CHECK_PROG): Check availability of autom4te; specify fallback. + (AC_CONFIG_FILES): Add instantiation requests for tests/atlocal, + tests/Makefile, and tests/testsuite.at.tmp + + * tests/testsuite.at.in tests/atlocal.in tests/headers.at + * tests/Makefile.in: New files; implement them. + + * Makefile.in (check, check-recursive, tests): Implement new goals. + (mingwrt-srcdist-files): Subdivide package files complement into... + (mingwrt-srcdist-package-files): ...this original collection, and... + (mingwrt-srcdist-testsuite-files): ...this additional set. + + * test_headers.c: Superseded by autotest; delete it. + +2016-08-25 Keith Marshall + + Add pthreads-win32 courtesy support hooks. + + * include/errno.h: Assert copyright; tidy layout. + (_ERRNO_H_): Rename this repeat inclusion guard macro as... + (_ERRNO_H): ...this, conforming to preferred naming convention. + [__PTW32_H]: Include "ptw32_errno.h". + + * include/time.h [__SCHED_H_SOURCED__] + (struct timespec): Typedef it selectively; do not define... + (_TIME_H): ...this. + +2016-08-07 Keith Marshall + + Implement POSIX printf() feature per request [#2310]. + + * mingwex/stdio/pformat.c [WITH_XSI_FEATURES]: Delete references. + (PFORMAT_GROUPED): New manifest constant; define it. It previously + appeared in an occluded XSI feature reference, but is now required. + (__pformat_t.tslen, __pformat_t.tschr, __pformat_t.grouping): New + structure member fields; they maintain control state as set up by... + (__pformat_enable_thousands_grouping): ...this new internal function. + (__pformat_int_bufsiz): Use it; it may request a size increment. + (__pformat_emit_digit, __pformat_emit_punct): New functions; they + handle output of digits, radix point, and thousands digits separator + punctuation for all numeric conversion formats, thus replacing... + (__pformat_emit_numeric_value, __pformat_emit_radix_point): ...these; + delete them, and update all callers to use appropriate replacements. + (__pformat_int) [PFORMAT_GROUPED]: Add and emit group separators. + (__pformat_xint_bufsiz): New internal function; it serves in place of + __pformat_int_bufsiz(), for those integer data conversion formats + which explicitly do not support thousands digits grouping, hence... + (__pformat_xint): ...use it, rather than __pformat_int_bufsiz(). + (__pformat_adjust_for_grouping): New internal function; it adjusts the + __gdtoa radix point index for fixed point conversion formats, to allow + for the insertion of thousands digits group separators, hence... + (__pformat_emit_float): ...use it, and emit separators as appropriate. + (__pformat_emit_efloat) [PFORMAT_GROUPED]: Explicitly disable it. + (__pformat): Initialise stream references for __pformat_t.grouping, + __pformat_t.tslen, and _pformat_t.tschr, on entry; release any memory + allocated for __pformat_t.grouping, when done. + +2016-08-01 Keith Marshall + + Implement POSIX conforming getline() and getdelim() functions. + + * mingwrt/mingwex/stdio/getdelim.c: New file. + * mingwrt/man/getline.3.man: Likewise. + + * mingwrt/include/stdio.h [_POSIX_C_SOURCE >= 200809L] + (getdelim): New function, implemented externally; declare prototype. + (getline): New function; declare prototype; implement as __CRT_ALIAS + inline, with __LIBIMPL__ external representation. + + * mingwrt/Makefile.in (libmingwex.a): Add getdelim.$OBJEXT + (mingwrt-man$man3ext): Add manpage dependency references to create... + (getline.$man3ext, getdelim.$man3ext): ...these; declare them as + distributable duplicates, to be generated from... + (getline.$man3ext.man): ...this common source. + +2016-08-01 Keith Marshall + + Merge mingwrt-3.22.1 legacy updates to 5.0-active branch. + + * mingwex/math/powl.c: Update per issue [#2036] workaround. + * mingwex/stdio/pformat.c: Likewise, per issue [#2309] resolution, + and subsequent 2016-07-24 optimization. + +2016-07-31 Keith Marshall + + Prepare and tag all files for release of mingwrt-3.22.1. + + * configure.ac (AC_INIT): Adjust package version number; append + patch level identification. + +2016-07-31 Keith Marshall + + Interim workaround for issue [#2306]. + + * mingwex/math/powl.c: Tidy layout; correct indentation. + (powl, reducl): Use ISO-C declaration syntax; K&R is obsolescent. + (powl) [OVERFLOW]: Correct representation of return value, using... + (INFINITYL): ...this manifest constant value, instead of... + (MAXNUML): ...this. + +2016-07-24 Keith Marshall + + Optimize printf() field width accumulation function. + + * mingwex/stdio/pformat.c (__imul10plus): Omit multiply by ten on + already accumulated zero total; it is unnecessary, since ten times + zero is still zero. + +2016-07-22 Keith Marshall + + Fix printf() field width parsing regression issue [#2309]. + + * mingwex/stdio/pformat.c (__imul10plus): Coerce any accumulated + negative total to zero; the only negative value to be handled is... + (PFORMAT_IGNORE): ...this; it ceases to be applicable, on first call + to __imul10plus(), to accumulate field width or precision. + +2016-07-19 Keith Marshall + + Update install-sh to match mingw.org/build-aux package. + + * install-sh: Delete it; use version in parent directory instead, + recreating local copy, (as symlink, if supported), on demand. + +2016-07-17 Keith Marshall + + Eliminate redundant configuration files. + + * aclocal.m4 VERSION.m4: Delete them; restore them on demand, via... + * Makefile.in ($top_srcdir/../%): ...this symlink dependency rule. + + * configure.ac (AC_PROG_LN_S): Add configuration check. + +2016-07-17 Keith Marshall + + Merge mingwrt-3.22 packaging correction to 5.0-active branch. + +2016-07-17 Keith Marshall + + Correct mingwrt-3.22 source package subdirectory omission. + + * Makefile.in (mingwrt-srcdist-files): Add msvcrt-xref. + +2016-07-16 Keith Marshall + + Discard redundant config.guess and config.sub files. + + * config.guess config.sub: Delete them; they are no longer required. + +2016-07-16 Keith Marshall + + Merge recent legacy branch updates to 5.0-active branch. + + * Makefile.in include/ctype.h include/excpt.h include/stdint.h + * include/glob.h include/limits.h include/locale.h include/search.h + * include/stdio.h include/stdlib.h include/wchar.h include/wctype.h + * include/sys/param.h include/sys/stat.h mingwex/tdelete.c + * mingwex/tfind.c mingwex/tsearch.c mingwex/twalk.c: Updated. + +2016-07-14 Keith Marshall + + Prepare and tag all files for release of mingwrt-3.22. + + * configure.ac (AC_INIT): Adjust package version number. + +2016-07-14 Keith Marshall + + Preserve kludge to evade GCC build failure on S_ISBLK misuse. + + * include/sys/stat.h (_NO_UNSUPPORTED): New feature test macro; it + should be user defined, if desired, before inclusion; leave undefined. + [!_S_IFBLK && !_NO_UNSUPPORTED && !_NO_OLDNAMES] (S_ISBLK): Define it, + as appropriate for POSIX conforming usage; do not poison it. + +2016-07-10 Keith Marshall + + Fix C++ strict type checking inconsistency in + + * include/glob.h (__ERRFUNC_P): New private macro; define it to match + the type signature of the error function pointer, to be passed to... + (glob): ...this function; use it to correctly represent error function + pointer argument in inline implementation. + +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]. @@ -20,6 +973,25 @@ 2016-05-12 Keith Marshall + Synchronize package version management with Win32-API. + + * VERSION.m4: New file; link it to keep in sync with identically named + file in top level composite package source directory; it defines... + (__VERSION__): ...this new composite package version macro. + + * aclocal.m4: Link it, to keep in sync with identically named files in + top level composite source and sibling w32api sub-package directories. + (__VERSION__): New macro; include VERSION.m4 to define it. + (__BUG_REPORT_URL__): New macro; define it. + + * configure.ac (AC_INIT): Assign package version and bug report URL... + (__VERSION__, __BUG_REPORT_URL__): ...from these, as defined through + automatic inclusion of aclocal.m4 + + * Makefile.in (configure): Add dependency on VERSION.m4 + +2016-05-12 Keith Marshall + Resolve some strnlen() implementation issues. * mingwex/strnlen.s (__mingw_strnlen) [!NUL]: Correct termination @@ -144,7 +1116,7 @@ [__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. @@ -1420,6 +2392,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.