X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=mingwrt%2FChangeLog;h=b8ee2a7accfc8abe983ce235d70d61067d1271ba;hb=a94ded612ec67b5e83958133350dd35f6249f461;hp=df2e26ebc1b67be108a2e81193966ea7dbece5f6;hpb=baddeff0bb85a2054392eb93292f21436d8db1f4;p=mingw%2Fmingw-org-wsl.git diff --git a/mingwrt/ChangeLog b/mingwrt/ChangeLog index df2e26e..b8ee2a7 100644 --- a/mingwrt/ChangeLog +++ b/mingwrt/ChangeLog @@ -1,3 +1,341 @@ +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.