OSDN Git Service

Prepare and tag for release of MinGW.org WSL-5.0.1
[mingw/mingw-org-wsl.git] / mingwrt / ChangeLog
1 2017-07-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
2
3         Prepare and tag for release of MinGW.org WSL-5.0.1
4
5         * All files (wsl-5.0.1-release): Tag assigned.
6
7 2017-07-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
8
9         Automate testsuite dependency generation.
10
11         * tests/Makefile.in (testsuite) [$srcdir/*.at]: Automatically
12         enumerate all such wildcard matches as prerequisites, instead of...
13         (headers.at, ansiprintf.at, logarithms.at, powerfunc.at): ...these,
14         which were previously enumerated explicitly.
15
16 2017-06-05  Keith Marshall  <keithmarshall@users.sourceforge.net>
17
18         Automatically correct obsolete _XOPEN_SOURCE usage.
19
20         * include/_mingw.h.in (__paste, __valueless): New macros; define them.
21         (_XOPEN_SOURCE) [defined with no value]: Use them to attempt to deduce
22         this obsolete usage; if detected, redefine it with a default assigned
23         value of one, emulating -D_XOPEN_SOURCE command line definition.
24
25 2017-05-24  Keith Marshall  <keithmarshall@users.sourceforge.net>
26
27         Fix snprintf()/vsnprintf() -Wformat vs. multiple definition issue.
28
29         * include/stdio.h (__mingw_stdio_redirect__): Add reference to...
30         (__Wformat): ...this new macro; define it, such that it expands via...
31         (__Wformat_mingw_printf, __Wformat_msvcrt_printf): ...these new macros,
32         ultimately expanding to an attribute declaration, in terms of...
33         (__Wformat_ms_vprintf, __Wformat_ms_vfprintf, __Wformat_ms_vsprintf)
34         (__Wformat_ms_printf, __Wformat_ms_fprintf, __Wformat_ms_sprintf):
35         ...any one of these; they map to an ms_printf attribute, or...
36         (__Wformat_vprintf, __Wformat_vfprintf, __Wformat_vsprintf)
37         (__Wformat_printf, __Wformat_fprintf, __Wformat_sprintf): ...any one
38         of these; they map conditionally to...
39         [__GNUC__>=6] (__mingw_printf__): ...this new format attribute, or...
40         [__GNUC__< 6]: ...nothing.
41         (snprintf, vsnprintf): Revert 2017-01-30 inline definitions; add...
42         (__Wformat_snprintf, __Wformat_vsnprintf): ...these attributes; they
43         are also mapped conditionally, in this case to...
44         [__GNUC__>=6] (__mingw_printf__): ...this, or...
45         [__GNUC__< 6] (__gnu_printf__): ...this.
46
47 2017-03-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
48
49         Refactor mingwrt and w32api common makefile content.
50
51         * Makefile.in (mingwrt-srcdist-config-files): Rename it...
52         (mingwrt-srcdist-common-files): ...as this phoney build rule.
53         (shared_include_file): New macro; define it, and include named file.
54         (configure, config.status, Makefile, config.status.missing, _mingw.h)
55         (w32api.h, PACKAGE_VERSION_SCRIPT, PACKAGE_VERSION_FORMAT): Factor
56         out; relocate them to new file in common parent directory...
57         * ../Makefile.comm: ...here.
58
59 2017-03-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
60
61         Fix generated header file dependencies.
62
63         * Makefile.in (_mingw.h, w32api): Make them depend on changes in...
64         [VERSION.m4]: ...this; package version changes are no longer made...
65         [configure.ac]: ...here; delete associated prerequisite reference.
66         (distclean-local): Delete them.
67
68 2017-03-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
69
70         Strip optional DLLs, when staging for distribution.
71
72         * Makefile.in (mingwrt-%-optist): Recursively make...
73         (install-strip-$*-optional-dll): ...this internal target, not...
74         (install-$*-optional-dll): ...this.
75
76 2017-03-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
77
78         Prepare and tag for release of mingwrt-5.0 package set.
79
80         * All files (wsl-5.0-release): Tag assigned.
81
82 2017-03-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
83
84         Avoid -shared-libgcc dependencies in optional DLLs.
85
86         * Makefile.in (dllname): Qualify it, by addition of...
87         (LIBGCC_LINK_OPTION): ...this DLL name specific linking option macro.
88         (libmingwex.dll.a): Force it to use -static-libgcc for associated DLL.
89
90 2017-02-27  Keith Marshall  <keithmarshall@users.sourceforge.net>
91
92         Support optional DLL builds from static libraries.
93
94         * aclocal.m4 (MINGW_AC_SET_DLLVERSION): New macro; define it, and...
95         * VERSION.m4: ...use it here, to enumerate the specifcations for...
96         (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): ...this collection of DLL
97         version identification records.
98
99         * Makefile.in (DLLVERSION): New macro; define default, and capture
100         library specific variants, as generated by AC_SUBST output from...
101         (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): ...this configuration macro.
102         (a2dll, dllname, dllsuffix): New macros; define them, together with
103         new pattern rule using them, to create DLLs and import libraries from
104         existing static object libraries; augment these with...
105         (optional_dll_version): ...this further new macro, used by...
106         (install-optional-dlls, install-mingwrt-optional-dlls)
107         (install-libmingwex-optional-dll): ...these new installation rules...
108         (uninstall-optional-dlls, uninstall-mingwrt-optional-dlls): ...and
109         counterpart rules, to uninstall all such optional DLL files.
110         (optional_dll_package): Further new macro; it is required by...
111         (optdist, mingwrt-optdist, mingwrt-libmingwex-optdist): ...these new
112         distribution rules; they create packages for optional DLLs.
113         (dist): Add optdist.
114
115         * configure.ac (MINGW_AC_ENUMERATE_DLLVERSION_SPECS): Invoke it.
116
117 2017-02-24  Keith Marshall  <keithmarshall@users.sourceforge.net>
118
119         Make floating point environment more robust.
120
121         * CRT_fp8.c CRT_fp10.c: Delete them; both are replaced by...
122         * CRT_fenv.c: ...this new common source file; it implements...
123         (_CRT_fenv): ...this new global variable, with alternative definitions
124         evaluated during application start-up, to assign one or other of...
125         [FE_PC53_ENV, FE_PC64_ENV]: ...these, as the preferred default...
126         [FE_DFL_ENV]: ...represented by this; replacement linkage for...
127         (_fpreset): ...this MSVCRT.DLL function is no longer supported.
128
129         * Makefile.in: Add new static pattern rule, for compiling...
130         (CRT_fp8.$OBJEXT, CRT_fp10.$OBJEXT): ...each of these, from CRT_env.c
131
132         * crt1.c (_gnu_exception_handler, __mingw_CRTStartup): Do not call...
133         (_fpreset): ...this; its linkage was non-deterministically ambiguous.
134         (fesetenv): Use this, unambiguously, instead; initially configure the
135         floating point environment to the predefined state, as assigned to...
136         [_CRT_fenv]: ...this new global variable; thereafter, reset to...
137         [FE_DFL_ENV]: ...this ISO-C99 mandatory configuration.
138
139         * include/float.h: Assert copyright; tidy layout.
140         [_MINGW_FLOAT_H_]: Retain, but replace in guard macro usage by...
141         [_MINGW_FLOAT_H]: ...this, conforming to preferred naming convention.
142         [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
143         (_fpreset): Add _CRTIMP attribute; it is resolved by MSVCRT.DLL
144         (fpreset): Deprecate it; provide inline __LIBIMPL__ fall-back.
145
146         * include/fenv.h: Assert copyright; tidy layout.
147         [_FENV_H_]: Rename multiple inclusion guard macro, adopting...
148         [_FENV_H]: ...this preferred stylistic naming convention.
149         [_BEGIN_C_DECLS, _END_C_DECLS]: Use them, as appropriate.
150         (FE_INVALID, FE_DENORMAL, FE_DIVBYZERO, FE_OVERFLOW, FE_UNDERFLOW)
151         (FE_INEXACT, FE_ALL_EXCEPT, FE_TONEAREST, FE_DOWNWARD, FE_UPWARD)
152         (FE_TOWARDZERO): Redefine them, in terms of enumerated bit positions.
153         (FE_PD53_ENV, FE_PD64_ENV): New predefined environment selectors; they
154         serve as initialization-time aliases, causing redefinition of...
155         [FE_DFL_ENV]: ...this, as run-time alias for one or other of...
156         [FE_PC53_ENV, FE_PC64_ENV]: ...these, respectively.
157
158         * mingwex/fesetenv.c: Assert copyright; tidy layout.
159         (fesetenv) [FE_PD53_ENV || FE_PD64_ENV]: Handle them, assigning to...
160         (FE_DFL_ENV): ...this ISO-C99 mandatory configuration, representing...
161         (fenv_default): ...the value of this new static variable.
162         (_fpreset): Call it directly; now always resolved by MSVCRT.DLL, so...
163         (*_imp__fpreset): ...this indirection becomes unnecessary.
164
165 2017-02-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
166
167         Make mingwrt and w32api test suites consistent.
168
169         * Makefile.in (test): New rule; define it as a synonym for...
170         (check tests): ...these, so maintaining consistency with w32api.
171
172 2017-02-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
173
174         Work around GCC bug; force C++11 to support std::wcstof().
175
176         * include/_mingw.h [_ISOC99_SOURCE && __cplusplus >= 201103L]
177         [__GNUC__ < 6] (_GLIBCXX_HAVE_WCSTOF): Define it to 1; it is required
178         because, prior to GCC-6, GCC's configuration process fails to specify
179         it correctly, and so invalidates its own <string> header file.
180
181 2017-02-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
182
183         Support brace expansion in globbing patterns.
184
185         * include/glob.h (GLOB_BRACE): New manifest constant; define it...
186         (__GLOB_FLAG__): ...in terms of this macro.
187
188         * mingwex/glob.c (glob_match): Reindent, with preamble invoking...
189         (glob_brace_expand): ...this new static inline function; implement it.
190         (GLOB_INIT, GLOB_FREE): Redefine them, relating them to...
191         (__GLOB_FLAG_OFFSET_HIGH_WATER_MARK): ...this.
192
193         * setargv.c (__mingw32_setargv) [_CRT_glob]: Check if it includes...
194         [GLOB_CASEMATCH | GLOB_BRACE]: either of these; remove check for...
195         [__CRT_GLOB_CASE_SENSITIVE__]: ...this defunct option.
196
197         * include/_mingw.h.in (GLOB_BRACE): Note its use in _CRT_glob.
198         (GLOB_CASEMATCH): Likewise; this replaces all former usage of...
199         (__CRT_GLOB_CASE_SENSITIVE__): ...this; delete definition.
200
201 2017-02-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
202
203         Refactor <getopt.h> and <unistd.h> shared declarations.
204
205         * include/getopt.h: Assert copyright.
206         (_BEGIN_C_DECLS, _END_C_DECLS): Use as appropriate.
207         (__GETOPT_H__, __GETOPT_LONG_H__): Delete them; replace them with...
208         (_GETOPT_H): This new macro; it guards the entire file, except when...
209         [__UNISTD_H_SOURCED__]: ...do not activate it; hence when...
210         [!_GETOPT_H]: ...do not expose API declarations for...
211         (getopt_long, getopt_long_only): ...these functions.
212         [_GETOPT_H && _UNISTD_H]: Skip second pass API declarations for...
213         (getopt): ...this function.
214
215         * include/unistd.h: Use the #include "..." form when including...
216         (io.h, process.h, getopt.h): ...these, to ensure correct association.
217         (ftruncate): Map it directly to MSVCRT.DLL's _chsize() entry point.
218
219 2017-02-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
220
221         Avoid unnecessary duplication of configuration files.
222
223         * Makefile.in (vpath install-sh): Define it; it matches...
224         (vpath %.m4): ...this; add $top_srcdir/..; search it first; delete
225         rule for creating duplicate file reference links in $top_srcdir.
226         (configure): Add '-I ..' option, when running autoconf.
227         (mingwrt-srcdist-package-files): Remove dependencies on...
228         (aclocal.m4 VERSION.m4 install-sh): ...these; reinstate them in...
229         (mingwrt-srcdist-config-files): ...this new distributable files
230         enumeration goal; add it as a new prerequisite of...
231         (mingwrt-srcdist-files): ...this.
232
233 2017-02-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
234
235         Ensure selective inclusion of the correct <strings.h>
236
237         * include/string.h: Use "..." form for selective inclusion of ...
238         (strings.h): ...this, to ensure that we get our own version, avoiding
239         any inappropriate alternative which may have been insinuated into the
240         system header include path.
241
242 2017-02-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
243
244         Resolve a global variable naming inconsistency.
245
246         * mingwex/ofmt.c (__mingw_output_format_flag): Rename it as...
247         (__mingw_output_format_flags): ...this, at point of definition, and
248         update all references, to maintain consistency with usage...
249         * mingwex/ofmtctl.c (__mingw_output_format_flags): ...here.
250
251         * mingwex/stdio/pformat.c: Update references.
252
253 2017-01-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
254
255         Implement strerror_r()/strerror_s() API.
256
257         * mingwex/strerror_r.c: New file; it implements...
258         (strerror_r): ...this new POSIX.1-2001 conforming function.
259
260         * include/string.h (strerror_s): Add function prototype, subject to...
261         [_MSVCR80_DLL || _WIN32_WINNT_VISTA]: ...this DLL version dependency;
262         otherwise implement an inline wrapper function to emulate it, using...
263         [_POSIX_C_SOURCE > 200112L] (strerror_r): ...this; add prototype.
264
265         * Makefile.in (libmingwex.a): Add strerror_r.$OBJEXT
266
267 2017-01-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
268
269         Avoid -Wformat noise from snprintf() and vsnprintf()
270
271         * include/stdio.h (snprintf, vsnprintf): Add inline implementations;
272         they redirect to "__mingw_" prefixed alternatives, so suppressing the
273         effect of automatic format attribute recognition.
274
275 2017-01-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
276
277         Remove duplicate libmingwex.a entries.
278
279         * mingwex/jmpstub.sx (DLLENTRY): Interpret it.
280
281         * Makefile.in (jmpstub_awk_script): Handle DLLENTRY.
282         (libmingwex.a): Remove explicit object file references to...
283         (snwprintf, vsnwprintf): ...these.
284
285         * include/stdio.h (snwprintf, vsnwprintf): Map them as __JMPSTUB__
286         references to MSVCRT.DLL entry points, via DLLENTRY references to...
287         (_snwprintf, _vsnwprintf): ...these, respectively.
288
289         * mingwex/snwprintf.c: Redundant file; delete it.
290         * mingwex/vsnwprintf.c: Likewise.
291
292 2017-01-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
293
294         Clean up <limits.h> header file.
295
296         * include/limits.h: Tidy layout; assert copyright.
297         (#pragma GCC system_header): Declare it as being such.
298         (_LIMITS_H_): Rename this multiple inclusion guard macro...
299         (_LIMITS_H): ...to adopt this preferred form.
300         [__STDC_VERSION__ >= 199901L]: Infer it...
301         [_ISOC99_SOURCE]: ...from this.
302
303 2017-01-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
304
305         Expose C99 features required by C++11; fix issue [#2335]
306
307         * include/_mingw.h.in (_ISOC99_SOURCE): Ensure it is defined for...
308         [__cplusplus >= 201103L]: ...this conformance level, in addition to...
309         [__STDC_VERSION__>= 199901L || _POSIX_C_SOURCE >= 200112L]: ...these.
310         [_GLIBCXX_USE_C99]: Force it for -std=c++11, subject to...
311         [__GNUC__ < 6]: ...this.
312
313         * include/ctype.h (isblank): Declare it only if...
314         [_ISOC99_SOURCE]: ...this, thus simplifying declarative condition.
315         * include/wctype.h (iswblank) [_ISOC99_SOURCE]: Likewise.
316         * include/inttypes.h (SCNd8, SCNdLEAST8, SCNdFAST8, SCNi8, SCNiLEAST8)
317         (SCNiFAST8, SCNo8, SCNoLEAST8, SCNoFAST8, SCNx8, SCNxLEAST8, SCNxFAST8)
318         (SCNu8, SCNuLEAST8, SCNuFAST8) [_ISOC99_SOURCE]: Likewise.
319
320 2017-01-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
321
322         Make strnlen() and wcsnlen() declaratively consistent.
323
324         * include/string.h (strnlen): Do not expose its declaration, unless...
325         [_POSIX_C_SOURCE >= 200809L]: ...this feature test is enabled.
326
327 2017-01-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
328
329         Implement wcsnlen() API per feature request [#2332].
330
331         * mingwex/strnlen.s: Rename it as...
332         * mingwex/strnlen.sx: ...this; use C preprocessor logic to adapt...
333         (__mingw_strnlen): ...this existing function implementation for use...
334         [_UNICODE] (__mingw_wcsnlen): ...as this.
335
336         * include/wchar.h [_POSIX_C_SOURCE >= 200809L] (wcsnlen): Declare...
337         [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...using MS DLL implementation...
338         [!__MSVCRT_VERSION__>=__MSVCR80_DLL] (__mingw_wcsnlen): ...otherwise,
339         declare this, with inline __JMPSTUB__ implementation, providing...
340         (wcsnlen): ...this.
341
342         * Makefile.in (wcsnlen.$OBJEXT): New build rule.
343         (libmingwex.a): Add wcsnlen.$OBJEXT as new prerequisite.
344         (libmoldname.a, libmoldnamed.a): Add __JMPSTUB__ wrappers.
345         (libmoldname70.a, libmoldname70d.a): Likewise.
346         (libmoldname71.a, libmoldname71d.a): Likewise.
347
348         for all other MSVC non-free associated oldname import libraries.
349         (vpath): Add $srcdir/mingwex for %.sx; hence mapping for...
350         (jmpstub.sx): ...this becomes redundant; delete it.
351
352 2017-01-26  Jason Hood  <jadoxa@yahoo.com.au>
353
354         Honour GLOB_CASEMATCH for globbing sets; cf. issue [#2327].
355
356         * include/glob.h (GLOB_CASEMATCH): Update comment.
357         * mingwex/glob.c (glob_case_match): Move before, and use it in...
358         (glob_in_set): ...this function, to test characters in the set.
359
360 2017-01-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
361
362         Avoid snprintf() overhead in directory stream functions.
363
364         * mingwex/dirent.c (dirent_update): Do not use either snprintf() or
365         snwprintf() functions when updating dd->d_name and dd->d_namlen data;
366         emulate them instead, using a lightweight inline char-by-char counted
367         copy loop, operating on char or wchar_t data as appropriate.
368         (DIRENT_ASSIGN_NAME): Macro no longer required; delete it.
369         (NUL): New manifest constant; define it.
370
371 2017-01-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
372
373         Avoid #include_next misbehaviour; cf. MinGW-Bug [#2330]
374
375         * include/ctype.h (wctype.h): Use "..." form of #include, rather than
376         the <...> form; we must include our own corresponding mingwrt version
377         of this subsidiary header, and avoid any bogus alternative which may
378         have been insinuated earlier in the system header path.
379
380         * include/string.h (wchar.h): Likewise.
381
382 2017-01-25  Jason Hood  <jadoxa@yahoo.com.au>
383
384         Correct quoted backslash handling, per bug [#2328].
385
386         * setargv.c (__mingw32_setargv): Within single quotes, backslashes
387         should be interpreted literally; copy them as-is.
388
389 2017-01-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
390
391         Use C99 blanks as default argv separators, per issue [#2329].
392
393         * setargv.c [_ISOC99_SOURCE]: Require it.
394         (__mingw32_setargv): Separate command line arguments based on...
395         [(quoted == 0) && isblank( c )]: ...this condition, instead of on...
396         [(quoted == 0) && isspace( c )]: ...this, so that only blanks, rather
397         than any whitespace characters, serve as default argument separators.
398
399 2017-01-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
400
401         Correct <strings.h> preprocessor logic; fix bug [#2322]
402
403         * include/strings.h (_stricmp, _strnicmp): Always declare, unless...
404         [__STRICT_ANSI__ && __NO_INLINE__]: ...both of these are defined.
405
406 2016-11-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
407
408         Implement POSIX.1 compatible setenv() and unsetenv() functions.
409
410         * mingwex/setenv.c: New file; it implements...
411         (__mingw_setenv): ...this function, providing common code for...
412         * include/stdlib.h [_POSIX_C_SOURCE >= 200112L] (setenv, unsetenv):
413         ...these user visible functions, implemented as __CRT_ALIAS inlines;
414         qualify them as __JMPSTUB__ and __LIBIMPL__ respectively, so ensuring
415         that their corresponding external representations are automatically
416         added to libmingwex.a
417
418         * Makefile.in (libmingwex.a): Add setenv.$OBJEXT
419
420 2016-11-27  Keith Marshall  <keithmarshall@users.sourceforge.net>
421
422         Work around another C++11 compliance issue; fix bug [#2321].
423
424         * include/excpt.h (__try1_setup, __except1_teardown): Add spaces to
425         separate each use of '__wsize' and '__ts' macros from all surrounding
426         string literals, to ensure that C++ parses them as distinct tokens.
427
428 2016-11-21  Keith Marshall  <keithmarshall@users.sourceforge.net>
429
430         Replace defective powf() and powl() function implementations.
431
432         * mingwex/math/powf.c mingwex/math/powl.c: Delete; replaced by...
433         * mingwex/math/pow_generic.sx: ...this new file; it implements...
434         (__x87pow): ...this generic power function back-end, serving...
435         (pow, powf, powl): ...each of these front-end entry points.
436
437         * Makefile.in (libmingwex.a): Add x87pow.$OBJEXT
438
439         * include/math.h (powf): Remove inline implementation; it no longer
440         offers any inline advantage.
441
442 2016-11-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
443
444         Implement unit tests for power functions.
445
446         * tests/testsuite.at.in: m4_include...
447         * tests/Makefile.in (testsuite): ...and add dependency on...
448         * tests/powerfunc.at: ...this new file; it specifies unit tests to
449         check POSIX.1-2008 compliance of results and errno assignment from...
450         (pow, powf, powl): ...each of these functions.
451
452 2016-11-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
453
454         Add POSIX compliant errno assignments to log functions.
455
456         * include/errno.h: Make it assembly language compatible.
457         [__ASSEMBLER__]: Omit <_mingw.h>; do not declare prototype for...
458         (_errno): ...this accessor function; the declaration is syntactically
459         invalid, in assembly language code.
460
461         * mingwex/math/errno.sx: New file; when included by other assembly
462         language files, it provides bindings for assignement of any constant
463         defined in <errno.h> to the global errno variable, facilitated by...
464         (errno): ...this new GAS macro.
465
466         * mingwex/math/log_generic.sx: New file; it provides a generic back
467         end implementation for multiple logarithmic functions, accessed via...
468         (___x87log, ___x87log_chk): ...this pair of entry points, serving...
469         (log, logf, log): ...each of these primary functions; it replaces...
470         * mingwex/math/logf.s mingwex/math/logl.s: ...these; delete them.
471
472         * mingwex/math/log1p_generic.sx mingwex/math/log10_generic.sx
473         * mingwex/math/log2_generic.sx: New files; each acts as a wrapper for
474         log_generic.sx, providing the front end entry stubs for each of...
475         (log1p, log1pf, log1pl, log10, log10f, log10l, log2, log2f, log2l):
476         ...these functions; thus, they provide complete replacements for...
477         * mingwex/math/log1p.s mingwex/math/log1pf.s mingwex/math/log1pl.s
478         * mingwex/math/log10f.s mingwex/math/log10l.s mingwex/math/log2.s
479         * mingwex/math/log2f.s mingwex/math/log2l.s: ...these; delete them.
480
481         * mingwex/math/x87cvt_generic.sx: New file; it implements...
482         (___x87cvt, ___x87cvtf): ...this pair of return value conversion
483         routines, for conversion from the FPU's internal REAL10 data format,
484         to REAL8 and REAL4, for double and float functions respectively.
485
486         * Makefile.in (libmingwex.a): Add dependencies on...
487         (x87cvt.$OBJEXT), x87cvtf.$OBJEXT), x87log.$OBJEXT), x87logf.$OBJEXT):
488         ...these object modules; implement pattern rule to build them from...
489         (x87cvt_generic.sx, log_generic.sx): ...these generic sources; also
490         provide for building the respective log function entry stubs from
491         their respective generic sources.
492
493 2016-11-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
494
495         Implement unit tests for logarithmic functions.
496
497         * tests/testsuite.at.in: m4_include...
498         * tests/Makefile.in (testsuite): ...and add dependency on...
499         * tests/logarithms.at: ...this new file; it specifies unit tests to
500         check POSIX.1-2008 compliance of results and errno assignment from...
501         (log, logf, logl, log1p, log1pf, log1pl, log10, log10f, log10l, log2)
502         (log2f, log2l): ...each of these functions.
503
504 2016-11-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
505
506         Implement unit tests for ANSI printf() functions.
507
508         * tests/Makefile.in (testsuite): Add dependency for...
509         * tests/ansiprintf.at: ...this new file, and...
510         * tests/testsuite.at.in: ...m4_include it.
511
512 2016-11-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
513
514         Fix another printf() hex-float formatting bug.
515
516         * mingwex/stdio/pformat.c (__pformat_emit_xfloat)
517         [stream->flags & PFORMAT_ZEROFILL]: Ignore this; it should be...
518         [(stream->flags & PFORMAT_JUSTIFY) == PFORMAT_ZEROFILL]: ...thus.
519
520 2016-10-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
521
522         Merge post 2016-10-18 updates from legacy branch.
523
524         * include/io.h include/wchar.h: Updated.
525         * mingwex/stdio/pformat.c: Likewise.
526
527 2016-10-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
528
529         Work around MSDN inconsistencies in _finddata_t naming.
530
531         * include/io.h (_finddata64_t, _wfinddata64_): Define them
532         respectively as aberrant alternative data type names for each of...
533         (__finddata64_t, __wfinddata64_t): ...these original names.
534         (_wfinddata32_t): Similarly, define this with...
535         (__wfinddata32_t): ...this alternative name.
536
537         * include/wchar.h (_wfinddata32_t): Correct references in comments.
538
539 2016-10-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
540
541         Fix a potentially infinite printf() format conversion loop.
542
543         * mingwex/stdio/pformat.c (__pformat_emit_xfloat)
544         [value.__pformat_fpreg_mantissa == 0]: Do not attempt to normalize
545         it; there are no 1-bits to promote, so repeated shifting until one
546         appears in most significant position will never terminate.
547
548 2016-10-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
549
550         Merge mingwrt-3.22.4 updates into 5.0-active branch.
551
552         * configure.ac: Preserve original 5.0-active state.
553         * include/wchar.h: Update per 2016-10-17 commits.
554
555 2016-10-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
556
557         Prepare and tag mingwrt-3.22.4 patch release.
558
559         * configure.ac (AC_INIT): Increment patch level.
560
561 2016-10-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
562
563         Resolve an ANSI mode <string.h> vs. <wchar.h> conflict.
564
565         * include/wchar.h [!(_WCHAR_H && _STRING_H)]: Change condition...
566         [!(_WCHAR_H && (_STRING_H && !__STRICT_ANSI__))]: ...to this; the
567         guarded declarations are not exposed by including <string.h> when...
568         [__STRICT_ANSI__]: ...this is defined; hence, we must declare them
569         when including <wchar.h>, even after including <string.h>
570
571 2016-10-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
572
573         Add dependency tracking for tests/Makefile.
574
575         * tests/Makefile.in (top_builddir): Define it.
576         (Makefile): Add automatic rebuild rule, tracking both srcdir and
577         top_builddir prerequisite changes.
578
579 2016-10-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
580
581         Correct a minor typographic error.
582
583         * tests/atlocal.in (autoconf_input): Replace invalid AC_SUBST tag...
584         (configure_input): ...with this correctly named alternative.
585
586 2016-10-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
587
588         Merge mingwrt-3.22.3 updates into 5.0-active branch.
589
590         * configure.ac: Preserve original 5.0-active state.
591         * include/_mingw.h.in include/string.h include/sys/types.h
592         * include/io.h: Update per 2016-10-13 commits.
593
594 2016-10-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
595
596         Prepare and tag mingwrt-3.22.3 patch release.
597
598         * configure.ac (AC_INIT): Increment patch level.
599
600 2016-10-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
601
602         Emulate glibc <string.h> POSIX.1 non-compliance.
603
604         * include/_mingw.h.in (_EMULATE_GLIBC): New feature test macro.
605         [_GNU_SOURCE || _BSD_SOURCE || !__STRICT_ANSI__]: Enable it when...
606         [_XOPEN_SOURCE || _POSIX_C_SOURCE || _POSIX_SOURCE]: ...none of
607         these have been pre-defined by the user.
608
609         * include/string.h [_EMULATE_GLIBC]: Include <strings.h> in full...
610         (strcasecmp, strncasecmp): ...so prototypes for these are declared.
611         [!_EMULATE_GLIBC]: Preserve partial <strings.h> include, guarded by...
612         [__STRING_H_SOURCED__]: ...this context selector, so suppressing the
613         declarations of those function prototypes.
614
615 2016-10-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
616
617         Resolve some non-ANSI typedef omissions.
618
619         * include/sys/types.h (off_t, ssize_t): Always typedef them when...
620         [_POSIX_C_SOURCE || !_NO_OLDNAMES]: ...either of these prevails.
621
622         * include/io.h (_fsize_t): Do not suppress its typedef when...
623         [__STRICT_ANSI__]: ...this compiler option applies, irrespective of...
624         [!(_IO_H && _WCHAR_H)]: ...this, which otherwise causes supression.
625
626 2016-09-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
627
628         Prepare and tag mingwrt-3.22.2 patch release.
629
630         * configure.ac (AC_INIT): Increment patch level.
631         * config.guess config.sub: Delete, per 2016-07-16 commit.
632         * include/stdlib.h: Backport, per 2016-09-14 commit.
633         * include/wchar.h: Backport, per 2016-09-17 commits.
634
635 2016-09-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
636
637         Add missing <wchar.h> declarations when compiling C++.
638
639         * include/wchar.h (fwide, mbsinit, wmemset, wmemchr, wmemcpy)
640         (wmemmove, wcstoll, wcstoull): Declare each of these for either of...
641         [_ISOC99_SOURCE || __cplusplus]: ...these conditions, rather than...
642         [_ISOC99_SOURCE]: ...this alone.
643
644 2016-09-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
645
646         Stricter <wchar.h> ISO-C99 conformity filtering.
647
648         * include/wchar.h [__STRICT_ANSI__]: Do not include any part of...
649         (direct.h, io.h, sys/stat.h, locale.h, process.h): ...any of these.
650
651 2016-09-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
652
653         Relax strict ISO-C conformity to facilitate C99 support.
654
655         * include/stdlib.h (_atoi64, _exit) [__STRICT_ANSI__]: Convention
656         dictates that the Microsoft specific functions should not be declared;
657         however, C99 provides equivalents in atoll() and _Exit(), for which we
658         gratuituously use them to provide inline implementations; thus...
659         [_ISOC99_SOURCE && !__NO_INLINE__]: ...declare them anyway.
660
661 2016-09-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
662
663         Suppress expected header warnings when running testsuite.
664
665         * include/dir.h include/dos.h [__IN_MINGWRT_TESTSUITE__]: New feature
666         test; do not emit warning messages, which declare this pair of headers
667         to be obsolete.  These warnings are expected, but their format may not
668         be deterministically predictable; there is no reason to fail any test
669         on account of any such expected warning message.
670
671 2016-09-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
672
673         Create a preliminary autotest framework.
674
675         * configure.ac (AC_TESTDIR): Initialize tests subdirectory.
676         (AC_PROG_CXX): Identify C++ compiler; the testsuite will use it.
677         (AC_CHECK_PROG): Check availability of autom4te; specify fallback.
678         (AC_CONFIG_FILES): Add instantiation requests for tests/atlocal,
679         tests/Makefile, and tests/testsuite.at.tmp
680
681         * tests/testsuite.at.in tests/atlocal.in tests/headers.at
682         * tests/Makefile.in: New files; implement them.
683
684         * Makefile.in (check, check-recursive, tests): Implement new goals.
685         (mingwrt-srcdist-files): Subdivide package files complement into...
686         (mingwrt-srcdist-package-files): ...this original collection, and...
687         (mingwrt-srcdist-testsuite-files): ...this additional set.
688
689         * test_headers.c: Superseded by autotest; delete it.
690
691 2016-08-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
692
693         Add pthreads-win32 courtesy support hooks.
694
695         * include/errno.h: Assert copyright; tidy layout.
696         (_ERRNO_H_): Rename this repeat inclusion guard macro as...
697         (_ERRNO_H): ...this, conforming to preferred naming convention.
698         [__PTW32_H]: Include "ptw32_errno.h".
699
700         * include/time.h [__SCHED_H_SOURCED__]
701         (struct timespec): Typedef it selectively; do not define...
702         (_TIME_H): ...this.
703
704 2016-08-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
705
706         Implement POSIX printf() feature per request [#2310].
707
708         * mingwex/stdio/pformat.c [WITH_XSI_FEATURES]: Delete references.
709         (PFORMAT_GROUPED): New manifest constant; define it.  It previously
710         appeared in an occluded XSI feature reference, but is now required.
711         (__pformat_t.tslen, __pformat_t.tschr, __pformat_t.grouping): New
712         structure member fields; they maintain control state as set up by...
713         (__pformat_enable_thousands_grouping): ...this new internal function.
714         (__pformat_int_bufsiz): Use it; it may request a size increment.
715         (__pformat_emit_digit, __pformat_emit_punct): New functions; they
716         handle output of digits, radix point, and thousands digits separator
717         punctuation for all numeric conversion formats, thus replacing...
718         (__pformat_emit_numeric_value, __pformat_emit_radix_point): ...these;
719         delete them, and update all callers to use appropriate replacements.
720         (__pformat_int) [PFORMAT_GROUPED]: Add and emit group separators.
721         (__pformat_xint_bufsiz): New internal function; it serves in place of
722         __pformat_int_bufsiz(), for those integer data conversion formats
723         which explicitly do not support thousands digits grouping, hence...
724         (__pformat_xint): ...use it, rather than __pformat_int_bufsiz().
725         (__pformat_adjust_for_grouping): New internal function; it adjusts the
726         __gdtoa radix point index for fixed point conversion formats, to allow
727         for the insertion of thousands digits group separators, hence...
728         (__pformat_emit_float): ...use it, and emit separators as appropriate.
729         (__pformat_emit_efloat) [PFORMAT_GROUPED]: Explicitly disable it.
730         (__pformat): Initialise stream references for __pformat_t.grouping,
731         __pformat_t.tslen, and _pformat_t.tschr, on entry; release any memory
732         allocated for __pformat_t.grouping, when done.
733
734 2016-08-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
735
736         Implement POSIX conforming getline() and getdelim() functions.
737
738         * mingwrt/mingwex/stdio/getdelim.c: New file.
739         * mingwrt/man/getline.3.man: Likewise.
740
741         * mingwrt/include/stdio.h [_POSIX_C_SOURCE >= 200809L]
742         (getdelim): New function, implemented externally; declare prototype.
743         (getline): New function; declare prototype; implement as __CRT_ALIAS
744         inline, with __LIBIMPL__ external representation.
745
746         * mingwrt/Makefile.in (libmingwex.a): Add getdelim.$OBJEXT
747         (mingwrt-man$man3ext): Add manpage dependency references to create...
748         (getline.$man3ext, getdelim.$man3ext): ...these; declare them as
749         distributable duplicates, to be generated from...
750         (getline.$man3ext.man): ...this common source.
751
752 2016-08-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
753
754         Merge mingwrt-3.22.1 legacy updates to 5.0-active branch.
755
756         * mingwex/math/powl.c: Update per issue [#2036] workaround.
757         * mingwex/stdio/pformat.c: Likewise, per issue [#2309] resolution,
758         and subsequent 2016-07-24 optimization.
759
760 2016-07-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
761
762         Prepare and tag all files for release of mingwrt-3.22.1.
763
764         * configure.ac (AC_INIT): Adjust package version number; append
765         patch level identification.
766
767 2016-07-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
768
769         Interim workaround for issue [#2306].
770
771         * mingwex/math/powl.c: Tidy layout; correct indentation.
772         (powl, reducl): Use ISO-C declaration syntax; K&R is obsolescent.
773         (powl) [OVERFLOW]: Correct representation of return value, using...
774         (INFINITYL): ...this manifest constant value, instead of...
775         (MAXNUML): ...this.
776
777 2016-07-24  Keith Marshall  <keithmarshall@users.sourceforge.net>
778
779         Optimize printf() field width accumulation function.
780
781         * mingwex/stdio/pformat.c (__imul10plus): Omit multiply by ten on
782         already accumulated zero total; it is unnecessary, since ten times
783         zero is still zero.
784
785 2016-07-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
786
787         Fix printf() field width parsing regression issue [#2309].
788
789         * mingwex/stdio/pformat.c (__imul10plus): Coerce any accumulated
790         negative total to zero; the only negative value to be handled is...
791         (PFORMAT_IGNORE): ...this; it ceases to be applicable, on first call
792         to __imul10plus(), to accumulate field width or precision.
793
794 2016-07-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
795
796         Update install-sh to match mingw.org/build-aux package.
797
798         * install-sh: Delete it; use version in parent directory instead,
799         recreating local copy, (as symlink, if supported), on demand.
800
801 2016-07-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
802
803         Eliminate redundant configuration files.
804
805         * aclocal.m4 VERSION.m4: Delete them; restore them on demand, via...
806         * Makefile.in ($top_srcdir/../%): ...this symlink dependency rule.
807
808         * configure.ac (AC_PROG_LN_S): Add configuration check.
809
810 2016-07-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
811
812         Merge mingwrt-3.22 packaging correction to 5.0-active branch.
813
814 2016-07-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
815
816         Correct mingwrt-3.22 source package subdirectory omission.
817
818         * Makefile.in (mingwrt-srcdist-files): Add msvcrt-xref.
819
820 2016-07-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
821
822         Discard redundant config.guess and config.sub files.
823
824         * config.guess config.sub: Delete them; they are no longer required.
825
826 2016-07-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
827
828         Merge recent legacy branch updates to 5.0-active branch.
829
830         * Makefile.in include/ctype.h include/excpt.h include/stdint.h
831         * include/glob.h include/limits.h include/locale.h include/search.h
832         * include/stdio.h include/stdlib.h include/wchar.h include/wctype.h
833         * include/sys/param.h include/sys/stat.h mingwex/tdelete.c
834         * mingwex/tfind.c mingwex/tsearch.c mingwex/twalk.c: Updated.
835
836 2016-07-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
837
838         Prepare and tag all files for release of mingwrt-3.22.
839
840         * configure.ac (AC_INIT): Adjust package version number.
841
842 2016-07-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
843
844         Preserve kludge to evade GCC build failure on S_ISBLK misuse.
845
846         * include/sys/stat.h (_NO_UNSUPPORTED): New feature test macro; it
847         should be user defined, if desired, before inclusion; leave undefined.
848         [!_S_IFBLK && !_NO_UNSUPPORTED && !_NO_OLDNAMES] (S_ISBLK): Define it,
849         as appropriate for POSIX conforming usage; do not poison it.
850
851 2016-07-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
852
853         Fix C++ strict type checking inconsistency in <glob.h>
854
855         * include/glob.h (__ERRFUNC_P): New private macro; define it to match
856         the type signature of the error function pointer, to be passed to...
857         (glob): ...this function; use it to correctly represent error function
858         pointer argument in inline implementation.
859
860 2016-07-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
861
862         Factor out <ctype.h> vs. <wctype.h> duplicate elements.
863
864         * include/ctype.h: Assert copyright; tidy layout.
865         [!_CTYPE_H_]: Do not evaluate; rename macro to be tested, as...
866         [!_CTYPE_H]: ...this preferred multiple inclusion guard macro name.
867         (__CTYPE_H_SOURCED__): New macro; define it, and include <wctype.h>,
868         so requesting partial inclusion, to retrieve definitions for...
869         (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE)
870         (_UPPER, WEOF): ...these macros; hence, do not define them locally.
871         (wint_t, wchar_t, wctype_t): Likewise these type definitions...
872         (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype)
873         (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace)
874         (iswupper, iswxdigit, towlower, towupper, is_wctype): ...these function
875         prototypes, and corresponding inline alternative implementations.
876         (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate.
877         [__MSVCRT_VERSION__<=__MSVCR70_DLL]: Likewise.
878
879         * include/wctype.h: Assert copyright; tidy layout.
880         [!_WCTYPE_H_]: Do not evaluate; rename macro to be tested, as...
881         [!_WCTYPE_H]: ...this preferred multiple inclusion guard macro name;
882         do not define it when partial inclusion only is selected, by...
883         [__CTYPE_H_SOURCED__]: ...this; thence define only...
884         (_ALPHA, _BLANK, _CONTROL, _DIGIT, _HEX, _LOWER, _PUNCT, _SPACE)
885         (_UPPER): ...these character characterisation macros...
886         (wint_t, wchar_t, wctype_t): ...these type definitions...
887         (iswalnum, iswalpha, iswascii, iswblank, iswcntrl, iswctype)
888         (iswdigit, iswgraph, iswlower, iswprint, iswpunct, iswspace)
889         (iswupper, iswxdigit, towlower, towupper): ...these function
890         prototypes, with corresponding inline alternative implementations...
891         (is_wctype): ...this further prototype, qualified as deprecated...
892         (WEOF): ...and this status reporting macro.
893         (_ctype, _pctype, _pctype_dll, _imp___ctype, _imp___pctype): Delete
894         declarations, and associated definitions; they do not belong here.
895         (isleadbyte): Likewise, this Microsoft specific function prototype...
896         (_LEADBYTE): ...and this associated character classification macro.
897         (_BEGIN_C_DECLS, _END_C_DECLS): Use these as appropriate.
898
899 2016-07-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
900
901         Do not pass MAKEFLAGS explicitly, when invoking recursive make.
902
903         * Makefile.in (install-strip, uninstall): Delete explicit $(MAKEFLAGS)
904         references from $(MAKE) command lines; make passes them implicitly.
905
906 2016-07-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
907
908         Rework tsearch and friends; resolve issues [#1512] and [#1576].
909
910         * include/search.h: Assert copyright; tidy layout.
911         (_SEARCH_H_): Rename this multiple inclusion guard macro...
912         (_SEARCH_H): ...to conform to this preferred standard convention.
913         (__search_comparator): New function prototype typedef; it provides a
914         convenient shorthand notation for argument declarations in functions
915         which require a comparator function pointer; use it where appropriate.
916         (tsearch, tfind, tdelete) [__MINGW_ATTRIB_NONNULL]: Apply to arguments
917         #2 and #3; was previously incorrectly applied to arguments #1 and #3.
918         (twalk) [__MINGW_ATTRIB_NONNULL]: Apply to both arguments #1 and #2.
919         [_SEARCH_PRIVATE] (__MINGW_ATTRIB_NONNULL): Suppress its effect, to
920         ensure that GCC does not optimize away checks within implementation.
921         (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
922
923         * mingwex/tdelete.c: Tidy layout.
924         (tdelete): Reimplement it as a thin wrapper around...
925         (__tdelete): ...this; it encapsulates the original implementation as a
926         __CRT_ALIAS (inline) function, to simplify void ** --> node_t ** casts.
927         Remove unnecessary non-null assertions for arguments #1 and #3; prefer
928         to validate arguments #2 and #3 internally, and simply return NULL if
929         necessary; hence, do not include <assert.h>
930
931         * mingwex/tfind.c: Tidy layout.
932         (tfind): Similarly reimplement it as a thin wrapper around...
933         (__tfind): ...this __CRT_ALIAS (inline) encapsulation of the original.
934         Add non-null validation for argument #3; do not include <assert.h>
935
936         * mingwex/tsearch.c: Tidy layout.
937         (tsearch): Once again, reimplement it as a thin wrapper around...
938         (__tsearch): ...this __CRT_ALIAS variant.  Add non-null validation for
939         argument #3; do not include <assert.h>
940
941         * mingwex/twalk.c: Tidy layout; do not include <assert.h>
942
943 2016-06-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
944
945         Rework __try1/__except1 to resolve issue [#1328].
946
947         * include/excpt.h: Assert copyright; tidy layout.
948         (_EXCPT_H_): Multiple inclusion guard macro renamed to...
949         (_EXCPT_H): ...this; update all references as appropriate.
950         (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
951         (__typecast_alloca): New macro; define it, casting return type of...
952         (__builtin_alloca): ...this to a specified data type; use it in...
953         (__try1_setup, __except1_teardown): ...these new macros; define them
954         as parameterized templates, providing both -masm-att and -masm-intel
955         syntax implementations, with host specific word size and register
956         assignment parameter substitutions; use them to redefine...
957         (__try1, __except1): ...each of these, using __builtin_alloca to avoid
958         direct stack pushes when registering exception handlers; assign the
959         template parameters as appropriate to support implementation for...
960         [_WIN64, _WIN32]: ...either of these, as the host requires.
961
962 2016-06-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
963
964         Merge Cygwin CVS updates to legacy branch.
965
966         * include/stdio.h: Merge 2011-11-30 and 2012-08-02 commits.
967         (getc, getchar, putc, putchar): Declare function prototypes.
968         (fopen64, ftello64): Likewise; change implementation classification
969         from __CRT_INLINE to __CRT_ALIAS, to avoid C++ emitted code bloat.
970         (_lock_file, _unlock_file): Add prototypes; modify merge to...
971         [__MSVCRT_VERSION__>=__MSVCR80_DLL]: ...require this.
972
973         * include/stdint.h: Merge 2012-07-30 commit; include <_mingw.h>
974
975         * include/excpt.h: Merge 2012-08-01 commit.
976         (__try1, __except1) [_WIN64]: Add alternative implementations.
977
978         * include/stdlib.h: Merge 2012-08-02 commit.
979         [__MSVCRT__VERSION__>=__MSVCR70_DLL || _WIN32_WINNT >= _WINXP]
980         (_strtoi64, _strtoui64, _wcstoi64, _wcstoui64): Declare prototypes.
981         [__MSVCRT__VERSION__>=__MSVCR80_DLL || _WIN32_WINNT >= _VISTA]
982         (_strtoi64_l, _strtoui64_l, _wcstoi64_l, _wcstoui64_l): Likewise...
983         [!__have_typedef_locale_t] (__need_locale_t): ...and define to get...
984         (locale_t): ...this, by selective inclusion of <locale.h>
985         [__WCHAR_H_SOURCED] (_wcstoi64, _wcstoui64, _wcstoi64_l)
986         (_wcstoui64_l): Make these function prototypes available for selective
987         inclusion by...
988         * include/wchar.h: ...this; merge 2012-08-02 commit.
989         [__MSVCRT__VERSION__>=__MSVCR70_DLL || _WIN32_WINNT >= _WINXP]
990         (_wcstoi64, _wcstoui64): Note availability of function prototypes via
991         selective inclusion of their actual declarations from <stdlib.h>
992         [__MSVCRT__VERSION__>=__MSVCR80_DLL || _WIN32_WINNT >= _VISTA]
993         (_wcstoi64_l, _wcstoui64_l): Likewise.
994
995         * include/limits.h: Merge 2012-08-02 commit.
996         [__STRICT_ANSI__] (PATH_MAX): Suppress definition.
997
998         * include/sys/param.h: Merge 2012-08-02 commit.
999         [PATH_MAX not defined] (MAXPATHLEN): Define it explicitly.
1000         [PATH_MAX defined] (MAXPATHLEN): Define it as an alias.
1001
1002 2016-06-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
1003
1004         Add typedef and access support for opaque locale_t objects.
1005
1006         * include/locale.h (locale_t, _locale_t): Define opaque types.
1007         [__need_locale_t]: Make them selectively accessible; define...
1008         (__have_typedef_locale_t): ...this, when they are available.
1009         [_LOCALE_H] (_create_locale, _get_current_locale, _free_locale):
1010         Declare function prototypes, on direct <locale.h> inclusion only.
1011         [_LOCALE_H || _WCHAR_H] (_wcreate_locale): Likewise; this is to be
1012         visible on direct inclusion, or when including <wchar.h>
1013
1014         * include/stdio.h [!(_STDIO_H && _WCHAR_T)]: Correct expression of...
1015         [__MSVCR80_DLL || _WIN32_WINNT_VISTA]: ...this subsidiary condition;
1016         for all cases when this is true, (including when [_STDIO_H] alone)...
1017         [!__have_typedef_locale_t] (__need_locale_t): ...define this, and
1018         include <locale.h>, for selective definition of...
1019         (locale_t): ...this.
1020
1021 2016-05-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
1022
1023         Occlude unsupported _S_IFBLK feature; resolve issue [#1146].
1024
1025         * include/sys/stat.h (_MINGW_S_IFBLK_KLUDGE): New feature test macro;
1026         do not define it, and strongly recommend that it remains undefined.
1027         [!_MINGW_S_IFBLK_KLUDGE] (_S_IFBLK, S_IFBLK): Do not define them.
1028         [!_MINGW_S_IFBLK_KLUDGE] (_S_ISBLK, S_ISBLK): Poison them.
1029         [_MINGW_S_IFBLK_KLUDGE] (_S_IFBLK, S_IFBLK): Adjust definitions; use a
1030         modified value, which is guaranteed to be impossible to match in...
1031         [_S_ISBLK, S_ISBLK]: ...these, thus enforcing false test results.
1032
1033 2016-05-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
1034
1035         Fix a typo in a <sys/stat.h> inline function definition.
1036
1037         * include/sys/stat.h [__MSVCRT_VERSION__ >= __MSVCR80_DLL]
1038         (stat): First argument declared as 'int'; should be 'const char *';
1039         correct it.
1040
1041 2016-05-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
1042
1043         Synchronize package version management with Win32-API.
1044
1045         * VERSION.m4: New file; link it to keep in sync with identically named
1046         file in top level composite package source directory; it defines...
1047         (__VERSION__): ...this new composite package version macro.
1048
1049         * aclocal.m4: Link it, to keep in sync with identically named files in
1050         top level composite source and sibling w32api sub-package directories.
1051         (__VERSION__): New macro; include VERSION.m4 to define it.
1052         (__BUG_REPORT_URL__): New macro; define it.
1053
1054         * configure.ac (AC_INIT): Assign package version and bug report URL...
1055         (__VERSION__, __BUG_REPORT_URL__): ...from these, as defined through
1056         automatic inclusion of aclocal.m4
1057
1058         * Makefile.in (configure): Add dependency on VERSION.m4
1059
1060 2016-05-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
1061
1062         Resolve some strnlen() implementation issues.
1063
1064         * mingwex/strnlen.s (__mingw_strnlen) [!NUL]: Correct termination
1065         logic; should have used jnz, not jz, to skip endpoint adjustment on
1066         scanning past a terminal NUL character code.
1067
1068         * include/string.h [_POSIX_C_SOURCE >= 200809L] (strnlen): Do not
1069         #define it, as this breaks GCC compilation; use __CRT_ALIAS instead,
1070         with __JMPSTUB__ referencing via "oldname" libraries.
1071
1072         * Makefile.in (jmpstub_awk_script, libimpl_awk_script): Adapt to
1073         facilitate assignment of __JMPSTUB__ and __LIBIMPL__ references to
1074         libraries other than libmingwex.a
1075         (strnlen.jmpstub.$OBJEXT): Assign it to all "moldname" libraries prior
1076         to libmoldname80.a, in addition to libcoldname.a, as specified by the
1077         __JMPSTUB__ assignment within <string.h>
1078
1079 2016-05-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
1080
1081         Enforce consistent specification of package version.
1082
1083         * include/_mingw.h: Rename as...
1084         * include/_mingw.h.in: ...this build-time template file.
1085         (__MINGW32_VERSION): Redefine it, in terms of...
1086         (%PACKAGE_VERSION_LONG%): ...this substitution template.
1087         (__MINGW32_MAJOR_VERSION, __MINGW32_MINOR_VERSION)
1088         (__MINGW32_PATCHLEVEL): Likewise, redefine them in terms of...
1089         (%PACKAGE_VERSION_MAJOR%, %PACKAGE_VERSION_MINOR%)
1090         (%PACKAGE_VERSION_PATCH%): ...these.
1091
1092         * configure.ac (AC_CONFIG_SRCDIR): Adjust for renamed file.
1093         (MINGW_AC_CONFIG_EXTRA_SRCDIR): Likewise, for similarly renamed
1094         w32api/include/w32api.h.in file.
1095
1096         * Makefile.in (all-mingwrt-stage-1-only): Add dependency on...
1097         (_mingw.h, w32api.h): ...these; add rule to generate them, using...
1098         (PACKAGE_VERSION_SCRIPT, PACKAGE_VERSION_FORMAT): ...these new macros;
1099         they apply appropriate substitutions to the renamed template files.
1100         (install-mingwrt-headers): Explicitly add _mingwrt.h
1101
1102 2016-04-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
1103
1104         Make strnlen() available for all MSVCRT.DLL versions.
1105
1106         * msvcrt-xref/msvcrt.def.in (strnlen): Mark it as...
1107         (__MINGW_DLSYM): ...this, excluding its exposure in libmsvcrt.dll, and
1108         thus requiring a dlsym() lookup for versions which provide it.
1109
1110         * include/string.h [__MSVCRT_VERSION__>=__MSVCR80_DLL] (strnlen):
1111         Declare prototype, for use from these non-free DLLs, otherwise...
1112         [_POSIX_C_SOURCE >= 200809L] (strnlen): Define it as an alias for...
1113         (__mingw_strnlen): ...this new libmingwex.a function.
1114
1115         * mingwex/strnlen.s: New file; it implements...
1116         (__mingw_strnlen, __mingw_strnlen_s): ...these new functions.
1117
1118         * Makefile.in (libmingwex.a): Add requirement for...
1119         (strnlen.$OBJEXT): ...this; add vpath specification for its source.
1120
1121 2016-04-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
1122
1123         Use correct paths for partially included header files.
1124
1125         * include/io.h include/process.h: Use 'iquote' #include "stdint.h", to
1126         ensure that we get stdint.h from the same include directory.
1127         * include/stdio.h: Likewise for #include "stdarg.h", and "sys/types.h"
1128         * include/wchar.h: Likewise for all of #include "stdio.h", "stdlib.h",
1129         "direct.h", "sys/stat.h", "io.h", "time.h", "locale.h", and "process.h"
1130         * include/dir.h include/dos.h: Likewise for #include "io.h"
1131         * include/direct.h: Likewise for #include "dos.h"
1132
1133 2016-04-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
1134
1135         Generalize procedure for installing manpages.
1136
1137         * man/dirname.man: Rename it as...
1138         * man/dirname.3.man: ...this, with inherent MANSECT specification.
1139         (TH): Use %PAGEREF% substitution for NAME, MANSECT, and DATE.
1140         (MS-Windows): Do not append \[tm]; it doesn't render well in Windows
1141         console. Further, correct typos; some syntactic adjustments.
1142
1143         * Makefile.in (%:%.man): New rule; define it.
1144         (%.mancopy, %.mancopy-recursive): New rules; define and use with...
1145         (reference_manpage): ...this new macro, defining it to map...
1146         (dirname.3.man): ...this as the reference source file for both of...
1147         (basename.3, dirname.3): ...these installed manpages.
1148         (format_manpage): Add MANSECT and DATE to expansion of...
1149         (%PAGEREF%): ...this sed substitution pattern.
1150
1151 2016-04-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
1152
1153         Update several incorrectly attributed header files.
1154
1155         * include/direct.h include/io.h include/locale.h include/math.h
1156         * include/process.h include/stdio.h include/stdlib.h include/string.h
1157         * include/sys/stat.h include/sys/types.h include/time.h: Identify the
1158         original author as Colin Peters; Rob Savoye merely imported them into
1159         the original CVS repository, when he created it.
1160
1161         * include/wchar.h: Likewise, imported by Rob Savoye, but the original
1162         source file is unattributed.
1163
1164 2016-04-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
1165
1166         Eliminate all references to non-standard __NO_ISOCEXT macro.
1167
1168         * include/math.h: Tidy layout.
1169         [!defined __NO_ISOCEXT]: Do not use this ugly double negative; in any
1170         case, we do not want to encourage users to define such implementation
1171         private macros; instead, prefer to make use of...
1172         [defined _ISOC99_SOURCE]: ...this glibc compatible feature test.
1173         [__STDC_VERSION__ >= 199901L]: Do not require this; it is implied, by
1174         definition, in _ISOC99_SOURCE.
1175         * include/stdio.h [!defined __NO_ISOCEXT]: Likewise; replace with...
1176         [defined _ISOC99_SOURCE]: ...this, throughout.
1177
1178 2016-04-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
1179
1180         Make resetting of __need_typedef requests more robust.
1181
1182         * include/sys/types.h [__need_off_t, __need___off64_t]
1183         [__need_ssize_t, __need_time_t]: Move corresponding #undef out of, and
1184         after the respective conditional blocks, which provide each associated
1185         typedef, so ensuring that any repeat request is properly reset.
1186
1187         * include/time.h [__need_time_t]: Always delegate to <sys/types.h> for
1188         typedef, and reset of request, even in cases where...
1189         [_TIME_H]: ...this is already defined.
1190
1191 2016-04-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
1192
1193         Add a missing comment terminator.
1194
1195         * include/io.h [!(defined _IO_H && defined _WCHAR_H)]: Properly
1196         terminate the comment annotating the closing #endif statement.
1197
1198 2016-04-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
1199
1200         Declare <dir.h> as formally deprecated.
1201
1202         * include/dir.h: Assert copyright.
1203         (pragma GCC system_header): Declare it.
1204         (_DIR_H): Define as multiple inclusion macro.
1205         [!_DIR_H]: Emit "obsolete header" warning message.
1206
1207 2016-04-06  Keith Marshall  <keithmarshall@users.sourceforge.net>
1208
1209         Factor out <wchar.h> vs. <io.h> duplicate declarations.
1210
1211         * include/io.h: Assert copyright; tidy layout.
1212         (_IO_H_): Rename this multiple inclusion guard macro...
1213         (_IO_H): ...to this preferred form; do not define it when...
1214         [__WCHAR_H_SOURCED__]: ...this is defined, in which case declare...
1215         (_waccess, _wchmod, _wcreat, _wopen, _wsopen, _wunlink, _wmktemp)
1216         (_wfindfirst, _wfindnext, _wfindfirst64, _wfindnext64, _wfindfirsti64)
1217         (_wfindnexti64, _wfindfirst32i64, _wfindnext32i64, _wfindfirst64i32)
1218         (_wfindnext64i32, _wfindfirst32, _wfindnext32, _findclose): ...only
1219         these function prototypes, common to <wchar.h>, together with...
1220         (_fsize_t, struct _wfinddata_t, struct _wfinddatai64_t)
1221         (struct __wfinddata64_t, struct _wfinddata64i32_t)
1222         (struct _wfinddata32i64_t, struct __wfinddata32_t): ...these
1223         requisite data type definitions.
1224         (pragma GCC system_header): Declare it.
1225         (__need_intptr_t): Define, and include <stdint.h> to get...
1226         (intptr_t): ...this typedef; neither define it locally, nor define...
1227         (_INTPTR_T_DEFINED): ...this; delete all references.
1228         (_FSIZE_T_DEFINED): Do not define it; delete all references; rather...
1229         [!(defined _IO_H && defined _WCHAR)] (_fsize_t): Define it.
1230         (FILENAME_MAX): Define it unconditionally.
1231         (__struct_finddata_t): New temporary macro; define and use it to...
1232         (struct _finddata_t, struct _wfinddata_t, struct _finddatai64_t)
1233         (struct _wfinddatai64_t, struct __finddata64_t, struct __wfinddata64_t)
1234         (struct _finddata64i32_t, struct _wfinddata64i32_t)
1235         (struct _finddata32i64_t, struct _wfinddata32i64_t)
1236         (struct __finddata32_t, struct __wfinddata32_t): ...define these.
1237
1238         * include/wchar.h (_WFINDDATA_T_DEFINED): Do not define it; delete all
1239         references; filter out associated data type definitions, namely...
1240         (struct _wfinddata_t, struct _wfinddatai64_t): ...these, and also...
1241         (struct __wfinddata64_t, struct _wfinddata64i32_t): ...these, and...
1242         (struct _wfinddata32i64_t, struct __wfinddata32_t): ...these.
1243         (_WIO_DEFINED): Likewise, do not define it; delete all references;
1244         filter out associated function prototype declarations for all of...
1245         (_waccess, _wchmod, _wcreat, _wopen, _wsopen, _wunlink, _wmktemp)
1246         (_wfindfirst, _wfindnext, _wfindfirst64, _wfindnext64, _wfindfirsti64)
1247         (_wfindnexti64, _wfindfirst32i64, _wfindnext32i64, _wfindfirst64i32)
1248         (_wfindnext64i32, _wfindfirst32, _wfindnext32): ...these; reproduce
1249         them by selective inclusion of <io.h>.
1250
1251 2016-04-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
1252
1253         Factor out <wchar.h> vs. <process.h> duplicate declarations.
1254
1255         * include/process.h: Assert copyright; tidy layout.
1256         (_PROCESS_H_): Rename this multiple inclusion guard macro...
1257         (_PROCESS_H): ...to this preferred form; do not define it when...
1258         [__WCHAR_H_SOURCED__]: ...this is defined, in which case declare...
1259         (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve, _wexecvp)
1260         (_wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe, _wspawnv)
1261         (_wspawnve, _wspawnvp, _wspawnvpe): ...only these functions.
1262         [!__WCHAR_H_SOURCED__] (_PROCESS_H): Define it; declare all functions
1263         normally specified herein, including those listed above, as required.
1264         (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
1265         (__need_intptr_t): Define it prior to including <stdint.h>.
1266         (pragma GCC system_header): Declare it.
1267
1268         * include/wchar.h (_WPROCESS_DEFINED): Delete it; filter out...
1269         (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve, _wexecvp)
1270         (_wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe, _wspawnv)
1271         (_wspawnve, _wspawnvp, _wspawnvpe): ...these function prototypes;
1272         reproduce them, by selective inclusion of <process.h>.
1273
1274 2016-04-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
1275
1276         Enable selective retrieval of intptr typedefs from <stdint.h>.
1277
1278         * include/stdint.h: Assert copyright; tidy layout.
1279         [__need_intptr_t || __need_uintptr_t] (_STDINT_H): Do not define it;
1280         conceal all normally defined data types, except either or both of...
1281         [__need_intptr_t] (intptr_t): ...this, and/or...
1282         [__need_uintptr_t] (uintptr_t): ...this.
1283         (pragma GCC system_header): Declare it.
1284
1285 2016-03-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
1286
1287         Factor out <wchar.h> vs. <sys/stat.h> duplicate declarations.
1288
1289         * include/sys/stat.h: Assert copyright; tidy layout.
1290         (pragma GCC system_header): Declare it.
1291         (_STAT_H_): Rename multiple inclusion guard macro; adopt...
1292         (_SYS_STAT_H): ...this preferred naming convention; however, when...
1293         [__WCHAR_H_SOURCED__] (_SYS_STAT_H): ...do not define it; declare...
1294         (_wstat, _wstati64, _wstat64, _wstat32): ...these functions, and...
1295         (_wstat32i64, _wstat64i32): ...these, as appropriate to user specified
1296         __MSVCRT_VERSION__ and _WIN32_WINNT macro definitions, namely...
1297         [__MSVCRT_VERSION__ >= 0x601]: ...this, updated to become...
1298         [__MSVCRT_VERSION__ >= __MSVCR61_DLL]: ...this; augment it with...
1299         [|| _WIN32_WINNT >= _WIN32_WINNT_WIN2K]: ...this complement; also...
1300         [__MSVCRT_VERSION__ < 0x800]: this, updated to become...
1301         [__MSVCRT_VERSION__ < __MSVCR80_DLL]: ...this; likewise...
1302         [__MSVCRT_VERSION__ >= 0x800]: ...this, which becomes...
1303         [__MSVCRT_VERSION__ >= __MSVCR80_DLL]: ...this.
1304         (__struct_stat_defined): New macro; define, and use it to define...
1305         (struct stat, struct _stat, struct _stati64, struct __stat64)
1306         (struct __stat32, struct _stat32i64, struct _stat64i32): ...these.
1307         [!__WCHAR_H_SOURCED__] (_SYS_STAT_H): Define it; also include
1308         <sys/types.h>, delegating to it the inclusion of <_mingw.h>, and
1309         definition of types size_t and wchar_t; declare all header content,
1310         including that declared when __WCHAR_H_SOURCED__ is defined, unless
1311         already declared as a result of selective inclusion by <wchar.h>
1312         (__need_size_t, __need_wchar_t): Do not define them; consequently,
1313         there is no need to include <stddef.h>; do not do so.
1314
1315         * include/wchar.h (_wstat, _wstati64, _wstat64): Factor out.
1316         (_wstat32, _wstat32i64, _wstat64i32, struct stat, struct _stat)
1317         (struct _stati64, struct __stat64, struct __stat32, struct _stat32i64)
1318         (struct _stat64i32): Likewise; reproduce them by selective inclusion
1319         of <sys/stat.h>
1320
1321 2016-03-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
1322
1323         Factor out <wchar.h> vs. <direct.h> duplicate declarations.
1324
1325         * include/direct.h: Conditionally partition it, such that...
1326         [__WCHAR_H_SOURCED__] (_DIRECT_H): Do not define it; declare only...
1327         (_wchdir, wchar_t, wchar_t, _wmkdir, _wrmdir): ...these, otherwise...
1328         [!__WCHAR_H_SOURCED__] (_DIRECT_H): Define it; expose all content.
1329         (_WDIRECT_DEFINED): Never define it; delete all references.
1330
1331         * include/wchar.h (_WDIRECT_DEFINED): Delete all references.
1332         (_wchdir, wchar_t, wchar_t, _wmkdir, _wrmdir): Delete prototypes;
1333         selectively #include <direct.h> to reproduce them.
1334
1335 2016-03-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
1336
1337         Factor out <direct.h> vs. <dos.h> duplicate declarations.
1338
1339         * include/dos.h: Assert copyright; tidy layout.
1340         (pragma GCC system_header): Declare it.
1341         (_DOS_H_): Rename multiple inclusion guard macro, to adopt...
1342         (_DOS_H): ...this preferred convention; do not define it when...
1343         [__DIRECT_H_SOURCED__]: ...this applies; restrict declarations to...
1344         (struct _diskfree_t): ...this aggregate data type, together with...
1345         [_NO_OLDNAMES] (diskfree_t): ...this alternative name for it, and...
1346         (_getdiskfree): ...this associated function.
1347         [!__DIRECT_H_SOURCED__] (_DOS_H): Define it; expose all content, but
1348         emit a warning that this header is obsolete, and should not be used.
1349         (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
1350         (_DISKFREE_T_DEFINED): Do not define it; delete all references.
1351         (__need_wchar_t): Do not define it; it isn't needed here, and hence,
1352         neither is it necessary to #include <stddef.h>; do not do so.  Also,
1353         do not #include <_mingw.h> explicitly, but always #include <io.h>,
1354         which will implicitly #include <_mingw.h> anyway.
1355
1356         * include/direct.h: Assert copyright; tidy layout.
1357         (pragma GCC system_header): Declare it.
1358         (_DIRECT_H_): Rename this multiple inclusion guard macro...
1359         (_DIRECT_H): ...to adopt this preferred naming convention.
1360         (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
1361         (_DISKFREE_T_DEFINED, diskfree_t, struct _diskfree_t): Do not define.
1362         (_getdiskfree): Likewise, do not declare prototype; instead...
1363         (__DIRECT_H_SOURCED__): ...define this, and #include <dos.h>; also
1364         delegate indirect inclusion of <_mingw.h> and <io.h> to this, rather
1365         than include them directly; undefine __DIRECT_H_SOURCED__ when done.
1366         (__need_wchar_t): Do not define it, and do not #include <stddef.h>;
1367         although needed, we may inherit it indirectly from <sys/types.h>,
1368         included by <io.h> via <dos.h>.
1369
1370 2016-03-26  Keith Marshall  <keithmarshall@users.sourceforge.net>
1371
1372         Evade CPP mismatched apostrophe warnings in windres comments.
1373
1374         * msvcrt-xref/msvcrt.def.in (; pexports): 1,Gs/doesn't/does not/g
1375
1376 2016-03-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
1377
1378         Factor out <locale.h> vs. <wchar.h> duplicate declarations.
1379
1380         * include/locale.h: Assert copyright; tidy layout.
1381         (_LOCALE_H_): Rename multiple inclusion guard macro, to...
1382         (_LOCALE_H): ...this; do not define it when...
1383         [__WCHAR_H_SOURCED__]: ...this applies; restrict declarations to...
1384         (_wsetlocale): ...just this one visible function prototype.
1385         [!__WCHAR_H_SOURCED__] (_LOCALE_H): Define it; expose all content.
1386         (_WLOCALE_DEFINED): Do not define it; delete all references.
1387         (pragma GCC system_header): Declare it.
1388
1389         * include/wchar.h (_wsetlocale): Delete prototype; maintain its
1390         visibility by selective inclusion of <locale.h> instead.
1391         (_WLOCALE_DEFINED): Delete all references.
1392
1393 2016-03-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
1394
1395         Resolve some "implicit function declaration" warnings.
1396
1397         * setargv.c (isspace): Include <ctype.h> for declaration.
1398         * cpu_features.h (__cpu_features_init): Declare function prototype.
1399         * crt1.c (_setargv): Likewise; (this isn't needed elsewhere).
1400
1401 2016-03-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
1402
1403         Factor out <stdlib.h> vs. <wchar.h> duplicate declarations.
1404
1405         * include/stdlib.h [__WCHAR_H_SOURCED__]
1406         (_STDLIB_H): Do not define it; restrict visible declarations to...
1407         (wcstol, wcstoul, wcstod, _wgetenv, _wputenv, _wsearchenv, _wsystem)
1408         (_wmakepath, _wsplitpath, _wfullpath, wcstof, wcstold): ...this subset
1409         of regular <stdlib.h> content; full content is declared only when...
1410         [!__WCHAR_H_SOURCED__] (_STDLIB_H): ...this applies; define it.
1411         (_WSTDLIB_DEFINED): Do not define it; delete all references.
1412         (pragma GCC system_header): Declare it; tidy layout.
1413
1414         * include/wchar.h: Delete duplicated declarations for...
1415         (wcstol, wcstoul, wcstod, _wgetenv, _wputenv, _wsearchenv, _wsystem)
1416         (_wmakepath, _wsplitpath, _wfullpath, wcstof, wcstold): ...these;
1417         include <stdlib.h> selectively, to maintain their visibility.
1418         (_WSTDLIB_DEFINED): Delete all references.
1419
1420 2016-03-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
1421
1422         Relocate misplaced umask() function prototypes.
1423
1424         * include/sys/stat.h (umask, _umask): Declare prototypes; duplicate...
1425         * include/io.h (umask, _umask): ...these; POSIX doesn't expect them
1426         here, but leave them for backward, or Microsoft, compatibility.
1427
1428 2016-03-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
1429
1430         Correct another _BEGIN_C_DECLS imbalance error.
1431
1432         * include/wchar.h (_BEGIN_C_DECLS): One misplaced, superfluous, and
1433         unbalanced instance deleted; one correctly balanced instance remains.
1434
1435 2016-03-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
1436
1437         Support installation of headers with empty parts directory.
1438
1439         * Makefile.in (SUB_HEADERS_PRESENT): New macro; define it, and...
1440         (install-mingwrt-headers): ...invoke it; if false, do not perform...
1441         (INSTALL_SUB_HEADERS): ...this.
1442
1443 2016-03-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
1444
1445         Reinstate typedef for non-standard off64_t.
1446
1447         * include/sys/types.h [!__STRICT_ANSI__] (off64_t): Define it as...
1448         (__off64_t): ...typedef derived from this; although non-standard, it
1449         is gratuitously required when building GCC's libgfortran.a
1450
1451 2016-03-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
1452
1453         Correct conditional compilation block nesting errors.
1454
1455         * include/stdio.h include/time.h (_BEGIN_C_DECLS, _END_C_DECLS): Keep
1456         them balanced within, and around, conditional compilation blocks.
1457
1458 2016-03-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
1459
1460         Feature test _MINGW32_EXTENDED_SOURCE renamed.
1461
1462         * include/_mingw.h (_MINGW32_EXTENDED_SOURCE): Rename to...
1463         (_MINGW32_SOURCE_EXTENDED): ...this, to improve naming consistency...
1464         (_XOPEN_SOURCE_EXTENDED): ...with this POSIX-XSI feature test.
1465         (__USE_MINGW_ANSI_STDIO): Note that it is intended for internal use;
1466         users should enable any conventional feature test which implies it.
1467
1468         * include/time.h (_MINGW32_EXTENDED_SOURCE): Update references...
1469         (_MINGW32_SOURCE_EXTENDED): ...i.e. to refer to this.
1470
1471 2016-02-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
1472
1473         Correct atexit() and _onexit() export declaration regression.
1474
1475         * msvcrt-xref/msvcrt.def.in (atexit, _onexit): These must be exported
1476         as DATA; declare them accordingly.
1477
1478 2016-02-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
1479
1480         Refactor to make <parts/time.h> and <parts/wchar.h> redundant.
1481
1482         * include/string.h: Tidy layout.
1483         (__STRING_H_SOURCED__): New macro; define it at start; delete at end.
1484         (_stricmp, _strnicmp): Include their prototypes, selectively from...
1485         * include/strings.h [__STRING_H_SOURCED__]: ...here, reproduce them...
1486         * include/parts/strings.h: ...from here; file is obsolete; delete it.
1487
1488         * include/string.h (_wcscmpi): Define alias.
1489         (wcscat, wcschr, wcscmp, wcscoll, wcscpy, wcscspn, wcslen, wcsncat)
1490         (wcsncmp, wcsncpy, wcspbrk, wcsrchr, wcsspn, wcsstr, wcstok, wcsxfrm)
1491         (_wcsdup, _wcsicmp, _wcsicoll, _wcslwr, _wcsnicmp, _wcsnset, _wcsrev)
1492         (_wcsset, _wcsupr, _wcsncoll, _wcsnicoll, _wcserror, __wcserror)
1493         (wcscmpi, wcscmpi, wcsdup, wcsicmp, wcsicoll, wcslwr, wcsnicmp)
1494         (wcsnset, wcsrev, wcsset, wcsupr): Selectively include prototypes...
1495         * include/wchar.h [__STRING_H_SOURCED__]: ...from here; reproduce...
1496         * include/parts/wchar.h: ...from here; file is obsolete; delete it.
1497
1498         * include/strings.h (_STRINGS_H): Do not define it, when...
1499         [__STRING_H_SOURCED__]: ...selectively included by <string.h>.
1500         * include/wchar.h (_WCHAR_H) [__STRING_H_SOURCED__]: Likewise.
1501
1502 2016-02-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
1503
1504         Refactor to make <parts/time.h> redundant.
1505
1506         * include/sys/types.h (time_t, __time32_t, __time32_t)
1507         [__need_time_t && !__have_typedef_time_t]: Reproduce definitions...
1508         * include/parts/time.h: ...from here; preserve selective exposure.
1509
1510         * include/time.h (time_t, __time32_t, __time32_t): Get them...
1511         * include/sys/types.h: ...from here, by selective inclusion.
1512
1513         * include/time.h (struct timespec, struct __mingw_extended_timespec)
1514         [__need_struct_timespec && !__struct_timespec_defined]: Reproduce...
1515         * include/parts/time.h: ...from here; preserve selective exposure.
1516
1517         * include/parts/time.h: Delete file; it is no longer required.
1518
1519 2016-02-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
1520
1521         Declare the nanosleep() function where POSIX expects it.
1522
1523         * include/time.h (__mingw_sleep): Declare function prototype.
1524         (nanosleep): Declare prototype, and provide in-line implementation;
1525         this is a reproduction of the original implementation, relocated...
1526         * include/unistd.h (nanosleep): ...from here; remove it; hence...
1527         (struct timespec): ...this need not be declared here, and there is
1528         no need to include <parts/time.h>; remove reference.
1529
1530 2016-02-15  Keith Marshall  <keithmarshall@users.sourceforge.net>
1531
1532         Refactor <time.h> vs. <wchar.h> to avoid duplication.
1533
1534         * include/wchar.h (__WCHAR_H_SOURCED__): New macro; define it...
1535         [_WCHAR_H]: ...at start of processing in this scope; delete at end.
1536         (struct tm): Delete definition; delegate it, together with each of...
1537         (_wctime, _wasctime, _wstrdate, _wstrtime, _wctime64, _wctime32)
1538         (wcsftime): ...these function prototypes; delete them, but note in
1539         comments, that they remain declared, via delegation to...
1540         * include/time.h: ...this; include it selectively, subject to...
1541         [defined __WCHAR_H_SOURCED__](__need_wchar_decls): ...this; define it.
1542         [defined __WCHAR_H_SOURCED__](_TIME_H): Suppress its definition.
1543         [_TIME_H]: Process all definitions and declarations; otherwise...
1544         [__need_wchar_decls]: ...process only <wchar.h> shared content, but...
1545         [_TIME_H && _WCHAR_H]: ...not on second, or later, time of processing.
1546         (_WTIME_DEFINED): Obsolete macro; delete all references.
1547
1548 2016-02-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
1549
1550         Implement support for POSIX "%n$*m$" printf() format control.
1551
1552         * mingwex/stdio/pformat.c (NL_ARGMAX): New macro; nominally, it should
1553         be defined in <limits.h>, but MinGW may not do so; provide a fallback.
1554         (__pformat_inline__): New macro; define, and use it where appropriate.
1555         (PFORMAT_CONVERSION_TYPE, PFORMAT_LENGTH_MODIFIER)
1556         (PFORMAT_TYPE_DOUBLE, PFORMAT_TYPE_INTEGER, PFORMAT_TYPE_POINTER)
1557         (PFORMAT_LENGTH_DEFAULT): New enumerated values; define them.
1558         (PFORMAT_ARGMAP_ENTRIES): New enumerated value tally; use it in...
1559         (__pformat_argmap_t): ...this new union data type; define it.
1560         (__pformat_indexed_argc, __pformat_sizeof_argument, __pformat_argmap)
1561         (__pformat_imul10plus, __pformat_arg_index, __pformat_read_arg_index)
1562         (__pformat_read_arg_index_after, __pformat_look_ahead_beyond_flags)
1563         (__pformat_look_ahead, __pformat_ignore_flags, __pformat_is_ldouble)
1564         (__pformat_is_conversion_type, __pformat_is_alt_ldouble_modifier)
1565         (__pformat_length_modifier, __pformat_check_length_modifier): New
1566         locally defined static and/or inline functions; implement, and...
1567         (__pformat): ...use them.
1568
1569 2016-02-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
1570
1571         Add prototypes for Microsoft's _printf_p() family of functions.
1572
1573         * include/stdio.h [>=__MSVCR80_DLL || >=_WIN32_WINNT_VISTA]
1574         (_printf_p, _printf_p_l, _vprintf_p, _vprintf_p_l, _fprintf_p)
1575         (_fprintf_p_l, _vfprintf_p, _vfprintf_p_l, _sprintf_p, _sprintf_p_l)
1576         (_vsprintf_p, _vsprintf_p_l): Add function prototypes; they require
1577         either a non-free MSVC runtime, or MSVCRT.DLL from Vista onward.
1578         (_wprintf_p, _wprintf_p_l, _vwprintf_p, _vwprintf_p_l, _fwprintf_p)
1579         (_fwprintf_p_l, _vfwprintf_p, _vfwprintf_p_l, _swprintf_p)
1580         (_swprintf_p_l, _vswprintf_p, _vswprintf_p_l): Likewise; make them
1581         available for selective inclusion by both <stdio.h> and <wchar.h>...
1582         [_STDIO_H || __WCHAR_H_SOURCED__]: ...when either of these defined.
1583
1584 2016-02-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
1585
1586         Adapt msvcrt-xref to become msvcrt.def.in provider.
1587
1588         * Makefile.in (msvcrt_version_script) [__MSVCRT_VERSION__]: Adjust
1589         filter value assignment; scale it upwards, by a factor of 0x10000.
1590         (%.def.in) [vpath]: Make it refer to msvcrt-xref directory.
1591         (%.def) [msvcr*]: Do not preserve comments; define...
1592         (__DLLNAME__): ...this preprocessor symbol.
1593
1594         * msvcrt.def.in: Content is obsolete; delete file and replace with...
1595         * msvcrt-xref/msvcrt.def.in: ...this updated alternative.
1596         (__MINGW_DLSYM): New preprocessor macro; define it conditionally...
1597         [__MSVCRT_VERSION__ != 0]: ...to emit in-scope symbols it declares...
1598         [__MSVCRT_VERSION__ == 0]: ...to hide symbols it declares, followed by
1599         redefinition of __MSVCRT_VERSION__ itself, to a value of 0x10000.
1600
1601 2016-02-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
1602
1603         Import msvcrt-xref documentation resources.
1604
1605         * msvcrt-xref: New directory.
1606         * msvcrt-xref/ChangeLog msvcrt-xref/COPYING: New files.
1607         * msvcrt-xref/msvcrt-xref.ms msvcrt-xref/fdl-1.3.ms: New files.
1608         * msvcrt-xref/configure.ac msvcrt-xref/Makefile.in: New files.
1609         * msvcrt-xref/README.in msvcrt-xref/msvcrt.def.in: New files.
1610
1611 2016-01-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
1612
1613         Refactor <stdio.h> vs. <wchar.h> to avoid duplication.
1614
1615         * include/wchar.h: Some minor layout adjustments.
1616         (__WCHAR_H_SOURCED__): New macro; define it temporarily, only while
1617         within the scope of reading <wchar.h>; undefine it at end of file.
1618         (struct tm): Do not define; it is sufficient to keep it opaque.
1619         (FILE, FILENAME_MAX, NULL, __VALIST, off_t, __off64_t, size_t)
1620         (ssize_t, va_list, wchar_t, wint_t): Do not require or define them
1621         directly; delegate to indirect definition by including <stdio.h>.
1622         (fgetwc, fputwc, fgetws, fputws, fwprintf, fwscanf, getwc, getwchar)
1623         (_getws, putwc, putwchar, _putws, snwprintf, _snwprintf, swprintf)
1624         (swscanf, ungetwc, vfwprintf, vfwscanf, _vscwprintf, vsnwprintf)
1625         (_vsnwprintf, vswprintf, vwprintf, vswscanf, vwscanf, _wfdopen)
1626         (_wfopen, _wfreopen, _wfsopen, _wperror, _wpopen, wprintf, _wrename)
1627         (_wremove, wscanf, _wtmpnam, _wtempnam): Omit prototypes; acquire them
1628         indirectly, by selective inclusion from <stdio.h>; hence include it.
1629
1630         * include/stdio.h: Assert copyright; tidy layout.
1631         (_STDIO_H_): Multiple inclusion guard macro, renamed as...
1632         (_STDIO_H): ...this, but defined conditionally, subject to...
1633         [__WCHAR_H_SOURCED__]: ...selectively define and declare only those
1634         entities which are required by <wchar.h>; do not define...
1635         [__WCHAR_H_SOURCED__] (_STDIO_H): ...this; define it only if...
1636         [!__WCHAR_H_SOURCED__]: ...this; define and declare ALL entities which
1637         are normally specified within <stdio.h>, INCLUDING those specifically
1638         itemised above, as selectively required by <wchar.h>.
1639
1640         * pseudo-reloc.c: Some minor layout adjustments.
1641         (WIN32_LEAN_AND_MEAN): Define it; we don't need the windows baggage.
1642         [typedef ptrdiff_t]: Do not assume this is gratuitously defined;
1643         include <stddef.h> to guarantee it.
1644
1645 2016-01-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
1646
1647         Enable selective definition of POSIX system types.
1648
1649         * include/sys/types.h (_SYS_TYPES_H): Do NOT define, if including with
1650         any specific __need_TYPE selector having been set prior to inclusion;
1651         DO define it when no such selector is present, and undefine all such
1652         selectors as may have been set, after evaluation of their effects.
1653         (_DEV_T_, _FPOS64_T_, _INO_T_, _MODE_T_, _OFF_T_, _OFF64_T_, _PID_T_)
1654         (_SIGSET_T_, _SSIZE_T_): Unnecessary guard macros; delete them; this
1655         accommodates reorganization of the file, to achieve a tidier layout.
1656         (__have_typedef_off_t): New repeat definition guard; define it for
1657         compilers which may choke on any repeated typedef for either of...
1658         (off_t, _off_t): ...these; make them selectively defineable for...
1659         [_SYS_TYPES_H && !__have_typedef_off_t]: ...non-selective inclusion...
1660         [__need_off_t && !__have_typedef_off_t]: ...this specific selection;
1661         in either case, redefine them in terms of...
1662         (__off32_t): ...this new internal type, for consistency with...
1663         (__off64_t): ...this previously defined non-standard type; also make
1664         it selectively defineable, either by...
1665         [_SYS_TYPES_H && !__have_typedef___off64_t]: ...non-selective, or...
1666         [__need_off_t && !__have_typedef___off64_t]: ...selective inclusion.
1667         (__have_typedef___off64_t): New repeat definition guard; define it.
1668         (ssize_t, _ssize_t): Also make them selectively defineable, on...
1669         [_SYS_TYPES_H && !__have_typedef_ssize_t]: ...non-selective, or...
1670         [__need_off_t && !__have_typedef_ssize_t]: ...selective inclusion.
1671         (__have_typedef_ssize_t): New repeat definition guard; define it.
1672
1673 2015-12-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
1674
1675         Avoid user namespace pollution by non-standard type 'off64_t'.
1676
1677         * include/sys/types.h (off64_t): Rename it as...
1678         (__off64_t): ...this implementation-private alternative name, so
1679         eliminating the potential for user namespace pollution.
1680
1681         * include/io.h (lseek64): Use '__off64_t', instead of 'off64_t', as
1682         return type, and type of offset argument, in both prototype and inline
1683         implementation; note that this addresses the issue of pollution in the
1684         user namespace, while avoiding the issue of MinGW-Bug [#2024].
1685
1686         * include/stdio.h (fseeko64, __mingw_fseeko64): Use '__off64_t'
1687         instead of 'off64_t', as offset argument type in function prototypes.
1688         (ftello64): Likewise, for return type of inline function.
1689
1690         * mingwex/mingw-fseek.c: Assert copyright; tidy layout.
1691         (WIN32_LEAN_AND_MEAN): Define, to minimize impact of <windows.h>.
1692         (__mingw_fseeko64): Use '__off64_t' per modified function prototype.
1693
1694         * mingwex/stdio/fseeko64.c: Assert copyright.
1695         (fseeko64): Use '__off64_t' per modified function prototype.
1696
1697 2015-12-27  Keith Marshall  <keithmarshall@users.sourceforge.net>
1698
1699         Improve ISO-C conformity in MinGW printf(); cf. MinGW-Bug [#1761]
1700
1701         * mingwex/ofmtctl.c: New file; it implements...
1702         (_mingw_output_format_control): ...this new function; it provides
1703         additional MinGW specific printf() format processing options.
1704
1705         * Makefile.in (libmingwex.a) [prerequisites]: Add ofmtctl.$OBJEXT
1706
1707         * include/stdio.h (_mingw_output_format_control): Declare it.
1708         (_EXPONENT_DIGIT_MASK, _MSVC_PRINTF_QUIRKS, _QUERY_MSVC_PRINTF_QUIRKS)
1709         (_ENABLE_MSVC_PRINTF_QUIRKS, _DISABLE_MSVC_PRINTF_QUIRKS): New
1710         manifest constant expressions; define them.
1711
1712         * mingwex/stdio/pformat.c: Revise licensing terms.
1713         (__pformat) [%le, %lE, %lf, %lF, %lg, %lG, %lx, %lX]: When...
1714         [_mingw_output_format_flag & _MSVC_PRINTF_QUIRKS == 0]: ...ignore `l'
1715         modifier; this matches the behaviour specified by ISO-C99, else...
1716         [_mingw_output_format_flag & _MSVC_PRINTF_QUIRKS != 0]: ...revert to
1717         previous MSVC compatible behaviour, treating it as an `L' modifier.
1718         [!_WIN32] (_MSVC_PRINTF_QUIRKS): Force the zero match case.
1719
1720         * mingwex/ofmt.c (ARGLIST): Subsume references to...
1721         (ARGTYPE): ...this now obsolete macro; delete it throughout.
1722         (update_output_format_flag): New inline function; it restricts flag
1723         operations to affect only Microsoft's exponent digit bits.
1724         [FUNCTION == _set_output_format]: Use it.
1725         [FUNCTION == _get_output_format]: Likewise.
1726
1727 2015-10-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
1728
1729         Make atof() and strtod() conform to ISO-C; fix MinGW-Bug [#2273]
1730
1731         * include/_mingw.h (_ISOC99_SOURCE): Ensure this feature test macro is
1732         defined, when implied by any STDC or POSIX version selection, viz. ...
1733         [__STDC_VERSION__ >= 199901L || _POSIX_C_SOURCE >= 200112L]: ...this.
1734
1735         * include/stdlib.h: Assert copyright; tidy layout.
1736         (_STDLIB_H_): Multiple inclusion guard macro renamed...
1737         (_STDLIB_H): ...to this, preferring no trailing underscore.
1738         [!defined __NO_ISOCEXT]: Delete double negative references; use...
1739         [defined _ISOC99_SOURCE]: ...this feature test instead, when...
1740         (lldiv_t): ...defining this C99 specific aggregate data type, and...
1741         (lldiv, llabs, atoll, strtoll, strtoull, strtof, strtold, wcstof)
1742         (wcstold, _Exit): ...declaring these C99 function prototypes.
1743         (wtoll, lltoa, ulltoa, lltow, ulltow): Mark as deprecated, pending
1744         future removal; not in MSVCRT.DLL, these conform to no known standard.
1745         [__USE_MINGW_ANSI_STDIO] (atof, strtod): Implement inline, using...
1746         (__strtod): ...this libmingwex.a provided function; it handles string
1747         representations of hexadecimal-floats, infinities and NaNs, whereas...
1748         (strtod): ...this MSVCRT.DLL implementation does not.
1749         (__MSVCRT_VERSION__): Prefer symbolic comparison...
1750         [>= __MSVCR80_DLL]: ...for this requirement.
1751
1752 2015-10-22  Keith Marshall  <keithmarshall@users.sourceforge.net>
1753
1754         Rationalize definition of struct timespec.
1755
1756         * include/parts/time.h (struct timespec): Redefine; use __time64_t for
1757         tv_sec field, in place of anonymous union, thus avoiding missing brace
1758         warnings when initializing; leave a copy of the previous definition...
1759         (struct __mingw32_expanded_timespec): ...named thus.
1760
1761         * include/unistd.h (nanosleep): Adjust inline implementation, to match
1762         altered specification of tv_sec field in struct timespec.
1763
1764         * include/_mingw.h (_MINGW32_EXTENDED_SOURCE): New feature test macro.
1765         [! defined __STRICT_ANSI__]: Define it, making it a default feature.
1766
1767         * include/time.h [_MINGW32_EXTENDED_SOURCE] (mingw_timespec): New
1768         convenience function; defined as inline, with __LIBIMPL__ equivalent,
1769         it facilitates interpretation of an instance of struct timespec as if
1770         it were defined as struct __mingw32_expanded_timespec.
1771
1772 2015-09-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
1773
1774         Make strings.h mostly POSIX.1-2008 compliant.
1775
1776         * include/strings.h: Rewritten.  Do not include...
1777         (string.h): ...this; mandated by POSIX.1, it now defines...
1778         (strcasecmp, strncasecmp): ...these POSIX.1 functions, complete with
1779         prototypes, possible in-line implementations, and JMPSTUB references
1780         to corresponding external implementations, which will now become
1781         automatically created within libmingwex.a
1782
1783         * include/parts/strings.h: New file; it declares prototypes for...
1784         (_stricmp, _strnicmp): ...these MSVC functions; nominally declared in
1785         string.h, but we also require them in strings.h
1786
1787         * include/parts/wchar.h: New file; it declares prototypes for all wide
1788         character functions which MSVC specifies in both wchar.h and string.h
1789
1790         * include/string.h: Miscellaneous layout adjustments.
1791         (strcasecmp, strncasecmp): Delete; they belong in strings.h
1792         (_stricmp, _strnicmp): Factor out; include them from parts/strings.h
1793         [!_WSTRING_DEFINED]: Factor out all associated function prototypes;
1794         include them from parts/wchar.h instead.
1795
1796         * include/wchar.h [!_WSTRING_DEFINED]: Delete all associated function
1797         prototypes; include them from parts/wchar.h instead, so making this
1798         guard macro redundant; delete it.
1799
1800         * Makefile.in (strcasecmp.$OBJEXT, strncasecmp.$OBJEXT)
1801         (wcscmpi.$OBJEXT): Implementations are now automatically generated
1802         from header file, for inclusion in libmingwex.a; remove free-standing
1803         implementations from the entire family of liboldname libraries, and...
1804         * strcasecmp.c strncasecmp.c wcscmpi.c: ...delete corresponding source
1805         files; they are no longer required.
1806
1807 2015-07-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
1808
1809         Incorporate build system updates from w32api package.
1810
1811         * Makefile.in (NTDDI_VERSION): Set default to NTDDI_WINNT4.
1812         (mkinstalldirs, INSTALL_DATA): Reimplement to support $(call ...)
1813         (install-strip, uninstall): New make command goals; implement them.
1814         (mingwrt-dist-staged): Use 'install-strip' in this rule; hence...
1815         (devdist, dlldist): ...these have no need to strip explicitly.
1816         (INSTALL_SUB_HEADERS): New macro; implement it, and use it...
1817         (install-mingwrt-headers): ...here.
1818
1819 2015-07-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
1820
1821         Adapt platform feature checks to NTDDI_VERSION conventions.
1822
1823         * include/_mingw.h: Assert copyright; include w32api.h
1824         (UNICODE, _UNICODE): Factor out consistency checks; relocate them
1825         to w32api/include/w32api.h, whence they remain in effect.
1826         (_EXTERN_C, _BEGIN_C_DECLS, _END_C_DECLS): Likewise.
1827
1828 2015-07-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
1829
1830         Correct mismatched #if/#endif from preceding commit.
1831
1832         * include/_mingw.h (#pragma GCC system_header)
1833         [__GNUC__ >= 3 && ! defined __PCC__]: Merge these conditions, thus
1834         correcting for inadvertent removal of matching #endif introduced by
1835         preceding 2015-06-19 commit.
1836
1837 2015-06-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
1838
1839         Define symbolic names for alternative Microsoft runtime DLLs.
1840
1841         * include/msvcrtver.h: New file; it assigns a value for...
1842         (__MSVCRT_VERSION__): ...this, making its default equivalent to...
1843         (__MSVCR60_DLL): ...this new manifest constant, with each of...
1844         (__MSVCR61_DLL, __MSVCR70_DLL, __MSVCR71_DLL, __MSVCR80_DLL)
1845         (__MSVCR90_DLL, __MSVCR100_DLL, __MSVCR110_DLL, __MSVCR120_DLL):
1846         ...these also defined, as user assignable alternatives.
1847
1848         * include/_mingw.h (__MSVCRT_VERSION__): Use include/msvcrtver.h
1849         to establish its default value.
1850
1851 2015-06-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
1852
1853         Track dependencies on modified system header files.
1854
1855         * Makefile.in (DEPFLAGS): Use -MD, rather than -MMD.
1856
1857 2015-06-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
1858
1859         Correct an anomaly in stage 1 only build procedure.
1860
1861         * Makefile.in (all-gcc): New goal; it is an alias for...
1862         (all-mingwrt-stage-1): ...this, renamed to match configure, as...
1863         (all-mingwrt-stage-1-only): ...this; upate all references.
1864         (active-goals): Adjusted accordingly; it now reguires...
1865         (all-deprecated-mingwrt-stage-1-only): ...this new goal.
1866         (install): Adjusted, as directed by...
1867         (DEFAULT_MAKECMDGOALS): ...this.
1868
1869 2015-06-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
1870
1871         Prefer our hypot() implementation in complex maths operations.
1872
1873         * mingwex/complex/cabs_generic.c: New file; it replaces...
1874         * mingwex/complex/cabs.c mingwex/complex/cabsf.c: ...all of...
1875         * mingwex/complex/cabsl.c: ...these.
1876
1877         * mingwex/complex/catan_generic.c: New file; it replaces...
1878         * mingwex/complex/catan.c mingwex/complex/catanf.c: ...all of...
1879         * mingwex/complex/catanl.c: ...these.
1880
1881         * mingwex/complex/clog_generic.c: New file; it replaces...
1882         * mingwex/complex/clog.c mingwex/complex/clogf.c: ...all of...
1883         * mingwex/complex/clogl.c: ...these.
1884
1885         * mingwex/complex/cpow_generic.c: New file; it replaces...
1886         * mingwex/complex/cpow.c mingwex/complex/cpowf.c: ...all of...
1887         * mingwex/complex/cpowl.c: ...these.
1888
1889         * mingwex/complex/csqrt_generic.c: Do not use...
1890         (_hypot): ...this Microsoft form of function reference; use...
1891         (hypot): ...this ANSI standard form instead.
1892
1893 2015-06-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
1894
1895         Correct C++ compilation anomaly with hypotf() in cmath header.
1896
1897         * include/math.h: Add copyright notice; generally tidy layout.
1898         (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
1899         (hypotf): Delete inline implementation; it did not properly handle
1900         range errors, and was uncompilable with optimization when any g++
1901         option implying __STRICT_ANSI__ conformity was specified.
1902         (_MATH_H_): Rename this multiple inclusion guard...
1903         (_MATH_H): ...to this.
1904
1905         * mingwex/math/hypot_generic.c: New file; it implements...
1906         (hypot, hypotf, hypotl): ...these; use the latter pair in place of...
1907         * mingwex/math/hypotf.c mingwex/math/hypotl.c: ...these; delete them.
1908
1909 2015-06-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
1910
1911         Prepare and tag all files for release of mingwrt-3.21.1.
1912
1913         * configure.ac (AC_INIT): Adjust package version argument.
1914         * include/_mingw.h (__MINGW32_PATCHLEVEL): Increment to 1, and...
1915         (__MINGW32_VERSION): ...increment this to match.
1916
1917 2015-05-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
1918
1919         Refactor to avoid possible time_t conflicts across headers.
1920
1921         * include/parts/time.h (struct timespec): Make it more descriptive of,
1922         and better able to accommodate, potential ambiguity relating to...
1923         (time_t, __time32_t, __time64_t): ...these typedefs; define them here,
1924         whence they may be identically imported into each of...
1925         * include/sys/types.h include/time.h include/wchar.h: these; delete
1926         duplicate typedefs, and import accordingly.
1927
1928         * include/sys/types.h: Add licence; general comment additions.
1929         (_TYPES_H_): Rename multiple inclusion guard macro...
1930         (_SYS_TYPES_H): ...to this.
1931
1932         * include/time.h: Add licence; general comment/layout adjustments.
1933         (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
1934         (_TIME_T_DEFINED, _TIME32_T_DEFINED, _TIME64_T_DEFINED)
1935         (_CLOCK_T_DEFINED): Superfluous guard macros; delete them.
1936         (_TIME_H_): Rename multiple inclusion guard macro...
1937         (_TIME_H): ...to this.
1938
1939         * include/unistd.h (nanosleep): Adjust to accommodate redefinition...
1940         (struct timespec): ...of this.
1941
1942         * include/wchar.h: Add licence; general comment/layout adjustments.
1943         (_BEGIN_C_DECLS, _END_C_DECLS): Use to wrap extern "C" declarations.
1944         [GCC] (system_header): Add pragma, identifying header as such.
1945         (_WCHAR_H_): Rename multiple inclusion guard macro...
1946         (_WCHAR_H): ...to this.
1947
1948 2015-05-09  Keith Marshall  <keithmarshall@users.sourceforge.net>
1949
1950         Remove obsolete varargs.h header file.
1951
1952         * include/varargs.h: Delete it; it was a mostly redundant wrapper for
1953         a GCC header which is no longer supported, and was always intended for
1954         ultimate removal; now is the long overdue time to do so.
1955
1956 2015-05-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
1957
1958         Correct improper unistd.h function attribute declarations.
1959
1960         * include/unistd.h (_cdecl): Correct usage throughout; should be...
1961         (__cdecl): ...this.
1962
1963 2015-03-12  Keith Marshall  <keithmarshall@users.sourceforge.net>
1964
1965         Fix GLOB_DOOFFS initialization bug.
1966
1967         * mingwex/glob.c (__mingw_glob) [!GLOB_DOOFFS]: Ensure...
1968         (gl_data->gl_offs): ...this is properly initialized to zero.
1969
1970 2014-12-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
1971
1972         Tag all files for release of mingwrt-3.21.
1973
1974         * include/_mingw.h: Adjust version accordingly.
1975
1976 2014-12-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
1977
1978         Improve usage notes in stdlib.h, for mkstemp() function.
1979
1980         * include/stdlib.h (MKSTEMP_SETMODE): Explain usage; this is a copy of
1981         an original comment, explaining the need to use  _O_TEMPORARY, from...
1982         * mingwex/mkstemp.c: ...here; delete trailing white space.
1983
1984 2014-12-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
1985
1986         Eliminate some potential definition inconsistencies.
1987
1988         * include/stdio.h: Cosmetic formatting change, relating to...
1989         * include/unistd.h (SEEK_SET, SEEK_CUR, SEEK_END): Define them
1990         unconditionally; this allows the compiler to check for consistency
1991         with their primary definitions in stdio.h
1992
1993 2014-12-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
1994
1995         Suppress expected warning diagnostics in LIBIMPL builds.
1996
1997         * Makefile.in (LIBIMPL_CFLAGS): Redefine it; it now incorporates...
1998         (LIBIMPL_EXTRA_CFLAGS): ...this new macro; it includes the requisite
1999         GCC flag to supress warnings relating to deprecated declarations.
2000
2001 2014-12-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
2002
2003         Provide more POSIX conforming sleep() functions.
2004
2005         * include/sys/types.h (useconds_t): Make it explicitly long; int may
2006         be okay, but doesn't guarantee enough bits; mark as deprecated, since
2007         POSIX has declared it "obsolete", and no longer specifies it.
2008
2009         * mingwex/usleep.c: Delete file; it provided an implementation of...
2010         (usleep): ...this now obsolete function, claiming POSIX.1 issue 6, but
2011         its error handling was hopelessly broken; replace it with...
2012         * mingwex/nsleep.c: ...this new file; it implements...
2013         (__mingw_sleep): ...this generic helper function; it supports sleep
2014         capability with interval specification to nanosecond precision.
2015
2016         * include/unistd.h (__mingw_sleep): Declare prototype; use it as the
2017         basis for providing __LIBIMPL__ __CRT_INLINE implementations of...
2018         (sleep, nanosleep): ...these current POSIX functions, and also...
2019         (usleep): ...this obsolete one; mark it as deprecated.
2020
2021         * include/parts: New directory; it is intended to host partial header
2022         implementations, for content which must be shared among arbitrary sets
2023         of multiple standard header files.
2024
2025         * include/parts/time.h: New file; nominally declaring time.h content.
2026         (struct timespec): Declare it; it is currently used within unistd.h,
2027         to facilitate the __CRT_INLINE implementation of nanosleep().
2028
2029         * Makefile.in (libmingwex.a): Remove reference to...
2030         (usleep.$OBJEXT): ...this; replace it with a reference to...
2031         (nsleep.$OBJEXT): ...this alternative.
2032         (mingwrt-includedirs): Add prerequisite to create...
2033         ($includedir/parts): ...this new directory; it is populated by...
2034         (install-mingwrt-headers): ...this rule; add requisite command.
2035
2036 2014-12-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
2037
2038         Delete an unnecessary Unicode wrapper file.
2039
2040         * mingwex/wdirent.c: Delete it; Makefile.in knows how to compile the
2041         UTF-16LE API from dirent.c, without any need for this wrapper.
2042
2043 2014-12-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
2044
2045         Some further inline function rationalization.
2046
2047         * include/io.h (_CRTALIAS): Replace all references...
2048         (__CRT_ALIAS): ...using this syntactically preferred form.
2049         (lseek64): Specify __JMPSTUB__ semantics for extern implementation.
2050         [__cplusplus] (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
2051
2052         * include/unistd.h (ftruncate): Specify __JMPSTUB__ semantics.
2053         [__cplusplus] (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
2054
2055         * mingwex/stdio/lseek64.c: File is now redundant; delete it.
2056         * mingwex/ftruncate.c: Likewise.
2057
2058         * Makefile.in (libmingwex.a): Delete obsolete dependencies on...
2059         (lseek64.$OBJEXT, ftruncate.$OBJEXT): ...these.
2060
2061 2014-12-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
2062
2063         Some POSIX feature test adjustments.
2064
2065         * include/stdlib.h (mkstemp): Available since SUSv3, so requires...
2066         [_POSIX_C_SOURCE >= 200112L]: ...this minimum level of POSIX support.
2067         (mkdtemp): This didn't become available until SUSv4, so requires...
2068         [_POSIX_C_SOURCE >= 200809L]: ...this increased feature level.
2069
2070 2014-12-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
2071
2072         Another CRT_INLINE function implementation rationalization.
2073
2074         * include/inttypes.h (imaxabs): Specify as __LIBIMPL__; declare...
2075         (llabs): ...this, to be implemented as its __LIBIMPL__ alias.
2076         [__cplusplus] (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
2077
2078         * Makefile.in (libimpl_sed_script): Handle ALIAS attribute.
2079         (libmingwex.a): Delete obsolete dependency on...
2080         (imaxabs.$OBJEXT): ...this.
2081
2082         * mingwex/imaxabs.c: File is now redundant; delete it.
2083
2084 2014-12-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
2085
2086         More rationalization of CRT_INLINE function implementations.
2087
2088         * include/stdio.h (fopen64): Add __JMPSTUP__ specification.
2089         (ftello64): Add __LIBIMPL__ specification for extern implementation.
2090         [__cplusplus] (_BEGIN_C_DECLS, _END_C_DECLS): Use these.
2091
2092         * mingwex/stdio/fopen64.c: File is now redundant; delete it.
2093         * mingwex/stdio/ftell064.c: Likewise.
2094
2095         * Makefile.in (libmingwex.a): Delete obsolete dependencies on...
2096         (fopen64.$OBJEXT, ftello64.$OBJEXT): ...these.
2097
2098 2014-12-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
2099
2100         Don't implicitly define _POSIX_C_SOURCE too early.
2101
2102         * include/_mingw.h (_POSIX_C_SOURCE): Delay implict definition.
2103         (__USE_MINGW_ANSI_STDIO): This must be initialized first, to ensure
2104         that it is not accidentally activated by implied _POSIX_C_SOURCE.
2105
2106 2014-12-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
2107
2108         Correct complex arcsin computation per issue [#2245].
2109
2110         * mingwex/complex/casin_generic.c: New file; it replaces...
2111         * mingwex/complex/casin.c: ...this; it is now obsolete; delete it.
2112         * mingwex/complex/casinf.c mingwex/complex/casinl: Likewise.
2113
2114 2014-12-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
2115
2116         Correct complex square root computation per issue [#2246].
2117
2118         * include/math.h (hypotf): Redirect __CRT_INLINE call to...
2119         (_hypot): ...this MSVCRT.DLL exported function, so avoiding...
2120         (hypot): ...this libmoldname.a indirection.
2121
2122         * mingwex/complex/csqrt_generic.c: New file; it replaces...
2123         * mingwex/complex/csqrt.c: ...this; it is now obsolete; delete it.
2124         * mingwex/complex/csqrtf.c mingwex/complex/csqrtl: Likewise.
2125
2126 2014-12-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
2127
2128         Adjust header guards to resolve issue [#2244].
2129
2130         * include/_mingw.h (_POSIX_C_SOURCE): Define it implicitly...
2131         [_GNU_SOURCE || _BSD_SOURCE || _POSIX_SOURCE || !__STRICT_ANSI__]:
2132         ...when any of these prevail, or as appropriate to correspond with...
2133         [_XOPEN_SOURCE]: ...this; set conformance level accordingly.
2134
2135         * include/math.h [_POSIX_C_SOURCE || defined _USE_MATH_DEFINES]
2136         (M_E, M_LOG2E, M_LOG10E, M_LN2, M_LN10, M_PI, M_PI_2, M_PI_4, M_1_PI)
2137         (M_2_PI, M_2_SQRTPI, M_SQRT2, M_SQRT1_2): Define them, irrespective...
2138         [__STRICT_ANSI__]: ...of this; replace guard accordingly.
2139
2140 2014-12-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
2141
2142         Add implementation of mkstemp() and mkdtemp() functions.
2143
2144         * mingwex/cryptnam.c: New file; it implements...
2145         (__mingw_crypto_tmpname): ...this helper function; it generates a
2146         cryptographically secure sequence of characters, used as the random
2147         component in temporary file and directory names.
2148
2149         * mingwex/mkstemp.c: New file; it implements...
2150         (__mingw_mkstemp): ...this provider of mkstemp() functionality.
2151
2152         * mingwex/mkdtemp.c: New file; it implements...
2153         (__mingw_mkdtemp): ...this provider of mkdtemp() functionality.
2154
2155         * include/stdlib.h (mkstemp): Declare protototye; provide an inline
2156         function implementation, with LIBIMPL extern semantics, in terms of...
2157         (__mingw_mkstemp): ...this; also declare prototype, and define...
2158         (_MKSTEMP_INVOKE, _MKSTEMP_DEFAULT): ...these supporting constants.
2159         (_MKSTEMP_SETMODE): New macro; define it, also providing...
2160         (MKSTEMP_SETMODE) [!_NO_OLDNAMES]: ...this alias.
2161         (mkdtemp): Declare prototype; provide inline implementation, with
2162         JMPSTUB extern semantics, in terms of...
2163         (__mingw_mkdtemp): ...this; declare prototype.
2164
2165         * Makefile.in (libmingwex.a): Add dependency rule, to include...
2166         (mkstemp.$OBJEXT, mkdtemp.$OBJEXT, cryptname.$OBJEXT): ...these.
2167
2168 2014-11-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
2169
2170         More JMPSTUB rationalization of inline functions.
2171
2172         * include/stdlib.h (_Exit, atoll, lltoa, ulltoa, wtoll, lltow)
2173         (ulltow): Add __JMPSTUB__ declarations; each is REMAPPED to its
2174         appropriate MSVCRT.DLL equivalent entry point.
2175
2176         * mingwex/_Exit.c: File is now redundant; delete it.
2177         * mingwex/atoll.c mingwex/lltoa.c mingwex/ulltoa: Likewise.
2178         * mingwex/wtoll.c mingwex/lltow.c mingwex/ulltow: Likewise.
2179
2180         * Makefile.in (jmpstub_awk_script): Add support for...
2181         [__JMPSTUB__((REMAPPED))]: ...this stub function attribute.
2182         (libmingwex.a): Remove dependencies on deleted files, namely...
2183         (_Exit.$OBJEXT, atoll.$OBJEXT, lltoa.$OBJEXT, ulltoa.$OBJEXT)
2184         (wtoll.$OBJEXT, lltow.$OBJEXT, ulltow.$OBJEXT): ...these.
2185
2186 2014-11-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
2187
2188         Correct omission of complex conjugate functions from libmingwex.a
2189
2190         * include/complex.h (conj, conjf, conjl): Add LIBIMPL declarations.
2191         (creal, crealf, creall): Likewise, for consistency of implementation.
2192         (cimag, cimagf, cimagl, carg, cargf, cargl): Likewise.
2193
2194         * Makefile.in (libimpl_sed_script): Add processing for __CRT_INLINE
2195         declarations; they should be interpreted analogously to __CRT_ALIAS.
2196         (libmingwex.a): Remove object file references for functions which are
2197         now declared as LIBIMPL, and sort the remainder in ASCII collating
2198         order; deleted function references comprise the set consisting of...
2199         (carg.$OBJEXT, cargf.$OBJEXT, cargl.$OBJEXT): ...these...
2200         (creal.$OBJEXT, crealf.$OBJEXT, creall.$OBJEXT): ...these, and...
2201         (cimag.$OBJEXT, cimagf.$OBJEXT, cimagl.$OBJEXT): ...these.
2202
2203         * mingwex/complex/carg.c: Replaced by LIBIMPL; delete it.
2204         * mingwex/complex/cargf.c mingwex/complex/cargl.c: Likewise.
2205         * mingwex/complex/creal.c mingwex/complex/cimag.c: Likewise.
2206         * mingwex/complex/crealf.c mingwex/complex/cimagf.c: Likewise.
2207         * mingwex/complex/creall.c mingwex/complex/cimagl.c: Likewise.
2208
2209 2014-11-24  Keith Marshall  <keithmarshall@users.sourceforge.net>
2210
2211         Back-port improved asinh() implementation from 4.0-dev branch.
2212
2213         * mingwex/math/asinh_generic.c: New file; it replaces...
2214         * mingwex/math/asinh.c mingwex/math/asinhf.c mingwex/math/asinhl.c:
2215         ...all of these; delete them.
2216
2217 2014-11-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
2218
2219         Enable remake of lost LIBIMPL object files.
2220
2221         * Makefile.in (libimpl_remake): New macro; define it, and...
2222         (%.libimpl.$OBJEXT) [%.libimpl exists]: ...use it in build rule.
2223
2224 2014-11-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
2225
2226         Implement more robust _get_output_format fallback handling.
2227
2228         * mingwex/ofmt.c: New file; it implements...
2229         (__mingw_output_format_flag): ...backing store, used by...
2230         (__mingw_get_output_format, __mingw_set_output_format): ...these
2231         MSVCRT.DLL version agnostic wrappers/emulators for each of these...
2232         (_get_output_format, _set_output_format): ...MSVCR80.DLL and later
2233         version specific Microsoft APIs, which are also supported by some
2234         later versions of MSVCRT.DLL, (excluding WinXP and earlier).
2235         (__mingw_get_output_format_fallback): Implement; it is aliased to...
2236         (__mingw_set_output_format_fallback): ...this; together they provide
2237         the emulation support for the preceding pair of functions, when they
2238         are not available within the run-time platform MSVCRT.DLL
2239         (__mingw_get_printf_count_output, __mingw_set_printf_count_output):
2240         Implement them; they wrap, and if necessary emulate...
2241         (_get_printf_count_output, _set_printf_count_output): ...these.
2242         (__mingw_get_printf_count_output_fallback): Implement; aliased to...
2243         (__mingw_set_printf_count_output_fallback): ...this; together they are
2244         required to support emulation of the preceding pair of functions, when
2245         they are not available within the run-time platform MSVCRT.DLL
2246
2247         * include/stdio.h (_TWO_DIGIT_EXPONENT): Define it unconditionally.
2248         (_THREE_DIGIT_EXPONENT): New manifest constant; define it orthogonally.
2249         (__mingw_get_output_format, __mingw_set_output_format)
2250         (__mingw_get_printf_count_output, __mingw_set_printf_count_output):
2251         Unconditionally declare their prototypes, for subsequent inline use.
2252         [_MSVCRT_VERSION__ < 0x800] (_get_output_format): Emulate it inline.
2253         [_MSVCRT_VERSION__ < 0x800] (_set_output_format): Likewise.
2254         [_MSVCRT_VERSION__ < 0x800] (_get_printf_count_output): Likewise.
2255         [_MSVCRT_VERSION__ < 0x800] (_set_printf_count_output): Likewise.
2256         (__USE_MINGW_PRINTF): New manifest constant; define it. It is a
2257         counterpart to __USE_MINGW_ANSI_STDIO, which is guaranteed to always
2258         represent a compilable token.
2259
2260         * mingwex/stdio/pformat.c (__pformat_exponent_digits): Do not require
2261         _get_output_format; consult __mingw_output_format_flag directly.
2262
2263         * ofmt_stub.s: No longer required; delete it.
2264
2265         * Makefile.in (ofmt_stub.$OBJEXT): Delete reference.
2266         (PFORMAT_CFLAGS) [__MSVCRT_VERSION__ = 0x800]: Remove requirement.
2267         (varofmt.$OBJEXT, crtofmt.$OBJEXT, getofmt.$OBJEXT, setofmt.$OBJEXT)
2268         (crtnfmt.$OBJEXT, getnfmt.$OBJEXT, setnfmt.$OBJEXT): Add build rule;
2269         all are compiled from ofmt.c
2270
2271 2014-11-16  Keith Marshall  <keithmarshall@users.sourceforge.net>
2272
2273         Do some more essential build tree clean up.
2274
2275         * Makefile.in (mostly-clean-local): Add *.libimpl; matching files get
2276         in the way of a successful rebuild from clean.
2277
2278 2014-11-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
2279
2280         Implement wrappers for emulation of POSIX dlfcn API.
2281
2282         * include/dlfcn.h: New file; it declares the API.
2283         * mingwex/dlfcn.c: New file; implement it, with access via...
2284         (__mingw_dlfcn): ...this publicly addressable vector table.
2285
2286         * Makefile.in (dlfcn.$OBJEXT): Add build requisite.
2287         (dlopen, dlsym, dlclose, dlerror): Build call stubs, using...
2288         (__LIBIMPL__): ...this automatic interface generator; implement it.
2289         (libstub_refnames): New macro; it is adapted from and replaces...
2290         (jmpstub_refs): ...this; when it is then invoked twice to build...
2291         (Makefile.stub): ...this, it handles both JMPSTUB and LIBIMPL.
2292         (jmpstub_awk_script): Adapt it to work with 'libstub_refnames'.
2293         (libimpl_awk_script): New inline script; it handles automated builds
2294         of LIBIMPL interfaces, as 'jmpstub_awk_script' does for JMPSTUB.
2295         (libimpl_sed_script): New inline script; it prepares intermediate C
2296         source code for LIBIMPL interfaces, as required to satisfy these...
2297         (%.libimpl, %.libimpl.$OBJEXT): ...new implicit build objectives.
2298         (LIBIMPL_CFLAGS): New macro; define it.
2299
2300 2014-11-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
2301
2302         Move libgen functions to __mingw_ pseudo-namespace.
2303
2304         * mingwex/dirname.c (dirname): Rename function, as implemented...
2305         (__mingwex_dirname): ...to this.
2306
2307         * mingwex/basename.c (basename): Rename function, as implemented...
2308         (__mingwex_basename): ...to this.
2309
2310         * include/libgen.h (__mingw_dirname, __mingw_basename): Declare
2311         prototypes, matching and augmenting original declarations for...
2312         (dirname, basename): ...these; reimplement as inline aliases, with
2313         __JMPSTUB__ references to the renamed implementation entry points.
2314
2315 2014-11-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
2316
2317         Implement new command line argument globbing strategy.
2318
2319         * include/_mingw.h: Backport feature defines from master...
2320         (__CRT_GLOB_USE_MINGW__, __CRT_GLOB_USE_MSVCRT__): New manifest
2321         constants; define them.  They select the preferred globbing algorithm.
2322         [_CRT_glob & __CRT_GLOB_USE_MINGW__] (__CRT_GLOB_USE_SINGLE_QUOTE__)
2323         (__CRT_GLOB_BRACKET_GROUPS__, __CRT_GLOB_CASE_SENSITIVE__): New option
2324         bit-map constants; define them.  When added to __CRT_GLOB_USE_MINGW__,
2325         they enable optional additional features supported by this algorithm.
2326         (__CRT_GLOB_ESCAPE_CHAR__): New manifest constant; define it.
2327
2328         * CRTglob.c (_CRT_glob): Change default to __CRT_GLOB_USE_MINGW__.
2329
2330         * Makefile.in (libmingw32.a): Add setargv.$OBJEXT, furnished by...
2331         * setargv.c: ...new file; it implements the initialization mechanism
2332         for the __CRT_GLOB_USE_MINGW__ globbing algorithm, when invoked by...
2333         (_setargv) [_CRT_glob & __CRT_GLOB_USE_MINGW__]: ...this new function;
2334         it invokes the algorithm via an API similar to that described by MSDN,
2335         while continuing to support our original _CRT_glob interpretation.
2336         (_setargv) [! _CRT_glob & __CRT_GLOB_USE_MINGW__]: Invoke Microsoft
2337         algorithm, via the MSDN-alike API, by calling back to...
2338
2339         * crt1.c (_mingw32_init_mainargs): ...this original function, now
2340         relocated to here, as a publicly addressable function; formerly...
2341         (__mingw_CRTStartup): ...called directly from here, we now redirect
2342         the call through _setargv(), whence it may be called indirectly.
2343
2344         * init.c: Redundant file; delete it.  It originally provided...
2345         (_mingw32_init_mainargs): ...this, now relocated as noted above, with
2346         original static attribute removed, to allow global addressing.
2347
2348 2014-11-07  Keith Marshall  <keithmarshall@users.sourceforge.net>
2349
2350         Backport glob implementation from master to legacy.
2351
2352         * include/glob.h: New file; copy it from master branch.
2353         (__mingw_glob, __mingw_globfree): Add __JMPSTUB__ aliases for...
2354         (glob, globfree): ...each of these, respectively.
2355
2356         * mingwex/glob.c: New file; copy it from master:src/libcrt/misc.
2357         (CRT_GLOB_HARD_ESCAPE) [ifndef __CRT_GLOB_ESCAPE_CHAR__]: Provide a
2358         fallback definition; default value is ASCII DEL, a.k.a. RUBOUT, code.
2359         (accept_glob_nocheck_match): New static function; it adds support for
2360         avoidance of globbing on patterns with no globbing token, so avoiding
2361         the case transliteration effect reported as MinGW-Bug #2106.
2362         (glob_match): Use it.
2363
2364         * Makefile.in: Build glob.$OBJEXT; add it to libmingwex.a
2365
2366 2014-11-05  Keith Marshall  <keithmarshall@users.sourceforge.net>
2367
2368         Implement conventionally named dirent function trampolines.
2369
2370         * mingwex/jmpstub.sx: New file; it implements a generic trampoline,
2371         which redirects a conventionally named function call to its __mingw_
2372         pseudo-namespace implementation.
2373
2374         * aclocal.m4 (MINGW_AC_PROG_COMPILE_SX): New macro; define it.
2375         * configure.ac (MINGW_AC_PROG_COMPILE_SX): Use it; it identifies the
2376         appropriate protocol for compiling *.sx files, (supported natively by
2377         GCC >= v4.3, but older versions require `-x assembler-with-cpp').
2378
2379         * Makefile.in (COMPILE.sx): New implicit rule; GNU make does not
2380         yet provide it, so we define it ourselves; deploy it for *.sx files.
2381         (Makefile.stub): New sinclude file; create it dynamically, using...
2382         (jmpstub_awk_script): ...this new inline script, which is based on...
2383         (jmpstub_refs, jmpstub_prerequisites): ...these new macros, and...
2384         (mingwex/jmpstub.sx): ...this new file; add vpath reference.
2385         (mostlyclean-local): Remove Makefile.stub; do likewise...
2386         (Makefile): ...when remaking this, to ensure that both will be
2387         remade together.
2388
2389 2014-11-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
2390
2391         Make dirent implementation namespace and time_t clean.
2392
2393         * include/_mingw.h (_EXTERN_C, _BEGIN_C_DECLS, _END_C_DECLS): New
2394         macros; define them.  They facilitate identification of symbols which
2395         must be compiled with `extern "C"' binding, when compiling C++ code.
2396         (__CRT_ALIAS): New macro; define it.  It is intended to replace...
2397         (_CRTALIAS): ...this, which is to be considered as deprecated.
2398         (__JMPSTUB__, __LIBIMPL__): New macros; define them.  They provide
2399         __CRT_ALIAS build hints, while remaining transparent to GCC.
2400         (UNICODE, _UNICODE) [user defined]: Define consistently.
2401
2402         * mingwex/dirent.c: Reimplement; (this is a back-port from the
2403         4.0-dev branch, with additional ABI changes to improve stability).
2404         (opendir, readdir, telldir, seekdir, rewinddir, closedir)
2405         (_wopendir, _wreaddir, _wtelldir, _wseekdir, _wrewinddir, _wclosedir):
2406         Add `__mingw_' prefix to all publicly exposed symbol names.
2407         (dirent_findfirst, dirent_findnext, dirent_findclose): New locally
2408         implemented functions; they replace Microsoft's ambiguously defined
2409         _findfirst, _findnext, and _findclose, so avoiding ABI instability
2410         resulting from the ambiguous size of Microsoft's time_t.
2411
2412         * include/dirent.h (struct dirent, struct _wdirent): Redefine them,
2413         removing unnecessary time_t and file size fields; (our replacements
2414         for _findfirst, and _findnext do not require them to be present).
2415         (DIR, _WDIR): Adjust typedefs; they are now opaque structs.
2416         (opendir, readdir, telldir, seekdir, rewinddir, closedir)
2417         (_wopendir, _wreaddir, _wtelldir, _wseekdir, _wrewinddir, _wclosedir):
2418         Adjust prototypes, making them inline aliases for public symbols which
2419         are now qualified by the `__mingw_' prefix; add build hints to support
2420         compilation of addressable stubs, with the original symbol names.
2421         (DT_REG, DT_DIR, DT_UNKNOWN): New manifest constants; define them.
2422         (DT_BLK, DT_CHR, DT_FIFO, DT_LNK, DT_SOCK): Likewise; (these are for
2423         BSD compatibility, but are fundamentally unsupported on MS-Windows).
2424         (_DIRENT_HAVE_D_TYPE, _DIRENT_HAVE_D_RECLEN, _DIRENT_HAVE_D_NAMLEN):
2425         New macros; define them.  (These show availability of optional fields
2426         within the dirent struct, which client code may wish to access).
2427
2428 2014-10-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
2429
2430         Correct improper naming of assembly language source files.
2431
2432         * mingwex/math/*.S: Rename all files with this extension...
2433         * mingwex/math/*.s: ...to this; (all are simple assembly language, and
2434         not extended `assembler-with-cpp' as implied by the former extension);
2435         adjust all internal `.file <name>' references accordingly.
2436
2437         * Makefile.in (vpath %.S): Adjust reference to locate files....
2438         (vpath %.s): ...now renamed thus.
2439
2440 2014-10-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
2441
2442         Streamline the build system infrastructure.
2443
2444         * configure.ac: New file; it replaces...
2445         * configure.in: ...this; (name is obsolete); delete it.
2446
2447         * aclocal.m4 Makefile.in: Substantially rewritten; avoid recursive
2448         make invocations, when processing subdirectories, and add automatic
2449         dependency tracking for all generated files.
2450
2451         * configure: Delete it; as a generated file, it doesn't belong in SCM.
2452
2453         * mingwex/Makefile.in: No longer required; delete it.
2454         * profile/Makefile.in: Likewise.
2455
2456         * mkinstalldirs: Not required; delete it; (make should use `mkdir -p',
2457         or fall back on `install-sh -d', per AC_PROG_MKDIR_P).
2458
2459         * jamfile: Delete it; it hasn't been updated in ages, is likely no
2460         longer relevant, and I have no desire to maintain it.
2461
2462 2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
2463
2464         Add another more rigorous __STRICT_ANSI__ filter.
2465
2466         * include/limits.h [__STRICT_ANSI__] (PATH_MAX): Suppress definition.
2467         * include/sys/param.h [PATH_MAX defined] (MAXPATHLEN): Alias it.
2468         [PATH_MAX not defined] (MAXPATHLEN): Define it directly.
2469
2470 2012-08-02  Ivan Maidanski  <ivmai@users.sourceforge.net>
2471
2472         Add missing function prototypes per issue [#1305].
2473
2474         * include/process.h [#ifndef _WPROCESS_DEFINED]
2475         (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve)
2476         (_wexecvp, _wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe)
2477         (_wspawnv, _wspawnve, _wspawnvp, _wspawnvpe): Declare them.
2478
2479 2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
2480
2481         Add function prototype declarations per issue [#1293].
2482
2483         * include/stdio.h (_lock_file, _unlock_file): Declare them.
2484
2485 2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
2486
2487         Apply some more rigorous __STRICT_ANSI__ filtering.
2488
2489         * include/stdio.h (_getws, _putws, _wfdopen, _wfopen)
2490         (_wfreopen, _wfsopen, _wtmpnam, _wtempnam, _wrename, _wremove)
2491         (_wperror, _wpopen): Do not declare these functions unless...
2492         [#ifndef __STRICT_ANSI__]: ...this is satisfied.
2493
2494 2012-08-02  Earnie Boyd  <earnie@users.sourceforge.net>
2495
2496         Add string to 64-bit integer conversion function prototypes.
2497
2498         * include/stdlib.h (_strtoi64, _strtoi64_l, _strtoui64, _strtoui64_l)
2499         (_wcstoi64, _wcstoi64_l, _wcstoui64, _wcstoui64_l): Declare them.
2500         * include/wchar.h (_wcstoi64, _wcstoi64_l, _wcstoui64, _wcstoui64_l):
2501         Likewise; these are duplicates of the <stdlib.h> declarations.
2502
2503 2012-08-01  Earnie Boyd  <earnie@users.sourceforge.net>
2504
2505         Update for _WIN64 exception handler readiness.
2506
2507         * include/excpt.h [_WIN64] (__try1, __except1): Add alternative inline
2508         assembly code implementation, based on X86-64 architecture.
2509
2510 2012-07-30  Earnie Boyd  <earnie@users.sourceforge.net>
2511
2512         Correct missing inclusion of <_mingw.h>.
2513
2514         * include/stdint.h: Add omitted #include; all mingwrt headers are
2515         expected to include this; it is required to define __int64.
2516
2517 2011-11-30  Ozkan Sezer  <sezero@users.sourceforge.net>
2518
2519         Correct prototypes for _wfindfirst()/_wfindnext() function family.
2520
2521         * include/io.h (_wfindfirst, _wfindfirst32, _wfindfirsti64)
2522         (_wfindfirst32i64, _wfindfirst64i32): Return type changed to intptr_t.
2523         (_wfindnext, _wfindnext32, _wfindnexti64, _wfindnext32i64)
2524         (_wfindnext64i32, _wfindnext64): Type of parameter #1 must match.
2525
2526 2011-11-30  Earnie Boyd  <earnie@users.sourceforge.net>
2527
2528         Avoid potential GCC "missing function prototype" warnings.
2529
2530         * include/stdio.h (getc, putc, getchar, putchar, fopen64)
2531         (ftello64): Provide a function prototype declaration for each of
2532         these, prior to the corresponding inline implementation.
2533
2534 2011-08-23  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2535
2536         * include/_mingw.h: Increment version to 3.20.
2537
2538 2011-08-23  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2539
2540         * tlsmthread.c: Update to reflect changes in tlssup.c.
2541         * tlssup.c: code clean-up.
2542
2543 2011-08-20  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2544
2545         * include/_mingw.h: Increment version to 3.19.
2546
2547 2011-08-19  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2548
2549         * include/float.h: Modify guard to accomodate CLang.
2550
2551         Thanks to Ruben Van Boxem for the report.
2552
2553 2011-08-19  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2554
2555         * tlssup.c: Remove mingwm10.dll fallback.
2556
2557 2011-08-19  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2558
2559         * include/sys/types.h (ssize_t): Defined as int as opposed to long.
2560
2561         Thanks to bvassche for the report.
2562
2563 2011-05-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
2564
2565         Correct checking for short option matches in getopt_long_only().
2566
2567         * mingwex/getopt.c (getopt_verify): New static inline function.
2568         (getopt_parse) [getopt_mode_long_only]: Use it, to validate as a
2569         possible short option match after failing to match, or ambiguously
2570         matching as a long option.
2571
2572 2011-05-24  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2573
2574         * include/stdlib.h (strtod): Declare as extern to resolve compilation issues.
2575
2576         Thanks to cgf for the report.
2577
2578 2011-05-23  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2579
2580         * include/time.h (daylight, timezone, tzname): Rework guards to expose when
2581         compiles with __STRICT_ANSI__.
2582
2583         Thanks to Felipe Contreras for the report.
2584
2585 2011-05-22  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2586
2587         * include/stdlib.h (strtod): Remove possible static declaration to resolve
2588         issue with gcc.
2589
2590         Thanks to Tobias Burnus for the report.
2591
2592 2011-05-22  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2593
2594         * include/stdlib.h (_rotl, _lrotl, _rotr, _lrotr): Resolve conflict with gcc
2595         by wrapping the functions in brackets.
2596
2597         Thanks to Kai Tietz for the report.
2598
2599 2011-05-22  A.B., Khalid  <abkhd@users.sourceforge.net>
2600
2601         * Makefile.in: Add support for msvcr100.dll.
2602         * msvcrt.def.in: Ditto.
2603
2604 2011-05-22  Antoine LECA  <antoinel@users.sourceforge.net>
2605
2606         * mingwex/mingw-fseek.c: The anonymous union feature for LARGE_INTEGER is
2607         not always available, go the long way and use the explicit named union
2608         members, which are also declared in winnt.h.
2609
2610 2011-05-22  Antoine LECA  <antoinel@users.sourceforge.net>
2611
2612         * mingwex/isblank.c: Fix typo in declaration.
2613
2614 2011-05-22  Antoine LECA  <antoinel@users.sourceforge.net>
2615
2616         * include/_mingw.h: Define GCC system_header only if PCC is not defined.
2617         * include/stdlib.h: Fix a long-standing typo which prevented correct use of
2618         the MB_CUR_MAX macro/variable when DECLSPEC is not supported and <stdlib.h>
2619         is included before <ctype.h>.
2620
2621 2011-05-22  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2622
2623         * include/wchar.h: Include stdio.h to grab definition of FILENAME_MAX.
2624
2625         Thanks to Jim Bell for the report and Greg Chicares for the fix.
2626
2627 2011-01-07  Jacky Lai  <crazyjacky@users.sourceforge.net>
2628
2629         Correct hexadecimal formatting of double and long double values.
2630
2631         * mingwex/stdio/pformat.c (__pformat_xdouble): Delete function.
2632         (__pformat) [A format]: Cast double values to long double, and use...
2633         (__pformat_xldouble): ...this instead, with corrected adjustment of
2634         exponent and alignment of mantissa, when formatting subnormals.
2635
2636 2010-12-27  Ozkan Sezer  <sezero@users.sourceforge.net>
2637
2638         * include/dirent.h (dd_handle): Define as intptr_t.
2639
2640 2010-11-08  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
2641
2642         * tlssup.c (__dyn_tls_init): Use an integer variable to iterate between
2643         __xd_a and __xd_z.
2644
2645 2010-08-17  Keith Marshall  <keithmarshall@users.sourceforge.net>
2646
2647         * include/limits.h (PATH_MAX): Make it agree with Microsoft's
2648         semantically identical MAX_PATH; correct value is 260.
2649
2650 2010-07-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
2651
2652         Accept that mingwrt headers are not guaranteed to precede GCC's in the
2653         system include search path; (issue reported by Mark Brand).
2654
2655         * include/float.h: Add multiple inclusion guard around...
2656         [! defined _FLOAT_H___]: ...include_next <float.h> for GCC's version,
2657         only when this define does not indicate that it has already been seen;
2658         update comments to document rationale; move it within the scope of...
2659         [! defined _MINGW_FLOAT_H_]: ...this multiple inclusion guard, so that
2660         GCC's float.h, after an appropriate complementary modification, need
2661         not perform a further include path search when this implementation
2662         specific extension has already been processed.
2663
2664 2010-07-22  Ozkan Sezer  <sezero@users.sourceforge.net>
2665
2666         * include/io.h (_findfirst, _findnext, _findclose, _findfirst32,
2667         _findnext32, _findfirsti64, _findnexti64, _findfirst32i64, _findfirst64i32,
2668         _findnext32i64, _findnext64i32, _findnext64, _findfirst, _findnext,
2669         _findfirsti64, _findnexti64, _findfirst, _findnext, _findfirsti64,
2670         _findnexti64): Correct definition.
2671
2672 2010-04-27  Danny Smith  <dannysmith@users.sourceforge.net>
2673
2674         * mingwex/mb_wc_common.h (get_codepage): Revert change of 2006-09-19.
2675
2676 2010-03-06  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2677
2678         * include/_mingw.h: Increment version to 3.18.
2679
2680 2010-03-02  Daniel Atallah  <datallah@users.sourceforge.net>
2681
2682         * include/stdio.h: (_vscprintf, _vscwprintf)
2683         * include/tchar.h: (_vsctprintf)
2684
2685 2010-02-14  Roumen Petrov  <rumen@users.sourceforge.net>
2686
2687         Issue [2134161]: time64 functions and types for msvcrt >= 8.0
2688         (initial implementation)
2689
2690         * new type: __time32_t
2691
2692         * new structures: _finddata32_t, _finddata32i64_t, _finddata64i32_t,
2693         __stat32, _stat32i64, _stat64i32, __timeb32, __utimbuf32,
2694         __wfinddata32_t, _wfinddata32i64_t, _wfinddata64i32_t
2695
2696         * new functions: _ctime32, _difftime32, _difftime64, _findfirst32
2697         _findfirst32i64, _findfirst64i32, _findnext32, _findnext32i64,
2698         _findnext64i32, _fstat32, _fstat32i64, _fstat64i32, _ftime32,
2699         _futime32, _gmtime32, _localtime32, _mkgmtime32, _mkgmtime64,
2700         _mktime32, _stat32, _stat32i64, _stat64i32, _time32, _utime32,
2701         _wctime32, _wfindfirst32, _wfindfirst32i64, _wfindfirst64i32,
2702         _wfindnext32, _wfindnext32i64, _wfindnext64i32, _wstat32,
2703         _wstat32i64, _wstat64i32,_wutime32
2704
2705         * new define _USE_32BIT_TIME_T set 32 or 64 aliases for: time_t,
2706         ctime, difftime, _findfirst, _findfirsti64, _findnext, _findnexti64,
2707         _fstat, _fstati64, _ftime, _futime, gmtime, localtime, mktime,
2708         _stat, _stati64, time, _utime, _wctime, _wfindfirst, _wfindfirsti64,
2709         _wfindnext, _wfindnexti64, _wstat, _wstati64, _wutime
2710
2711 2010-01-25  Kai Tietz  <kai.tietz@onevision.com>
2712
2713         Implement TLS Callback.
2714
2715         * tlsmcrt.c: New file.
2716         * tlsmthread.c: Ditto.
2717         * tlssup.c: Ditto.
2718         * tlsthrd.c: Ditto.
2719         * Makefile.in: Include new files.
2720         * crt1.c: Implement TLS Callback.
2721         * dllcrt1.c: Ditto.
2722         * mthr_stub.c: Remove.
2723
2724 2009-11-29  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2725
2726         * include/_mingw.h: Increment version to 3.17.
2727
2728 2009-11-25  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2729
2730         * mingwex/gdtoa/misc.c: Fix security vulnerability in gdtoa:
2731         cf. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0689
2732
2733 2009-11-13  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2734
2735         * include/io.h (_open_osfhandle): Correct definition.
2736
2737         Thanks to Alexander Shaduri for the information.
2738
2739 2009-11-02  Charles Wilson  <mingw@cwilson.fastmail.fm>
2740
2741         Final sync of pseudo-reloc.c with mingw64 and cygwin
2742         * lib/pseudo-reloc.c (__report_error) [CYGWIN]: Correct size bug
2743         regarding error messages.
2744
2745 2009-10-29  Charles Wilson  <mingw@cwilson.fastmail.fm>
2746
2747         Honor DESTDIR for winsup/mingw and winsup/w32api.
2748         Detect and report error if installation paths are win32
2749         format, but DESTDIR is non-empty.
2750
2751         * Makefile.in (DESTDIR): Honor per convention.
2752         (need-DESTDIR-compatibility): New macro; define it and a
2753         corresponding rule.
2754         (fail-DESTDIR-compatibility): New dependency goal.
2755         (install-dirs): Require need-DESTDIR-compatibility.
2756         * mingwex/Makefile.in (DESTDIR): Honor per convention.
2757         (need-DESTDIR-compatibility): New macro; define it and a
2758         corresponding rule.
2759         (fail-DESTDIR-compatibility): New dependency goal.
2760         (install): Require need-DESTDIR-compatibility.
2761         * profile/Makefile.in: Ditto.
2762
2763 2009-10-25  Charles Wilson  <mingw@cwilson.fastmail.fm>
2764
2765         Sync pseudo-reloc.c with mingw64
2766         * psuedo-reloc.c: Remove unnecessary includes.
2767         Forward declare _pei386_runtime_relocator.
2768         Decorate _image_base__ symbol with macro for
2769         mingw64 compatibility. Whitespace changes.
2770         (__print_reloc_error): Renamed to...
2771         (__report_error): This. "Returns" void, and
2772         always aborts. Now used on all platforms.
2773         (__write_memory): Remove special case error handling
2774         for different platforms - always call __report_error.
2775         (do_pseudo_reloc): Remove special case error handling
2776         for different platforms - always call __report_error.
2777         (_pei386_runtime_relocator): Decorate _image_base__
2778         symbol with mingw64 compatibility macro.
2779
2780 2009-10-23  Charles Wilson  <mingw@cwilson.fastmail.fm>
2781
2782         Sync pseudo-reloc.c with cygwin/lib/
2783         * pseudo-reloc.c [CYGWIN]: Added comments throughout and various
2784         whitespace fixes. Exploit cygwin_internal(CW_EXIT_PROCESS,...)
2785         for fatal error handling that is consistent with cygwin process
2786         life-cycle. Ensure state variable (in _pei386_runtime_relocator)
2787         is unique to each address space, across fork().
2788         [CYGWIN] (__print_reloc_error): New function for reporting
2789         errors in a manner supported by cygwin at this early stage of
2790         the process life-cycle.
2791         [CYGWIN] (_pei386_runtime_relocator): Ensure relocations
2792         performed only once for each address space, but are repeated
2793         after fork() in the new address space.
2794         [MINGW] (__write_memory): Ensure that b is always initialized
2795         by call to VirtualQuery, even if -DNDEBUG.
2796
2797 2009-09-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
2798
2799         Make MinGW printf() "%p" format compatible with MSVCRT scanf().
2800         (Based on MinGW-patch 2844514 by Peter Rosin <peda@lysator.liu.se>)
2801
2802         * mingwex/stdio/pformat.c (__printf) [%p]: Do not arbitrarily apply...
2803         (PFORMAT_HASHED): ...this formatting attribute; honour only user
2804         specified format qualifiers, except in special case...
2805         [%p && stream.flags == flags && state == PFORMAT_INIT]: Apply...
2806         (PFORMAT_ZEROFILL): ...this default formatting attribute...
2807         (stream.precision): ...filled to at least 2 * sizeof( uintptr_t )
2808         hexadecimal digits.
2809
2810 2009-09-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
2811
2812         Avoid multiple link time definitions of _printf() for C++;
2813         (problem reported by Alexander Shaduri, via MinGW-users ML).
2814
2815         * include/stdio.h [__USE_MINGW_ANSI_STDIO]:
2816         (__mingw_stdio_redirect__) [__cplusplus]: remove `static' keyword.
2817
2818 2009-08-14  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2819
2820         * include/_mingw.h: Increment version to 3.16.
2821
2822 2009-08-08  Danny Smith  <dannysmith@users.sourceforge.net>
2823
2824         * include/math.h (__fpclassifyl, __isnan, __isnanf, isnanl, __signbit,
2825         __signbitf, __signbitl, sinhf, tanhf, expf, frexpf, ldexpf, hypotf, powf,
2826         __fp_unordered_compare): Add prototypes.
2827         * include/stdio.h (vsnwprintf): Add prototype.
2828         * include/wchar.h (vsnwprintf): Add prototype.
2829         * include/stdlib.h (_Exit): Protect inline definition with !__STRICT_ANSI__.
2830         * include/unistd.h (ftruncate): Move prototype out of __NO_INLINE__ guard.
2831
2832 2009-07-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
2833
2834         Correct disposition of wchar_t output in printf().
2835
2836         * mingwex/stdio/pformat.c (__pformat) [%C]: Create new instance of...
2837         (argval): ...this, in inner scope, with singular type `wchar_t'; use
2838         it to pass one wchar to __pformat_wputchars(), for output.
2839
2840 2009-07-27  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2841
2842         * mingwex/stdio/pformat.c: Implement better fix for type punned warning.
2843
2844 2009-07-27  Keith Marshall  <keithmarshall@users.sourceforge.net>
2845
2846         Convert to monolithic configuration procedure.
2847
2848         * configure.in (AC_CHECK_TOOL): All instances; tabulate arguments.
2849         (AC_SUBST): Use its 2nd argument to initialise MinGW default settings.
2850         (PACKAGE_TARNAME) [target_os ~ cygwin]: Redefine it as appropriate.
2851         (W32API_INCLUDE): Redefine; make it relative to `top_srcdir'.
2852         (CRT0S): Relocate from `profile'; define it as appropriate.
2853         (LIBM_A): Define and AC_SUBST it unconditionally.
2854         (AC_CONFIG_SUBDIRS): Remove; none to configure.
2855         (AC_OUTPUT_FILES): Add `Makefile' for each of...
2856         (mingwex, profile): ...these subdirectories.
2857
2858         * configure: Regenerated.
2859
2860         * Makefile.in (PACKAGE, host_os): Let AC_SUBST define them.
2861         (top_srcdir, top_builddir): New macros; let AC_SUBST define them.
2862         (datarootdir): New macro; autoconf > 2.59 wants AC_SUBST to define it.
2863         (SUBDIRS): Define explicitly, to run recursive `make' in...
2864         (mingwex, profile): ...these; simplify build commands...
2865         (rootme, rootsrc): ...without these shell variables.
2866         (all, subdirs): Delete redundant build commands.
2867         (FIXME): Flag various issues for follow up.
2868
2869         * mingwex/Makefile.in (INCLUDES): Redefined macro; refer it to...
2870         (top_srcdir): ...this new macro; let AC_SUBST define it.
2871         (top_builddir, datarootdir): New macros; let AC_SUBST define them.
2872         (Makefile): Make it depend on...
2873         (top_builddir/config.status): ...this, itself depending on...
2874         (top_srcdir/configure): ...this.
2875         (FIXME): Flag various issues for follow up.
2876
2877         * mingwex/aclocal.m4: File no longer required; delete it.
2878         * mingwex/configure mingwex/configure.in: Likewise.
2879
2880         * profile/Makefile.in (INCLUDES): Redefined macro; refer it to...
2881         (top_srcdir): ...this new macro; let AC_SUBST define it.
2882         (top_builddir, datarootdir): New macros; let AC_SUBST define them.
2883         (Makefile): Make it depend on...
2884         (top_builddir/config.status): ...this, itself depending on...
2885         (top_srcdir/configure): ...this.
2886         (FIXME): Flag various issues for follow up.
2887
2888         * profile/aclocal.m4: File no longer required; delete it.
2889         * profile/configure profile/configure.in: Likewise.
2890
2891 2009-07-23  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2892
2893         * msvcrt.def.in: disable time symbol for libmsvcr90.a and libmsvcr90d.a due
2894         to complaints that it causes issues.
2895
2896 2009-07-23  Jacky Lai  <crazyjacky@users.sourceforge.net>
2897
2898         * mingwex/math/fminf.c: switch to using __isnanf() as opposed to _isnan().
2899
2900 2009-07-18  Gregory McGarry  <gregorymcgarry@users.sourceforge.net>
2901
2902         * include/inttypes.h include/math.h include/stdio.h include/stdlib.h
2903         include/string.h include/unistd.h include/wchar.h: Add __NO_INLINE__ guard
2904         to all inline functions.
2905
2906 2009-07-18  Gregory McGarry  <gregorymcgarry@users.sourceforge.net>
2907
2908         * CRT_fp8.c: Add PCC alternative to GCC-specific constructs.
2909         * CRT_fp10.c: Ditto.
2910
2911 2009-07-18  Gregory McGarry  <gregorymcgarry@users.sourceforge.net>
2912
2913         * cpu_features.c: replace gcc-specific construct with portable alternative
2914         and match the code a few lines above.
2915         * crt1.c: remove gcc-specific noreturn attribute with mingw alternative
2916
2917 2009-07-18  Gregory McGarry  <gregorymcgarry@users.sourceforge.net>
2918
2919         * include/_mingw.h: Changes required for PCC compiler.
2920
2921 2009-07-18  Jeff Lu  <jll544@yahoo.com>
2922
2923         * mingwex/usleep.c: round up to next ms
2924
2925 2009-07-17  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2926
2927         * mingwex/math/cephes_mconf.h mingwex/math/erfl.c mingwex/math/lgamma.c
2928         mingwex/math/lgammal.c mingwex/math/powl.c mingwex/math/sinhl.c
2929         mingwex/math/tanhl.c mingwex/math/tgamma.c mingwex/math/tgammal.c: Based on
2930         the fixes from the mingw-w64 code tree, fixed strict-aliasing issues.
2931
2932 2009-07-12  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2933
2934         * mingwex/stdio/pformat.c: Fix compiler warnings with GCC 4.4.0.
2935
2936 2009-06-28  Ozkan Sezer  <sezero@users.sourceforge.net>
2937
2938         * mingwex/gdtoa/README.mingw mingwex/gdtoa/gdtoa_fltrnds.h: New files.
2939         * mingwex/gdtoa/README mingwex/gdtoa/dmisc.c mingwex/gdtoa/dtoa.c
2940         mingwex/gdtoa/g__fmt.c mingwex/gdtoa/g_dfmt.c mingwex/gdtoa/g_ffmt.c
2941         mingwex/gdtoa/g_xfmt.c mingwex/gdtoa/gd_arith.h mingwex/gdtoa/gd_qnan.h
2942         mingwex/gdtoa/gdtoa.c mingwex/gdtoa/gdtoa.h mingwex/gdtoa/gdtoaimp.h
2943         mingwex/gdtoa/gethex.c mingwex/gdtoa/gmisc.c mingwex/gdtoa/hd_init.c
2944         mingwex/gdtoa/hexnan.c mingwex/gdtoa/misc.c mingwex/gdtoa/qnan.c
2945         mingwex/gdtoa/smisc.c mingwex/gdtoa/strtodg.c mingwex/gdtoa/strtodnrp.c
2946         mingwex/gdtoa/strtof.c mingwex/gdtoa/strtopx.c mingwex/gdtoa/sum.c
2947         mingwex/gdtoa/ulp.c:  Update the gdtoa library to match the netlib.org
2948         sources as of Apr. 20, 2009.  Update further to match the sources in
2949         the mingw-w64 tree as of June 28, 2009, by removing IBM, CRAY and VAX
2950         code, removing KR_headers, ANSI, Void and Char ifdefs, renaming the
2951         double/ulong union from U to dbl_union for better grepping and white-
2952         space tidy-ups.
2953
2954 2009-06-16  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2955
2956         * include/stdlib.h (_wtof): Define.
2957
2958 2009-04-11  Danny Smith  <dannsymith@users.sourceforge.net>
2959
2960         * include/stdint.h (int_fast8_t): Specify as signed char.
2961         (INT8_C, UINT8_C, INT16_C, UINT16_C): Simplify: just allow promotion to int.
2962         (INT32_C, UINT32_C): Remove 'L' type specifier on constant.
2963
2964 2009-03-05  Kai Tietz  <kai.tietz@onevision.com>
2965
2966         * pseudo-reloc.c: Rewrite to enable pseudo_reloc version 2.
2967
2968 2009-02-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
2969
2970         MinGW-Feature-Request [2222263]: Make getopt() GNU / BSD compatibile.
2971         (Requested by Robert Riebisch)
2972
2973         * mingwex/getopt.c (getopt_parse): Track external increments of...
2974         (optind): ...this global variable.
2975
2976 2009-01-10  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
2977
2978         * include/_mingw.h: Increment version to 3.15.2.
2979
2980 2009-01-04  Keith Marshall  <keithmarshall@users.sourceforge.net>
2981
2982         Fix MinGW-Bug [2445962]; (reported by Keishi Suenaga).
2983         Also add tentative support for BSD specific `optreset' feature.
2984
2985         * include/getopt.h (optreset) [_BSD_SOURCE]: Define; map it to...
2986         (__mingw_optreset): ...this new global variable.
2987
2988         * mingwex/getopt.c (__mingw_optreset): Instantiate it...
2989         (getopt_parse) [optind < 1]: ...make it true; use it to reset argument
2990         parsing context.
2991
2992 2008-12-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
2993
2994         Partial fix for MinGW-Bug [2457778]: (Reported by Sisyphus).
2995         Correct mishandling of invalid characters in printf() format specs.
2996
2997         * mingwex/stdio/pformat.c (__pformat): Save `fmt' scan position in...
2998         (backtrack): ...this new automatic variable, at start of each format
2999         conversion specification substring; use it to backtrack, and print the
3000         substring literally, if any invalid character is encountered.
3001
3002 2008-12-16  Danny Smith  <dannysmith@users.sourceforge.net>
3003
3004         * msvcrt.def.in (___lc_codepage_func, ___lc_collate_cp_func,
3005         ___lc_handle_func, ___mb_cur_max_func, ___setlc_active_func,
3006         ___unguarded_readlc_active_add_func, __crtCompareStringW,
3007         __crtGetStringTypeW, __crtLCMapStringW, __pctype_func,
3008         __pwctype_func, __iob_func, __uncaught_exception, __wcserror,
3009         __CxxDetectRethrow, __CxxExceptionFilter, __CxxQueryExceptionSize,
3010         __CxxRegisterExceptionObject, __CxxUnregisterExceptionObject,
3011         __CxxCallUnwindDtor, __DestructExceptionObject, _aligned_free,
3012         _aligned_malloc, _aligned_offset_malloc, _aligned_offset_realloc,
3013         _aligned_realloc, _cgetws, _cputws, _cwprintf, _cwscanf, _getwch,
3014         _getwche, _putwch, _resetstkoflw, _scprintf, _scwprintf,
3015         _set_SSE2_enable, _snscanf, _snwscanf, _strtoi64, _strtoui64,
3016         _ungetwch, _vscprintf, _vscwprintf, _wcserror, _wcstoi64,
3017         _wcstoui64, _wctype, _wtof, _get_heap_handle): Always export.
3018
3019 2008-12-08  Dmitry G. Gorbachev  <d.g.gorbachev@gmail.com>
3020
3021         * cpu_features.c (__cpu_features_init): Remove erroneous ';'.
3022
3023 2008-10-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
3024
3025         Correct some binary distribution packaging defects.
3026
3027         * Makefile.in (bindist): Remove `make' conditionals; segregate into...
3028         (bindist-common, bindist-mingwrt, bindist-mingw-runtime): ...these new
3029         intermediate goals; they make packages of files, as specified by...
3030         (BINDIST_FILES, DEVDIST_FILES, DLLDIST_FILES): ...these new macros.
3031         (dist_prefix) [target_alias !~ cygwin]: Leave it undefined.
3032
3033 2008-10-18  Keith Marshall  <keithmarshall@users.sourceforge.net>
3034
3035         Fix MinGW-Bug [2136252]: (Reported by Roumen Petrov).
3036         Remove extraneous radix point in printf( "%.0f", v ) for v < 0.5
3037
3038         * mingwex/stdio/pformat.c (__pformat_emit_float): Always make output
3039         of radix point conditional on precision != 0 or `#' flag specified.
3040
3041 2008-10-13  Keith Marshall  <keithmarshall@users.sourceforge.net>
3042
3043         Fix MinGW-Bug [2160227]
3044         Eliminate conflicting declarations and implementations of scalb().
3045
3046         * moldname.def.in (scalb): Comment out of EXPORTS list.
3047         * include/math.h (scalb): Comment out OLDNAMES prototype; it conflicts
3048         with GCC's built-in declaration.
3049
3050 2008-10-12  Christopher Faylor  <me+cygwin@cgf.cx>
3051
3052         * Makefile.in: Use a different method to invoke gcc in a cygwin-hosted
3053         environment.
3054         * mingwex/Makefile.in: Ditto.
3055         * profile/Makefile.in: Ditto.
3056         * configure.in: Record mingw front-end for building under Cygwin.
3057         * mingwex/configure.in: Ditto.
3058         * profile/configure.in: Ditto.
3059         * configure: Regenerate.
3060         * mingwex/configure: Ditto.
3061         * profile/configure: Ditto.
3062
3063 2008-10-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
3064
3065         Use de-facto standard Makefile goals to invoke test suite.
3066
3067         * Makefile.in: Some minor formatting adjustments.
3068         (test_headers): Unconventionally named goal renamed to...
3069         (check-headers): ...this; make it a prerequisite of...
3070         (check): ...this new conventionally named goal.
3071
3072 2008-10-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
3073
3074         Make strtod() inline definition C89 compliant.
3075         (Issue reported by Ilya Shestopalov and Ian Puleston)
3076         (Correction identified by Danny Smith)
3077
3078         * include/stdlib.h (strtod): Declare as `__inline__', not `inline';
3079         reformat inline function definition.
3080
3081 2008-10-04  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3082
3083         * include/_mingw.h: Increment version to 3.15.1 and introduce
3084         __MINGW32_PATCHLEVEL variable.
3085
3086 2008-10-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
3087
3088         Fix MinGW-Bug [2144266]: getopt() sets `optind' incorrectly.
3089         (Reported by Christian Franke)
3090
3091         * mingwex/getopt.c (optind): Make global variable value conform to
3092         behaviour specified by POSIX; do not use it for internal state in...
3093         (getopt_parse): ...this static function; use...
3094         (optbase): ...this new static local variable instead.
3095         (getopt_resolved): Update `optind' as required.
3096
3097 2008-10-03  Keith Marshall  <keithmarshall@users.sourceforge.net>
3098
3099         Improve package identification in configure script.
3100
3101         * configure.ac (AC_INIT): Redefine parameters...
3102         (PACKAGE_NAME): Set to `MinGW Runtime'.
3103         (PACKAGE_BUGREPORT): Set to `http://mingw.org/reporting_bugs'
3104         (PACKAGE_TARNAME): Set to `mingwrt'.
3105         (PACKAGE_VERSION): Set generically to `v3.x'; reassigned by...
3106         (MINGW_AC_CONFIG_SRCDIR): ...this macro, which extracts...
3107         (__MINGW32_VERSION): ...this, from file `include/_mingw.h'.
3108
3109         * aclocal.m4 (MINGW_AC_CONFIG_SRCDIR): Do not redefine...
3110         (PACKAGE_TARNAME): ...this.
3111
3112         * configure: Regenerated.
3113
3114 2008-09-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
3115
3116         Fix MinGW-Bug [2125708].
3117         (Reported by Alexandr Zamaraev).
3118
3119         * include/stdlib.h (intptr_t) [!_INTPTR_T_DEFINED]: Unused typedef;
3120         not wanted here; remove it; replace it by...
3121         (uintptr_t) [!_UINTPTR_T_DEFINED]: ...this typedef; needed by...
3122         (_invalid_parameter_handler): ...this function typedef.
3123
3124 2008-09-23  Chris Sutcliffe  <ir0nh34d@users.sf.net>
3125
3126         * Makefile.in: Don't include host_os as part of snapshot filename.
3127
3128 2008-09-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
3129
3130         Fix MinGW-Bug [2119504].
3131         (Reported by Peiyuan Song).
3132
3133         * mingwex/getopt.c (getopt_resolved): Do not overwrite...
3134         (*retindex): ...this already correctly assigned return variable...
3135         (opt[index].val): ...with this; this should have been assigned to...
3136         (*opt[index].flag) [opt[index].flag != NULL]: ...this instead.
3137
3138 2008-09-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
3139
3140         Fix MinGW-Bug [2117379].
3141         (Reported by Peiyuan Song).
3142
3143         * include/stdio.h (__argv): Replace all references in function
3144         prototype argument lists and inline function local variables, with ...
3145         (__local_argv): ...this, to avoid potential conflict with ...
3146         * include/stdlib (__argv): ...this #defined macro.
3147
3148 2008-09-07  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3149
3150         * include/_mingw.h: Increment version to 3.15.
3151
3152 2008-09-06  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3153
3154         * Makefile.in: Adjust to new naming standard for MinGW while maintaining old
3155         naming standard for Cygwin.
3156
3157 2008-08-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
3158
3159         Reimplement getopt.c to add getopt_long_only() function.
3160
3161         (N.B. this reimplementation removes support for BSD/Mac-OS-X
3162         `optreset' nonsense; user code should set `optind = 0' instead,
3163         to reinitialise option scanning).
3164
3165         * mingwex/getopt.c: Delete all content; reimplement it.
3166         * include/getopt.h: Likewise.
3167
3168         * include/unistd.h (__UNISTD_H_SOURCED__): New macro; define it.
3169         (__UNISTD_GETOPT__): This macro is no longer required; remove it.
3170
3171 2008-08-30  Keith Marshall  <keithmarshall@users.sourceforge.net>
3172
3173         Implement conditional replacement for printf() family functions.
3174
3175         * include/_mingw.h (__USE_MINGW_ANSI_STDIO): New macro; define it.
3176         (__MINGW_ANSI_STDIO__): New manifest constant; define as bitmapped
3177         flag for use in user specified __MINGW_FEATURES__ attribute.
3178         (__MINGW_LC_MESSAGES__, __MINGW_LC_ENVVARS__): New manifest constants;
3179         currently unused: reserved as components of...
3180         (__MINGW_LC_EXTENSIONS__): ...this new manifest constant; earmarked as
3181         a __MINGW_FEATURES__ enhancement to setlocale().
3182
3183         * include/stdio.h (__mingw_printf, __mingw_vprintf): Prototype them.
3184         (__mingw_fprintf, __mingw_vfprintf): Likewise.
3185         (__mingw_sprintf, __mingw_vsprintf): Likewise.
3186         (__msvcrt_printf, __msvcrt_vprintf): Likewise.
3187         (__msvcrt_fprintf, __msvcrt_vfprintf): Likewise.
3188         (__msvcrt_sprintf, __msvcrt_vsprintf): Likewise.
3189         (printf, vprintf) [!__USE_MINGW_ANSI_STDIO]: Prototype for default
3190         usage; link to DLL import stub, importing from MSVCRT.
3191         (fprintf, vfprintf) [!__USE_MINGW_ANSI_STDIO]: Likewise.
3192         (sprintf, vsprintf) [!__USE_MINGW_ANSI_STDIO]: Likewise.
3193         (printf) [__USE_MINGW_ANSI_STDIO]: Redirect to __mingw_printf; use
3194         locally defined static stub implementation.
3195         (fprintf, sprintf) [__USE_MINGW_ANSI_STDIO]: Likewise; redirect to
3196         __mingw_fprintf and __mingw_sprintf respectively.
3197         (vprintf) [__USE_MINGW_ANSI_STDIO]: Redirect to __mingw_vprintf; use
3198         static inline implementation for C++ and GNU C, or locally defined
3199         static stub otherwise.
3200         (vfprintf, vsprintf) [__USE_MINGW_ANSI_STDIO]: Likewise; redirect to
3201         __mingw_vfprintf and __mingw_vsprintf respectively.
3202
3203 2008-08-27  Keith Marshall  <keithmarshall@users.sourceforge.net>
3204
3205         Avoid access violations, passing NULL to printf( "...%s..." );
3206         (inconsistencency with MSVCRT and glibc, reported by Colin Harrison).
3207
3208         * mingwex/stdio/pformat.c (__pformat_puts): Substitute "(null)"
3209         for argument value, if caller passes a NULL pointer.
3210         (__pformat_wcputs): Likewise, substitute L"(null)".
3211
3212 2008-08-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
3213
3214         Add missing dependencies for building libmingwex.a.
3215
3216         * mingwex/Makefile.in (printf.o, fprintf.o, sprintf.o): Make them...
3217         (vprintf.o, vfprintf.o, vsprintf.o): ...and also these, depend on...
3218         (pformat.h): ...this.
3219
3220 2008-08-11  Keith Marshall  <keithmarshall@users.sourceforge.net>
3221
3222         Add replacements for remaining members of printf() family.
3223
3224         * mingwex/stdio/printf.c: New file.
3225         * mingwex/stdio/fprintf.c: New file.
3226         * mingwex/stdio/sprintf.c: New file.
3227         * mingwex/stdio/vprintf.c: New file.
3228         * mingwex/stdio/vfprintf.c: New file.
3229         * mingwex/stdio/vsprintf.c: New file.
3230
3231         * mingwex/Makefile.in (STDIO_DISTFILES): Add them.
3232         (STDIO_OBJS): Add their corresponding object files.
3233
3234 2008-07-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
3235
3236         Replace __mingw_snprintf() with new generic family implementation;
3237         likewise, replace __mingw_vsnprintf().
3238
3239         * mingwex/stdio/pformat.c mingwex/stdio/pformat.h: New files.
3240         * mingwex/stdio/snprintf.c mingwex/stdio/vsnprintf.c: New files.
3241         * mingwex/Makefile.in (STDIO_DISTFILES): Add them.
3242         (GDTOA_DISTFILES): Remove mingw_snprintf.c
3243         (STDIO_OBJS): Add pformat.o, snprintf.o and vsnprintf.o
3244         (GDTOA_OBJS): Remove mingw_snprintf.o
3245         (PFORMAT_CFLAGS): New macro; define it, as required by...
3246         (pformat.o): ...this new explicit build target.
3247         (snprintf.o, vsnprintf.o): Declare prerequisites.
3248
3249         * mingwex/gdtoa/mingw_snprintf.c: Redundant file; delete it.
3250
3251 2008-07-28  Keith Marshall  <keithmarshall@users.sourceforge.net>
3252
3253         Lay foundations for new printf() function family implementation.
3254
3255         * ofmt_stub.s: New file; implement forward compatibility stub for...
3256         (_get_output_format): ...this MSVCR80.DLL and later function.
3257
3258         * Makefile.in (SRCDIST_FILES): Add ofmt_stub.s.
3259         (NM, OBJCOPY): New macros; define them with AC_SUBSTed values.
3260         (sym_prefix, NM_LOOKUP, MINGW_REPL_FUNCS): New macros; define them.
3261         (lib%.a): Include ofmt_stub.o when import library does not already
3262         advertise availability of the _get_output_format() function;
3263         Add alias stubs for MINGW_REPL_FUNCS, such that...
3264         (__msvcrt_printf): ...is an alias for Microsoft's printf().
3265         (__msvcrt_fprintf): ...is an alias for Microsoft's fprintf().
3266         (__msvcrt_sprintf): ...is an alias for Microsoft's sprintf().
3267         (__msvcrt_vprintf): ...is an alias for Microsoft's vprintf().
3268         (__msvcrt_vfprintf): ...is an alias for Microsoft's vfprintf().
3269         (__msvcrt_vsprintf): ...is an alias for Microsoft's vsprintf().
3270         (clean): Add msvcr*.def.
3271
3272         * configure.in (NM, OBJCOPY): Use AC_CHECK_TOOL to specify them.
3273         * configure: Regenerated.
3274
3275 2008-07-06  Gregory McGarry   <gregorymcgarry@users.sourceforge.net>
3276
3277         * include/ctype.h (_imp____mb_cur_max): Correct spelling.
3278         (_imp____mb_cur_max_dll): Likewise.
3279
3280 2008-07-04  Danny Smith  <dannysmith@users,sourceforge.net>
3281
3282         * include/stdio.h (swprintf, vswprintf): Guard with  #ifndef __STRICT_ANSI__
3283         * include/wchar.h (swprintf, vswprintf): Likewise.
3284
3285 2008-07-01  Keith Marshall  <keithmarshall@users.sourceforge.net>
3286
3287         * msvcrt.def.in [__msvcr80__, __msvcr80d__, __msvcr90__, __msvcr90d__]
3288         (_get_output_format, _set_output_format): Add references.
3289
3290         * include/stdio.h [__MSVCRT_VERSION__ >= 0x800]
3291         (_get_output_format, _set_output_format): Declare prototypes.
3292         (_TWO_DIGIT_EXPONENT): Define.
3293         Some other minor formatting adjustments.
3294
3295 2008-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
3296
3297         [mingw-Bugs-1801641]
3298         * include/wchar.h (_wfdopen): Const-ify second arg.
3299         * include/stdio.h (_wfdopen): Likewise.
3300         Thanks to <tdragon at users dot sourceforge net>
3301
3302 2008-06-02  Keith Marshall  <keithmarshall@users.sourceforge.net>
3303
3304         Avoid precision errors in round(), lround() and llround() functions.
3305
3306         * mingwex/math/round_generic.c: New file; it replaces...
3307         * mingwex/math/round.c: ...this; delete it.
3308         * mingwex/math/roundf.c: ...and this; ditto.
3309         * mingwex/math/roundl.c: ...and this; ditto.
3310
3311         * mingwex/math/lround_generic.c: New file; it replaces...
3312         * mingwex/math/lround.c: ...this; delete it.
3313         * mingwex/math/lroundf.c: ...and this; ditto.
3314         * mingwex/math/lroundl.c: ...and this; ditto.
3315         * mingwex/math/llround.c: ...and this; ditto.
3316         * mingwex/math/llroundf.c: ...and this; ditto.
3317         * mingwex/math/llroundl.c: ...and this; ditto.
3318
3319         * mingwex/math/round_internal.h: New file; it provides generic common
3320         code, which is shared by `round_generic.c' and `lround_generic.c'; the
3321         implementation is based on techniques suggested by Danny Smith and
3322         Greg Chicares.
3323
3324         * mingwex/Makefile.in (MATH_DISTFILES): Remove `round.c', `roundf.c',
3325         `roundl.c', `lround.c', `lroundf.c', `lroundl.c', `llround.c',
3326         `llroundf.c' and `llroundl.c'; replace by `round_internal.h',
3327         `round_generic.c' and `lround_generic.c'.
3328         (MATH_OBJS): Factor out files listed in...
3329         (MATH_ROUND_OBJS, MATH_LROUND_OBJS, MATH_LLROUND_OBJS): ...these new
3330         macros; define them; specify dependencies and build rules; add to...
3331         (LIB_OBJS): ...this list.
3332
3333 2008-05-22  Danny Smith  <dannysmith@users.sourceforge.net>
3334
3335         [ mingw-Bugs-1961893 ]
3336         * mingwex/gdtoa/mingw_snprint.c (x_sprintf): Always set __ldtoa
3337         mode to 2 for E format.
3338
3339 2008-05-15  Ramiro Polla  <ramiro@lisha.ufsc.br>
3340
3341         * include/stdlib.h: Fix strtod under C++.
3342
3343 2008-05-06  Ramiro Polla  <ramiro@lisha.ufsc.br>
3344
3345         * mingwex/gdtoa/strtodnrp.c: Remove alias from strtod to __strtod.
3346         * include/stdlib.h: Define strtod to __strtod when __NO_ISOCEXT is not set.
3347
3348 2008-05-04  Ramiro Polla  <ramiro@lisha.ufsc.br>
3349
3350         * include/sys/types.h (useconds_t): typedef.
3351         * include/unistd.h (usleep): Add prototype.
3352         * mingwex/usleep.c: New file.
3353         * mingwex/makefile.in: Add usleep source and object.
3354
3355 2008-05-02  Ramiro Polla  <ramiro@lisha.ufsc.br>
3356
3357         Make strtod() conform to C99.
3358
3359         * include/stdlib.h (strtod): Declare this mingwex function, and...
3360         (_strtod): rename this MSVCRT counterpart.
3361
3362         * mingwex/gdtoa/strtodnrp.c (strtod): Alias to __strtod.
3363
3364 2008-04-26  Chuck Wilson  <cwilso11@users.sourceforge.net>
3365
3366         * Makefile.in: correct issues with mingw10.dll having multiple relocs.
3367
3368 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3369
3370         * include/process.h: Include stdint.h for intptr_t definition.
3371         (_execl, _execle, _execlp, _execlpe, _execv, _execve, _execvp, _execvpe,
3372         _spawnl, _spawnle, _spawnlp, _spawnlpe, _spawnv, _spawnve, _spawnvp,
3373         _spawnvpe): Return intptr_t.
3374         (execl, execle, execlp, execlpe, execv, execve, execvp, execvpe, spawnl,
3375         spawnle, spawnlp, spawnlpe, spawnv, spawnve, spawnvp, spawnvpe): Return
3376         intptr_t.
3377         * include/wchar.h: Guard wide process.h functions with !__STRICT_ANSI__.
3378
3379         [!_WPROCESS_DEFINED]: Include stdint.h for intptr_t definition.
3380         (_wexecl, _wexecle, _wexeclp, _wexeclpe, _wexecv, _wexecve, _wexecvp,
3381         _wexecvpe, _wspawnl, _wspawnle, _wspawnlp, _wspawnlpe, _wspawnv, _wspawnve,
3382         _wspawnvp, _wspawnvpe): Return intptr_t.
3383
3384 2008-04-25  Danny Smith  <dannysmith@users.sourceforge.net>
3385
3386         * include/wchar.h (fwide): Return success code rather than failure in inline
3387         definition.
3388         * mingwex/fwide.c (fwide): ANSI-fy. Get rid of Q8 comments.  Return success
3389         code rather than failure.
3390
3391 2008-03-21  Danny Smith  <dannysmith@users.sourceforge.net>
3392
3393         * include/math.h (float_t, double_t): Define.
3394
3395 2008-02-08  Danny Smith  <dannysmith@users.sourceforge.net>
3396
3397         * mingwex/gdtoa/gdtoaimp.h (USE_LOCALE): Define.
3398         * mingwex/gdtoa/mingw_snprintf.c: [USE_LOCALE] Include locale.h.
3399         (x_sprintf): [USE_LOCALE] Use  *localeconv()->decimal_point.
3400
3401 2008-02-28  Joseph Myers  <joseph@codesourcery.com>
3402
3403         * include/complex.h: Don't condition contents on C99 or not
3404         __STRICT_ANSI__.
3405
3406 2008-02-01  Brian Dessent  <brian@dessent.net>
3407
3408         * Makefile.in: Add rules to generate multiple versions of libmoldname.a for
3409         the different runtime versions.
3410
3411 2008-01-19  Danny Smith  <dannysmithusers.sourceforge.net
3412
3413         * inclue/wchar.h (fwide): Add prototype and guard inline definition.
3414         (mbsinit): Likewise.
3415
3416 2007-12-27  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3417
3418         * include/_mingw.h: Increment version to 3.14.
3419
3420 2007-11-26  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3421
3422         * Makefile.in: Add libmsvcr90.a and libmsvcr90d.a targets.
3423         * msvcrt.def.in: Add support for __msvcr90__ and __msvcr90d__ defines.
3424         * mingwex/math/log10f.S: Correct issue with comments.
3425         * mingwex/math/log10l.S: Ditto.
3426         * mingwex/math/log1p.S: Ditto.
3427         * mingwex/math/log1pf.S: Ditto.
3428         * mingwex/math/log1pl.S: Ditto.
3429         * mingwex/math/log2.S: Ditto.
3430         * mingwex/math/log2f.S: Ditto.
3431         * mingwex/math/log2l.S: Ditto.
3432         * mingwex/math/logf.S: Ditto.
3433         * mingwex/math/logl.S: Ditto.
3434
3435 2007-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
3436
3437         * mingwex/gdtoa/mingw_snprintf.c: fixed warning during compile.
3438
3439 2007-10-03  Bernd Becker  <hugin@users.sourceforge.net>
3440
3441         * include/io.h (__finddata64_t, __wfinddata64_t): changed member 'size'
3442         from '_fsize_t' to '__int64' to be consistent with the other ...64
3443         structures and the value set there is 8 bytes not 4.  Add guard for both
3444         as the are only used by functions available from 6.1 on.
3445
3446         * include/malloc.h (_HEAP_MAXREQ): Define.
3447         (_aligned_offset_recalloc): Define.
3448         (_aligned_recalloc()): Define.
3449
3450         * include/math.h: fixed a typo in a comment.
3451         (atanhf): Fixed declaration.
3452
3453         * include/wchar.h (__wfinddata64_t): changed member 'size' from '_fsize_t'
3454         to '__int64' to be consistent with the other ...64 structures and the value
3455         set there is 8 bytes not 4.  Added guard as this function is only used by
3456         functions available from 6.1 on.
3457
3458         * include/sys/stat.h: some members of 'stat' were declared with types with
3459         a prefixed underscore, while the ones without the underscore should have
3460         been used.  Added guard to '__stat64' as it is only used by functions
3461         available from 6.1 on.  Added the wide character versions of the
3462         exec()/spawn() family for completion
3463         (_stati64): changed the type of the 'st_mode' member from 'unsigned int' to
3464         '_mode_t'
3465
3466         * include/sys/timeb.h (timeb, _timb): changed the type of the 'time' member
3467         from 'long' to 'time_t'
3468         (__timeb64): moved declaration of structure directly before the declaration
3469         of the function '_ftime64()', so it is guarded as well
3470
3471         * include/sys/utime.h (__utimbuf64): moved declaration of structure directly
3472         before the declaration of the functions using it, so it is guarded as well
3473
3474 2007-09-24  David C. Daeschler  <daveregs@rsaisp.com>
3475
3476         * mingwex/gdtoa/mingw_snprintf.c (x_sprintf): Correct LEN_L typo in 'l'
3477         case.  Add missing break in 's'/LEN_S case.
3478
3479 2007-08-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
3480
3481         Make snprintf() and vsnprintf() conform to C99.
3482
3483         * include/stdio.h: Add note about incompatibility between...
3484         (snprintf, vsnprintf): These two mingwex functions, and...
3485         (_snprintf, _vsnprintf): these MSVCRT counterparts.
3486
3487         * mingwex/Makefile.in (STDIO_OBJS): Remove snprintf.o and vsnprintf.o
3488         (STDIO_DISTFILES): Remove snprintf.c and vsnprintf.c
3489
3490         * mingwex/stdio/snprintf.c: Delete.
3491         * mingwex/stdio/vsnprintf.c: Delete.
3492
3493         * mingwex/gdtoa/mingw_snprintf.c (snprintf): Alias to __mingw_snprintf
3494         (vsnprintf): Alias to __mingw_vsnprintf.
3495
3496 2007-07-25  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3497
3498         * include/_mingw.h: Increment version to 3.13.
3499         * Makefile.in: Reset CYGRELEASE to 1
3500
3501 2007-07-23  Keith Marshall  <keithmarshall@users.sourceforge.net>
3502
3503         * Makefile.in (SUBDIRS): Delete stray line continuation artifact,
3504         resulting from incomplete removal of enclosing `for ...; do ...; done'
3505         loop from compound command; (reported by Greg Chicares).
3506
3507 2007-07-19  Danny Smith  <dannysmith@users.sourceforge.net>
3508
3509         * include/fcntl.h (_O_WTEXT, _O_U16TEXT, _O_U8TEXT) Define for
3510         Vista.
3511
3512 2007-07-12  Danny Smith  <dannysmith@users.sourceforge.net>
3513
3514         [mingw-Bugs-1734142]
3515         * include/wchar.h (_wsystem) Declare.
3516         (_wputenv) Declare.
3517         (_wgetenv): Declare.
3518         (_wsearchenv): Declare.
3519         (_wmakepath): Declare.
3520         (_wsplitpath): Declare.
3521         (_wfullpath): Declare.
3522         * include/stdlib.h (_wsystem) Declare.
3523         (_wputenv, _wgetenv, _wsearchenv, _wmakepath, _wsplitpath,
3524         _wfullpath): Move into _WSTDLIB_DEFINED guard.
3525         * include/tchar.h (_tsystem): New UNICODE mapping define.
3526
3527 2007-06-29  Danny Smith  <dannysmith@users.sourceforge.net>
3528
3529         * mingwex/gdtoa/mingw_snprintf.c: New file.
3530         * mingwex/Makefile.in (GDTOA_DISTFILES): Add mingw_snprintf.c.
3531         (GDTOA_OBJS): Add mingw_snprintf.o.
3532
3533 2007-06-28  Danny Smith  <dannysmith@users.sourceforge.net>
3534
3535         * msvcrt.def.in: Update comment.
3536         Exclude _ctype stub if using msvcr71.dll or newer.
3537         * include/ctype.h: Don't declare _ctype if using msvcr71.dll or newer.
3538         * include/wctype.h: Likewise.
3539
3540 2007-06-23  Danny Smith  <dannysmith@users.sourceforge.net>
3541
3542         *include/wctype.h: Qualify all functions with __MINGW_NOTHROW.
3543         *include/dirent.h: Likewise.
3544
3545 2007-06-23  Danny Smith  <dannysmith@users.sourceforge.net>
3546
3547         * include/assert.h: Qualify all  functions with __MINGW_NOTHROW.
3548         * include/conio.h: Likewise.
3549         * include/ctype.h: Likewise.
3550         * include/direct.h: Likewise.
3551         * include/dos.h: Likewise.
3552         * include/errno.h: Likewise.
3553         * include/fenv.h: Likewise.
3554         * include/float.h: Likewise.
3555         * include/inttypes.h: Likewise.
3556         * include/io.h: Likewise.
3557         * include/libgen.h: Likewise.
3558         * include/locale.h: Likewise.
3559         * include/malloc.h: Likewise.
3560         * include/mbctype.h: Likewise.
3561         * include/mbstring.h: Likewise.
3562         * include/process.h: Likewise.
3563         * include/search.h: Likewise.
3564         * include/setjmp.h: Likewise.
3565         * include/signal.h: Likewise.
3566         * include/stdio.h: Likewise.
3567         * include/stdlib.h: Likewise.
3568         * include/string.h: Likewise.
3569         * include/time.h: Likewise.
3570         * include/wchar.h: Likewise.
3571         * include/sys/stat.h: Likewise.
3572         * include/sys/time.h: Likewise.
3573         * include/sys/timeb.h: Likewise.
3574         * include/sys/utime.h: Likewise.
3575
3576 2007-06-22  Danny Smith  <dannysmith@users.sourceforge.net>
3577
3578         * mingwex/Makefile.in (LIB_OBJS): Revert accidental removal.
3579
3580 2007-06-22  Danny Smith  <dannysmith@users.sourceforge.net>
3581
3582         Add POSIX binary tree search API.
3583
3584         * mingwex/tfind.c: New file.
3585         * mingwex/tdelete.c: New file.
3586         * mingwex/tsearch.c: New file.
3587         * mingwex/twalk.c: New file.
3588         * mingwex/Makefile.in (DISTFILES): Add tsearch.c twalk.c tdelete.c tfind.c.
3589         * mingwex/Makefile.in (POSIX_OBJS): Add tsearch.o twalk.o tdelete.o tfind.o.
3590         * include/search.h (tfind): Declare.
3591         (tdelete): Declare.
3592         (tsearch): Declare.
3593         (twalk): Declare.
3594         (ENTRY): Define.
3595         (ACTION): Define.
3596         (VISIT): Define.
3597         (node_t): Define, on condition of _SEARCH_PRIVATE.
3598
3599 2007-06-22  Danny Smith  <dannysmith@users.sourceforge.net>
3600
3601         * include/_mingw.h (__MINGW_NOTHROW): Define.
3602
3603 2007-06-18  Danny Smith  <dannysmith@users.sourceforge.net>
3604
3605         * include/stdio.h (vsnprintf): Remove inline definition.
3606         Add prototype.
3607
3608 2007-06-16  Danny Smith  <dannysmith@users.sourceforge.net>
3609
3610         * CRTfmode.c: Nit-pick comment fix.
3611
3612 2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
3613
3614         * CRTfmode.c: Fix nested comment.
3615
3616 2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
3617
3618         * include/string.h (strcasecmp): Fix typo in declaration prototype.
3619
3620 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
3621
3622         * include/io.h (lseek64) : Add prototype.
3623
3624 2007-06-14  Danny Smith  <dannysmith@users.sourceforge.net>
3625
3626         * include/string.h (strcasecmp): Add prototype.
3627         (strncasecmp): Add prototype.
3628
3629 2007-06-13  Danny Smith  <dannysmith@users.sourceforge.net>
3630
3631         * Makefile.in (CRT0S): Revert last change.
3632         * CRTfmode.c. Correct comment.
3633
3634 2007-06-13  Danny Smith  <dannysmith@users.sourceforge.net>
3635
3636         * Makefile.in (CRT0S): Add back CRTfmode.o.
3637
3638 2007-06-13  Danny Smith  <dannysmith@users.sourceforge.net>
3639
3640         * include/stdlib.h: Don't include stdint.h. Conditionally define intptr_t.
3641         * include/io.h: Likewise.
3642
3643 2007-06-11  Danny Smith  <dannysmith@users.sourceforge.net>
3644
3645         * crt1.c (__mingw_CRTStartup): Add explicit call to gcc's __main.
3646
3647 2007-05-08  Danny Smith  <dannysmith@users.sourceforge.net>
3648
3649         * include/stdint.h (intptr_t): Fix typo.
3650         Thanks to Charles Wilson for report.
3651
3652 2007-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
3653
3654         * include/stdint.h (intptr_t): Protect with _INTPTR_T_DEFINED.
3655          Condition on _WIN64.
3656         (uintptr_t): Protect with _UINTPTR_T_DEFINED. Condition on _WIN64.
3657         (INTPTR_MIN, INTPTR_MAX, UINTPTR_MAX): Condition on _WIN64.
3658         (PTRDIFF_MIN): Define as INTPTR_MIN.
3659         (PTRDIFF_MAX): Define as INTPTR_MAX.
3660         (SIG_ATOMIC_MIN): Define as INTPTR_MIN.
3661         (SIG_ATOMIC_MAX): Define as INTPTR_MAX.
3662
3663 2007-04-07  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3664
3665         * Makefile.in: Removed mansuffix variable. Changed mansection to support
3666         Cygwin man page location.
3667
3668 2007-04-05  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3669
3670         * Makefile.in: Added mansection and mansuffix variables. Changed mandir to
3671         support Cygwin man page location.
3672
3673 2007-03-25  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3674
3675         * Include/_mingw.h: Increment version to 3.12.
3676
3677 2007-03-22  Brian Ripley  <ripleybd@users.sourceforge.net>
3678
3679         * include/_mingw.h (__CRT_INLINE): Make conditional on __GNUC_STDC_INLINE__.
3680
3681 2007-03-20  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3682
3683         * Makefile.in: Tweak srcdist to fix build issue.
3684
3685 2007-03-20  Keith Marshall  <keithmarshall@users.sourceforge.net>
3686
3687         Add --enable-mingw-manpage-transform configure option.
3688
3689         * aclocal.m4 (MINGW_AC_MANPAGE_TRANSFORM): New macro.
3690         * configure.in, Makefile.in: Use it.
3691         * configure: Regenerated.
3692
3693 2007-03-18  Danny Smith  <dannysmith@users.sourceforge.net>
3694
3695         * include/_mingw.h (__CRT_INLINE): Use __gnu_inline__ for gcc 4.2.x too.
3696
3697 2007-03-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
3698
3699         Add manpages for dirname and basename functions.
3700
3701         * man: New directory.
3702         * man/dirname.man: New file; it sources both manpages.
3703         * Makefile.in: Add provisional rules to distribute them.
3704
3705 2007-03-08  Keith Marshall  <keithmarshall@users.sourceforge.net>
3706
3707         * mingwex/basename.c: Make it work with path names containing
3708         multibyte character strings.
3709         * mingwex/dirname.c: Likewise.
3710
3711 2007-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
3712
3713         * include/io.h (__mingw_access): New static inline wrapper to restore
3714         pre-Vista 'access (fname, X_OK)' behaviour.
3715         (__USE_MINGW_ACCESS): Use to map access() to __mingw_access().
3716
3717 2007-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
3718
3719         * mingwex/fesetround.c (fesetround): Use unsigned int as operand
3720         to stmxcsr.
3721         Thanks to Alexey Kuznetsov <ring0_mipt at users dot sf dot net>
3722
3723 2007-02-27  Thorsten Dahlheimer  <tdahlheim@gmx.net>
3724
3725         * include/stdio.h (_unlink, unlink): Add prototypes.
3726
3727 2007-02-18  Aurimas Cernius  <aurisc4@gmail.com>
3728
3729         * include/excpt.h: Replace "_try1" in comments with "__try1".
3730
3731 2007-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
3732
3733         * Makefile.in (ALL_CFLAGS): Put W32API_INCLUDE after INCLUDES.
3734         (ALL_CXXFLAGS): Likewise.
3735         * mingwex/Makefile.in (ALL_CFLAGS): Put W32API_INCLUDE after INCLUDES.
3736         (ALL_CXXFLAGS): Likewise.
3737         * profile/Makefile.in (ALL_CFLAGS): Put W32API_INCLUDE after INCLUDES.
3738         (ALL_CXXFLAGS): Likewise.
3739
3740 2007-02-08  Danny Smith  <dannysmith@users.sourceforge.net>
3741
3742         * include/io.h (X_OK): Revert 2007-01-24 change, but leave comment.
3743
3744 2007-01-27  Danny Smith  <dannysmith@users.sourceforge.net>
3745
3746         Expose some more msvcr80.dll functions.
3747         * include/stdio.h (_fseek_nolock. _ftell_nolock, _fseeki64,
3748         _ftelli64, _fseeki64_nolock, _ftelli64_nolock) Add prototypes
3749         * msvcrt.def.in (_fseek_nolock. _ftell_nolock, _fseeki64,
3750         _ftelli64, _fseeki64_nolock, _ftelli64_nolock) Add stubs.
3751
3752 2007-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
3753
3754         Expose some msvcr80.dll functions.
3755         * include/stdlib.h (_set_abort_behavior): Add prototype.
3756         (_WRITE_ABORT_MSG, _CALL_REPORTFAULT): Add defines for
3757         _set_abort_behavior mask argument.
3758         (_invalid_parameter_handler): Add typedef.
3759         (_set_invalid_parameter_handler): Add prototype.
3760         * include/stdio.h (_get_printf_count_output): Add prototype.
3761         (_set_printf_count_output): Add prototype.
3762         * msvcrt.def.in (_get_printf_count_output,_set_printf_count_output,
3763         _set_abort_behavior, _set_invalid_parameter_handler): Add stubs.
3764
3765 2007-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
3766
3767         * include/_mingw.h (CRT_INLINE): Correct typo.
3768
3769 2007-01-24  Danny Smith  <dannysmith@users.sourceforge.net>
3770
3771         * include/io.h (X_OK): Define to F_OK.
3772
3773 2007-01-19  Danny Smith  <dannysmith@users.sourceforge.net>
3774
3775         * include/stdio.h (SEEK_SET, SEEK_CUR, SEEK_END): Define
3776         unconditionally. Change comment.
3777         * include/unistd.h (SEEK_SET, SEEK_CUR, SEEK_END): Define
3778         here too.
3779         * include/io.h (rename): Declare.
3780         (remove): Declare.
3781
3782 2006-12-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
3783
3784         * include/libgen.h: New file; required by...
3785         * mingwex/basename.c, mingwex/dirname.c: New files.
3786         * mingwex/Makefile.in (DISTFILES): Add them...
3787         (POSIX_OBJS): ...with corresponding basename.o, dirname.o
3788         (Dependencies): Typo; s/Dependancies/Dependencies/
3789
3790 2006-11-25  Keith Marshall  <keithmarshall@users.sourceforge.net>
3791
3792         * Makefile.in (VERSION): Let configure define it.
3793
3794         * aclocal.m4 (MINGW_AC_CONFIG_SRCDIR): New macro.
3795         * configure.in: Use it.
3796         Correct quoting of autoconf macro arguments throughout.
3797         (AC_INIT, AC_OUTPUT): Update to autoconf 2.5x preferred syntax.
3798         (AR, AS, RANLIB, LD, DLLTOOL, DLLWRAP): Don't need AC_SUBST.
3799         (AC_ALLOCA): Invalid after GCC_NO_EXECUTABLES; removed.
3800         (AC_CONFIG_FILES): Add, to generate Makefile.
3801
3802         * configure: Regenerated.
3803
3804 2006-11-21  Danny Smith  <dannysmith@users.sourceforge.net>
3805
3806         * Makefile.in: Add aclocal.m4 to source release.
3807         * mingwex/Makefile.in: Ditto.
3808         * profile/Makefile.in: Ditto.
3809
3810 2006-11-18  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3811
3812         * Include/_mingw.h: Increment version to 3.11.
3813         * Makefile.in: Ditto.
3814
3815 2006-11-09  Danny Smith  <dannysmith@users.sourceforge.net>
3816
3817         [ mingw-Bugs-1590623 ]
3818         * include/_mingw.h (__CRT_INLINE): Use __gnu_inline__ attribute
3819         in C99 mode.
3820
3821 2006-10-04  Corinna Vinschen  <corinna@vinschen.de>
3822
3823         * Makefile.in: Semi-revert semi-reversion of 2006-08-30 change, now
3824         correctly parenthesized.
3825
3826 2006-09-19  Danny Smith  <dannysmith@users.sourceforge.net>
3827
3828         * mingwex/mb_wc_common.h (get_codepage): Get it
3829         from __lc_codepage.
3830
3831 2006-09-18  Danny Smith  <dannysmith@users.sourceforge.net>
3832
3833         * mingwex/gdtoa/g_xfmt.c (g_xfmt): Fix representation of infinity.
3834         Use fpclassify.
3835         * mingwex/gdtoa/strtopx (__strtopx): Avoid cast of long double* to
3836         void*.
3837         * mingwex/gdtoa/gdtoa.h (__g_fmt): Make declaration consistent with
3838         others.
3839
3840 2006-09-16  Danny Smith  <dannysmith@users.sourceforge.net>
3841
3842         * mingwex/gdtoa/strtopx.c (strtopx): Fix long double representation
3843         of infinity.
3844
3845 2006-09-11  Christopher Faylor  <cgf@timesys.com>
3846
3847         * Makefile.in: Semi-revert 2006-08-30 change.
3848
3849 2006-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
3850
3851         * include/_mingw.h (__MINGW_ATTRIB_DEPRECATED): Define.
3852         (__MINGW_IMPORT): Ansify.
3853         * include/stdlib.h (_sleep, _beep, _seterrormode): Add
3854         __MINGW_ATTRIB_DEPRECATED.
3855
3856 2006-09-10  Keith Marshall  <keithmarshall@users.sourceforge.net>
3857
3858         * aclocal.m4 (LIB_AC_PROG_CC, LIB_AC_PROG_CC_GNU, LIB_AC_PROG_CXX):
3859         Redundant macros; deleted.
3860
3861         * configure.in (LIB_AC_PROG_CC): Replaced by...
3862         (AC_PROG_CC): ...this.
3863
3864         * configure: Regenerated.
3865
3866 2006-09-06  Danny Smith  <dannysmith@users.sourceforge.net>
3867
3868         * mingwex/gdtoa/misc.c (pow5mult): Restore original code.
3869         * mingwex/gdtoa/gdtoa.h. Add comment that files have been modified.
3870         * mingwex/gdtoa/gdtoaimp.h: Include system headers with <> brackets.
3871
3872 2006-09-01  Danny Smith  <dannysmith@users.sourceforge.net>
3873
3874         * mingwex/gdtoa/(arithchk.c, dmisc.c, dtoa.c, g__fmt.c, g_dfmt.c,
3875         g_ffmt.c, g_xfmt.c, gd_arith.h, gd_qnan.h, gdtoa.c, gdtoa.h,
3876         gdtoaimp.h, gethex.c, gmisc.c, hd_init.c, hexnan.c, misc.c, qnan.c,
3877         README, smisc.c, strtodg.c, strtodnrp.c, strtof.c, strtopx.c, sum.c,
3878         ulp.c): New files.
3879         * mingwex/(strtof.c, strtold.c, ldtoa.c): Remove files.
3880         * mingwex/math/(cephes-emath.c, cephes-emath.h): Remove files.
3881         * mingwex/mb_wc_common.h (get_cp_from_locale); Rename to get_codepage().
3882         * mingwex/(btowc.c, wctob.c, mbrtowc.c, wcrtomb.c): Adjust call to get_codepage().
3883         * mingwex/wcstold.c: Avoid using strtold internals.
3884         * mingwex/wcstof.c: Rewrite.
3885         * mingwex/Makefile.in (GDTOA_DISTFILES): Add to distribution.
3886         (GDTOA_OBJS): Add to library.
3887         (DISTFILES): Remove strtof.c strtold.c ldtoa.c cephes-emath.c cephes-emath.h.
3888         (STDLIB_OBJS): Remove.
3889         (STDLIB_STUB_OBJS): Remove strtof.o wcstof,o.
3890         (Q8_OBJS): Add wcstof.o wcstold.o.
3891         * include/stdlib.h (strtof): Remove inline definition.
3892         (wcstof): Likewise.
3893         * include/wchar.h (wcstof): Remove inline definition.
3894
3895 2006-08-30  Corinna Vinschen  <corinna@vinschen.de>
3896
3897         * Makefile.in: Add with_cross_host to allow more granular checks.
3898         Set installation directories accordingly. Override CC setting only
3899         if building a Cygwin target.
3900         * aclocal.m4: Regenerate.
3901         * configure.in: Move AC_CANONICAL_SYSTEM check up. Add
3902         GCC_NO_EXECUTABLES. Substitute with_cross_host in depending files.
3903         Test AC_ALLOCA only if building on a native system.
3904         * configure: Regenerate.
3905
3906 2006-08-27  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3907
3908         * include/ctype.h: Fix typo.
3909
3910 2006-08-25  Danny Smith  <dannysmith@users.sourceforge.net>
3911
3912         * include/ctype.h: Expose iswblank if __cplusplus.
3913         * include/wctype.h: Expose iswblank if __cplusplus.
3914
3915 2006-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
3916
3917         * include/ctype.h: Remove stray ')';
3918
3919 2006-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
3920
3921         * include/ctype.h (_BLANK): Expand comment.
3922         (isblank): Add prototype and inline definition.
3923         (iswblank): Add prototype and inline definition.
3924         * include/wctype.h (iswblank): Add prototype and inline definition.
3925         * mingwex/isblank.c: New file.
3926         * mingwex/iswblank.c: New file.
3927         * mingwex/Makefile.in: Add isblank, iswblank to libmingwex.a
3928
3929 2006-07-06  Danny Smith  <dannysmith@users.sourceforge.net>
3930
3931         * include/math.h (__INFF,__INFL): Remove '#'.
3932
3933 2006-07-04  Danny Smith  <dannysmith@users.sourceforge.net>
3934
3935         * mingwex/Makefile.in: Add -I$(srcdir)/.. to INCLUDES.
3936
3937 2006-07-03  Danny Smith  <dannysmith@users.sourceforge.net>
3938
3939         Support SSE float environment in fenv.h functions.
3940         * cpu_features.c: New file.
3941         * cpu_features.h: New file.
3942         * crt1.c: Include "cpu_features.h".
3943         (__mingw_CRTStartup): Call cpu_features_init().
3944         * Makefile.in (MING_OBJS): Add cpu_features.c.
3945         (SRCDIST_FILES): Add cpu_features.c, cpu_features.h.
3946         * include/fenv,h ( fenv_t;): Append __mxcsr field.
3947         (__MXCSR_EXCEPT_FLAG_SHIFT): New define.
3948         (__MXCSR_EXCEPT_MASK_SHIFT): New define.
3949         (__MXCSR_ROUND_FLAG_SHIFT): New define.
3950         * mingwex/feclearexcept.c: Include "cpu_features.h".
3951         Handle SSE environment.
3952         * mingwex/fegetenv.c: Likewise.
3953         * mingwex/feholdexcept.c: Likewise.
3954         * mingwex/fesetenv.c: Likewise.
3955         * mingwex/fesetexceptflag.c: Likewise.
3956         * mingwex/fesetround.c: Likewise.
3957         * mingwex/fetestexcept.c: Likewise.
3958         * mingwex/feupdateenv.c: Likewise.
3959         * mingwex/fegetround.c: Add comment.
3960
3961 2006-06-25  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3962
3963         * Include/_mingw.h: Increment version to 3.10.
3964         * Makefile.in: Ditto.
3965
3966 2006-06-26  Danny Smith  <dannysmith@users.sourceforge.net>
3967
3968         * mingwex/math/tgamma.c (SQTPI): Add braces.
3969
3970 2006-06-26  Danny Smith  <dannysmith@users.sourceforge.net>
3971
3972         * mingwex/wcrtomb.c (wcsrtombs): Fix src end-pointer thinko.
3973         * mingwex/math/lgamma.c: (LOGPI) Avoid type punning.
3974         (LS2PI): Likewise.
3975         * mingwex/math/sf_erf.c (erff): Initialize z.
3976         (erfcf): Likewise.
3977         * mingwex/math/tgamma.c (SQTPI): Avoid type punning.
3978
3979 2006-06-25  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
3980
3981         * Include/_mingw.h: Increment version to 3.10.
3982         * Makefile.in: Ditto.
3983
3984 2006-06-23  Danny Smith  <dannysmith@users.sourceforge.net>
3985
3986         * include/sys/time.h (struct timezone): Define.
3987         * include/time.h: Correct comment about timezone.
3988
3989 2006-06-18  Danny Smith  <dannysmith@users.sourceforge.net>
3990
3991         * configure.in (AC_CONFIG_AUX_DIR): Remove.
3992         * configure: Regenerate.
3993
3994 2006-06-18  Chris Sutcliffe  <ir0n3h4d@users.sourceforge.net>
3995
3996         * configure: add srcdir as a possible location for install-sh.
3997
3998 2006-06-18  Danny Smith  <dannysmith@users.sourceforge.net>
3999
4000         * mingwex/dirent.c (_tGetFileAttributes): New helper function.
4001         (_topendir): Use it.
4002
4003 2006-06-18  Danny Smith  <dannysmith@users.sourceforge.net>
4004
4005         * include/sys/time.h: Add header guard. Add extern "C" bracketing
4006         for __cplusplus.
4007         (gettimeofday): Add prototype.
4008         * mingwex/gettimeofday.c: New file.
4009         * mingwex/makefile.in: Add gettimeofday source and object.
4010
4011 2006-06-13  Danny Smith  <dannysmith@users.sourceforge.net>
4012
4013         * include/math.h (HUGE_VAL): Define as builtin if __GNUC__ >= 3.3,
4014         else global library variable.
4015         (HUGEVALF): Likewise.
4016         (HUGEVALL): Likewise.
4017         (INFINITY): Likewise.
4018         (NAN): LiKewise.
4019
4020 2006-06-13  Danny Smith  <dannysmith@users.sourceforge.net>
4021
4022         * mingwex/wcrtomb.c (wcrtomb_cp): Correct typo.
4023
4024 2006-06-13  Danny Smith  <dannysmith@users.sourceforge.net>
4025
4026         * Makefile.in (SUBDIRS): Change to lowercase for autoconf 2.59.
4027
4028 2006-05-24  Christopher Faylor  <cgf@timesys.com>
4029
4030         * configure.in: Update to newer autoconf.
4031         (thanks to Steve Ellcey)
4032         * mingwex/configure.in: Ditto.
4033         * profile/configure.in: Ditto.
4034         * configure: Regenerate.
4035         * mingwex/configure: Ditto.
4036         * profile/configure: Ditto.
4037         * aclocal.m4: New file.
4038         * mingwex/aclocal.m4: Ditto.
4039         * profile/aclocal.m4: Ditto.
4040
4041 2006-05-17  Danny Smith  <dannysmith@users.sourceforge.net>
4042
4043         * mingwex/wcrtomb.c (wcrtomb_cp): Test (wc > 255) only if C locale.
4044         Use supplied codepage as arg to WideCharToMultiByte.
4045
4046 2006-02-13  Earnie Boyd  <earnie@users.sf.net>
4047
4048         * Makefile.in (libmsvcr80.a): Add import lib.
4049         (libmsvcr80d.a): Ditto.
4050
4051 2006-01-18  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
4052
4053         * Makefile.in: Bump cygwin build number.
4054
4055 2005-10-27  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
4056
4057         * Include/_mingw.h: Increment version to 3.9.
4058         * Makefile.in: Ditto.
4059
4060 2005-10-14  Danny Smith  <dannysmith@users.sourceforge.net>
4061
4062         * include/limits.h (SSIZE_MAX): Define.
4063         (LLONG_MAX, LLONG_MIN, ULLONG_MAX): Separate from non-ISO names.
4064
4065 2005-10-13  Wu Yongwei  <adah@users.sourceforge.net>
4066
4067         * include/tchar.h: Include <wchar.h> when _UNICODE is defined.
4068         (_TEOF): New macro definition for _UNICODE and non_UNICODE cases.
4069
4070 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
4071
4072         * include/stddef.h: Remove.
4073         * include/stdarg.h: Remove.
4074
4075 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
4076
4077         * mingwex/complex/csqrt.c (csqrt): The sign of real part
4078         of result is positive when real part of arg == 0;
4079         * mingwex/complex/csqrtf.c (csqrtf): Ditto.
4080         * mingwex/complex/csqrtl.c (csqrtl): Ditto.
4081
4082 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
4083
4084         * include/time.h (_time64): Correct prototype.
4085
4086 2005-10-08  Danny Smith  <dannysmith@users.sourceforge.net>
4087
4088         * mingwex/fegetenv.c (fegetenv): Restore exception masks.
4089         * mingwex/feholdexcept.c (feholdexcept): Don't set exceptions
4090         to non-stop. Use "fnclex" to clear exception flags.
4091
4092 2005-09-24  Danny Smith  <dannysmith@users.sourceforge.net>
4093
4094         * include/math.h (HUGE_VALF, HUGE_VALL, INFINITY, NAN)
4095         Avoid raising FP exceptions.
4096
4097 2005-09-19  Danny Smith  <dannysmith@users.sourceforge.net>
4098
4099         * include/stdlib.h (strtof): Add prototype. Uglify
4100         parameter names in inline definition.
4101         (wcstof): Likewise.
4102         (_Exit): Uglify parameter names in inline definition.
4103         (llabs): Add prototype.
4104         (_set_error_mode): Add prototype and input defines.
4105
4106 2005-08-25  Danny Smith  <dannysmith@users.sourceforge.net>
4107
4108         * mingwex/fe*.c: Revert previous changes.
4109         * include/fenv.h: Revert previous changes.
4110
4111 2005-08-25  Danny Smith  <dannysmith@users.sourceforge.net>
4112
4113         * mingwex/feclearexcept.c (feclearexcept): Change declaration.
4114         Do not return a value.
4115         * mingwex/fegetexceptflag.c (fegetexceptflag): Likewise.
4116         * mingwex/feraiseexcept.c (feraiseexcept): Likewise.
4117         * mingwex/fesetexceptflag.c (fesetexceptflag): Likewise.
4118         * mingwex/fegetenv.c (fegetenv): Likewise.
4119         * mingwex/fesetenv.c (fesetenv): Likewise.
4120         * mingwex/feupdateenv.c (feupdateenv): Likewise.
4121         * include/fenv.h (feclearexcept, fegetexceptflag, feraiseexcept,
4122         fesetexceptflag, fegetenv, fesetenv, feupdateenv): Correct
4123         prototypes.
4124
4125 2005-08-25  Danny Smith  <dannysmith@users.sourceforge.net>
4126
4127         * mingwex/stdio/fseeko64.c (fseeko64): Flush stream before
4128         getting filelength for SEEK_END.
4129
4130 2005-08-13  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net>
4131
4132         * Include/_mingw.h: Increment version to 3.8.
4133         * Makefile.in: Ditto.
4134
4135 2005-08-10  Danny Smith  <dannysmith@users.sourceforge.net>
4136
4137         * include/wctype.h (towupper, towlower): Change arg and return value
4138         types to wint_t.
4139         * include/ctype.h (towupper, towlower): Likewise.
4140
4141 2005-08-10  Danny Smith  <dannysmith@users.sourceforge.net>
4142
4143         * mthr_stub.c (__mingwthr_key_dtor): Replace assert(0) with
4144         a diagnostic, guarded by #ifdef DEBUG.
4145         (__mingwthr_remove_key_dtor): Likewise.
4146
4147 2005-08-08  Danny Smith  <dannysmith@users.sourceforge.net>
4148
4149         * moldname.def.in (sleep, beep, seterrormode): Remove.
4150
4151 2005-06-16  Danny Smith  <dannysmith@users.sourceforge.net>
4152
4153         * profile/profile.h (_MCOUNT_CALL): Define as regparm(2)
4154         (_MCOUNT_DECL): Use it.
4155         (MCOUNT): Save and restore eax, ecx, edx registers.
4156         * profile/mcount.c (_mcount): ANSI-fy.
4157
4158 2005-06-16  Danny Smith  <dannysmith@users.sourceforge.net>
4159
4160         * include/_mingw.h (__MINGW_GNUC_PREREQ): Define. Use to
4161         guard __MINGW_ATTRIB macro definitions.
4162         * include/math.h (logb[fl]): Don't define inlines for
4163         GCC-4.0+ && __FAST_MATH__.
4164         (rint[fl], lrint[fl], llrint[fl]); Likewise. Clean up
4165         line-continuation backslashes.
4166
4167 2005-06-06  Danny Smith  <dannysmith@users.sourceforge.net>
4168
4169         * include/_mingw.h (__MINGW_ATTRIBUTE_NONNULL): Fix typo
4170         in GNUC version guard.
4171
4172 2005-05-20  Danny Smith  <dannysmith@users.sourceforge.net>
4173
4174         * crt1.c (_gnu_exception_handler): Handle illegal instruction
4175         OS exception as a signal if user has defined a SIGILL handler.
4176
4177 2005-05-10  Danny Smith  <dannysmith@users.sourceforge.net>
4178
4179         * mingwex/math/nexttoward.c: New file.
4180         * mingwex/math/nexttowardf.c: New file.
4181         * mingwex/math/nextafterl.c: Add nexttowardl alias.
4182         * mingwex/Makefile.in (MATH_DISTFILES): Add nexttoward.c,
4183         mexttowardf.c,
4184         (MATH_OBJS): Add nexttoward.o,  nexttowardf.o,
4185         * include/math.h (nexttoward, nextowardf, nexttowardl): Add
4186         prototypes.
4187
4188 2005-05-09  Danny Smith  <dannysmith@users.sourceforge.net>
4189
4190         * mingwex/math/nextafterf.c (nextafterf): Correct
4191         handling of -0.0.
4192         * mingwex/math/nextafterl.c: New file.
4193         * mingwex/Makefile.in (MATH_DISTFILES): Add nextafterl.c.
4194         (MATH_OBJS): Add nextafterl.o.
4195         * include/math.h (nextafterl): Uncomment prototype.
4196
4197 2005-05-08  Danny Smith  <dannysmith@users.sourceforge.net>
4198
4199         * mingwex/math/erfl.c: New file.
4200         * mingwex/Makefile.in (MATH_DISTFILES): Add erfl.c.
4201         (MATH_OBJS): Add erfl.o.
4202         * include/math.h (erfl, erfcl): Uncomment prototypes.
4203
4204 2005-05-04  Danny Smith  <dannysmith@users.sourceforge.net>
4205
4206         * include/wchar.h (WCHAR_MAX): Define as 0xffff, so preprocessor
4207         #if (WCHAR_MAX <= WCHAR_MIN) is false.
4208         * include/stdint.h (WCHAR_MAX): Likewise.
4209         (WINT_MAX): Likewise.
4210
4211 2005-05-03  Danny Smith  <dannysmith@users.sourceforge.net>
4212
4213         * mingwex/math/signbit.c (__signbit): Make return value
4214         consistent with GCC's __builtin_signbit.
4215         * mingwex/math/signbitf.c (__signbitf): Likewise.
4216         * mingwex/math/signbitf.c (__signbitl): Likewise.
4217         * include/math.h (__signbit, __signbitf, __signbitl): Likewise
4218         for inlines.
4219
4220 2005-05-02  Danny Smith  <dannysmith@users.sourceforge.net>
4221
4222         * include/_mingw.h (__MINGW_ATTRIB_NONNULL): Don't define as
4223         variadic macro.
4224         * mingwex/mbrtowc.c (__mbrtowc_cp): Use __MINGW_ATTRIB_NONNULL.
4225         Remove unused MBTOWC_FLAGS define.
4226
4227 2005-04-23  Danny Smith  <dannysmith@users.sourceforge.net>
4228
4229         * mingwex/mbrtowc.c: New file.
4230         * mingwex/wcrtomb.c: New file.
4231         * mingwex/btowc.c: New file.
4232         * mingwex/wctob.c: New file.
4233         * mingwex/mb_wc_common.h: New file.
4234         * mingwex/Makefile.in (DISTFILES): Add new files.
4235         (Q8_OBJS): Add new objects.
4236         * include/wchar.h: Adjust comment about mbrtowc() and related
4237         funcions. Add __restrict__ to pointer params in prototypes.
4238         (wmemset. wmemchr, wmemcpy, wmemmove, wcstoll, wcstoull): Remove
4239         arg names from protototypes.
4240
4241 2005-04-23  Wu Yongwei  <adah@sh163.net>
4242
4243         * mingwex/dirent.c: Formatting changes.
4244         * mingwex/dirent.c (_topendir): Make the end-of-path slash check
4245         MBCS-safe.
4246
4247 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
4248
4249         * include/_mingw.h (__MINGW_ATTRIB_NONNULL): Define.
4250
4251 2005-03-24  Danny Smith  <dannysmith@users.sourceforge.net>
4252
4253         * include/stdio.h (__mingw_fwrite): Change return value to
4254         size_t.
4255         * mingwex/mingw-fseek.c (__mingw_fwrite): Likewise.
4256
4257 2005-03-15  Hans Leidekker  <hans@it.vu.nl>
4258
4259         * include/malloc.h (_FREEENTRY, _USEDENTRY): Correct defines.
4260
4261 2005-02-25  Danny Smith  <dannysmith@users.sourceforge.net>
4262
4263         * include/wctype.h (wctrans): Remove _CRTIMP.
4264         (towctrans): Likewise.
4265         (wctype): Likewise,
4266
4267 2005-02-25  Danny Smith  <dannysmith@users.sourceforge.net>
4268
4269         * include/wctype.h: Add comment on wctrans, towctrans, wctype.
4270
4271 2005-02-25  Danny Smith  <dannysmith@users.sourceforge.net>
4272
4273         * mingwex/wctype.c: New file.
4274         * mingwex/wctrans.c: New file.
4275         * mingwex/Makefile.in (DISTFILES): Add wctype.c, wctrans.c.
4276         * mingwex/Makefile.in (Q8_OBJS): Add wctype.o, wctrans.o.
4277
4278 2005-02-11  Danny Smith  <dannysmith@users.sourceforge.net>
4279
4280         * include/tchar.h (_tstat64, _tstati64): Add Unicode/ANSI mappings.
4281
4282 2005-02-11  Danny Smith  <dannysmith@users.sourceforge.net>
4283
4284         * include/assert.h: Remove header guard. #undef assert macro.
4285         (_assert): Use __MINGW_ATTRIB_NORETURN define.
4286
4287 2005-02-11  Gregory W. Chicares  <chicares@cox.net>
4288
4289         * include/math.h (expm1, expm1f, expm1l): Add prototypes.
4290         * mingwex/Makefile.in (MATH_DISTFILES): Add expm1.c,
4291         expm1f.c, expm1l.c.
4292         (MATH_OBJS): Add expm1.o, expm1f.o, expm1l.o.
4293         * mingwex/math/expm1.c: New file.
4294         * mingwex/math/expm1f.c: New file.
4295         * mingwex/math/expm1l.c: New file.
4296
4297 2005-02-07  Danny Smith  <dannysmith@users.sourceforge.net>
4298
4299         * include/sys/stat.h (struct stat): Guard with _NO_OLDNAMES.
4300         * include/wchar.h (struct stat): Likewise.
4301         Bug reported to Debian by Anand Kumria <wildfire@progsoc.org>
4302
4303         * include/sys/stat.h: Remove empty __STRICT_ANSI__ guard.
4304
4305 2005-02-01  Danny Smith  <dannysmith@users.sourceforge.net>
4306
4307         * mingwex/strtold.c (__asctoe64): Set endptr to 'e' if exponent
4308         string is not valid.
4309
4310 2005-01-26  Oliver Stoeneberg  <oliverst@online.de>
4311
4312         * include/malloc.h: Add missing return code defines for
4313         _heapwalk()
4314
4315 2005-01-17  Danny Smith  <dannysmith@users.sourceforge.net>
4316
4317         * include/sys/stat.h (struct __stat64): Change st_size type to
4318          __int64.
4319         * include/wchar.h (struct __stat64): Change st_size type to __int64.
4320
4321 2005-01-13  Earnie Boyd  <earnie@users.sf.net>
4322
4323         * include/sys/stat.h (_S_IFLNK, S_IFLNK, _S_ISLNK, S_ISLNK, _lstat,
4324         lstat): Remove.
4325         * include/errno.h (ELOOP): Ditto.
4326         * include/_mingw.h: Increment version to 3.7.
4327         * Makefile.in: Ditto.
4328
4329 2005-01-11  Danny Smith  <dannysmith@users.sourceforge.net>
4330
4331         * include/tchar.h (_tfreopen): Add UNICODE mappings.
4332
4333 2005-01-11  Earnie Boyd  <earnie@users.sf.net>
4334
4335         * include/sys/stat.h (_S_IFLNK, S_IFLNK, _S_ISLNK, S_ISLNK, _lstat,
4336         lstat): Conditionalize defines for __STRICT_ANSI__.
4337
4338 2005-01-10  Earnie Boyd  <earnie@users.sf.net>
4339
4340         * include/errno.h (ELOOP): Add definition.
4341
4342 2005-01-10  Danny Smith  <dannysmith@users.sourceforge.net>
4343
4344         * mingwex/complex/(cabsl.c cacosl.c cacoshl.c cargl.c casinl.c
4345         casinhl.c catanl.c catanhl.c ccosl.c ccoshl.c cexpl.c cimagl.c
4346         clogl.c cpowl.c cprojl.c creall.c csinl.c csinhl.c csqrtl.c
4347         ctanl.c ctanhl.c): New files.
4348         * mingwex/Makefile.in (COMPLEX_DISTFILES): Adjust.
4349         (COMPLEX_OBJS): Adjust.
4350         * include/complex.h (cabsl, cacosl, cacoshl, cargl, casinf.
4351         casinhl, catanl, catanhl, ccosl, ccoshl, cexpl, cimagl, clogl,
4352         cpowl, cprojl, creall, csinl, csinhl, csqrtl, ctanl, ctanhl):
4353         Declare.
4354
4355 2005-01-06  Danny Smith  <dannysmith@users.sourceforge.net>
4356
4357         * include/_mingw.h (__int16): Define as short.
4358         Thanks to: Leo Yuriev <leoyuriev at users dot sf dot net>
4359
4360 2005-01-06  Danny Smith  <dannysmith@users.sourceforge.net>
4361
4362         * include/stdio.h (P_tmpdir): Add define.
4363
4364 2005-01-03  Earnie Boyd  <earnie@users.sf.net>
4365
4366         * Makefile.in (inst_docdir): For Cygwin target set to share/doc/.
4367
4368 2005-01-02  Earnie Boyd  <earnie@users.sf.net>
4369
4370         * include/_mingw.h: Increment version to 3.6
4371         * Makefile.in: Ditto
4372
4373 2004-12-26  Danny Smith  <dannysmith@users.sourceforge.net>
4374
4375         * mingwex/complex/(cabsf.c cacosf.c cacoshf.c cargf.c casinf.c
4376         casinhf.c catanf.c catanhf.c ccosf.c ccoshf.c cexpf.c cimagf.c
4377         clogf.c cpowf.c cprojf.c crealf.c csinf.c csinhf.c csqrtf.c
4378         ctanf.c ctanhf.c): New files.
4379         * mingwex/Makefile.in (COMPLEX_DISTFILES): Adjust.
4380         (COMPLEX_OBJS): Adjust.
4381         * include/complex.h (cabsf, cacosf, cacoshf, cargf, casinf.
4382         casinhf, catanf, catanhf, ccosf, ccoshf, cexpf, cimagf, clogf,
4383         cpowf, cprojf, crealf, csinf, csinhf, csqrtf, ctanf, ctanhf):
4384         Declare.
4385
4386 2004-12-20  Danny Smith  <dannysmith@users.sourceforge.net>
4387
4388         * include/wchar.h (wcsdup): Correct prototype.
4389         * include/string.h (wcsdup): Correct prototype.
4390
4391 2004-10-14  Danny Smith  <dannysmith@users.sourceforge.net>
4392
4393         * include/sys/stat.h: Make S_ISLNK comment comply with ISO C90.
4394
4395 2004-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
4396
4397         * mingwex/math/fastmath.h: New file.
4398         * mingwex/math/asinh.c: New file.
4399         * mingwex/math/asinhf.c: New file.
4400         * mingwex/math/asinhl.c: New file.
4401         * mingwex/math/acosh.c: New file.
4402         * mingwex/math/acoshf.c: New file.
4403         * mingwex/math/acoshl.c: New file.
4404         * mingwex/math/atanh.c: New file.
4405         * mingwex/math/atanhf.c: New file.
4406         * include/math.h (asinh, asinhf, asinhl, acosh, acoshf, acoshl,
4407         atanh, atanhf, atanhl): Add prototypes.
4408         * mingwex/Makefile.in (MATH_OBJS): Add objects for above to list.
4409         (MATH_DISTFILES): Add sources for above and fastmath.h to list.
4410         Specify dependency on fastmath.h for new objects.
4411
4412 2004-09-08  Earnie Boyd  <earnie@users.sf.net>
4413
4414         * include/sys/stat.h (_S_IFLNK): Add definition.
4415         (S_IFLNK) Ditto.
4416         (_lstat) Ditto.
4417         (lstat) Ditto.
4418         (_S_ISLNK) Recode.
4419         (S_ISLNK) Ditto.
4420
4421 2004-09-08  Earnie Boyd  <earnie@users.sf.net>
4422
4423         * include/sys/stat.h (_S_ISLNK): Add definition.
4424         (S_ISLNK): Ditto.
4425
4426 2004-09-05  Earnie Boyd  <earnie@users.sf.net>
4427
4428         * include/_mingw.h: Increment minor version for 3.5 release.
4429         * Makefile.in: Ditto.
4430         * mingwex/Makefile.in: Correct typo in list of DISTFILES.
4431
4432 2004-08-24  Danny Smith  <dannysmith@users.sourceforge.net>
4433
4434         * include/malloc.h (__mingw_aligned_offset_malloc,
4435         __mingw_aligned_offset_realloc, __mingw_aligned_malloc,
4436         __mingw_aligned_realloc, __mingw_aligned_free): Add
4437         prototypes.
4438         * mingwex/Makefile.in (DISTFILES): Add mingw-aligned-malloc.c,
4439         tst-aligned-malloc.c.
4440         (REPLACE_OBJS): Add mingw-aligned-malloc.o.
4441
4442 2004-08-24  Steven G. Johnson  <stevenj@alum.mit.edu>
4443
4444         * mingwex/mingw-aligned-malloc.c: New file.
4445         * mingwex/tst-aligned-malloc.c: New file.
4446
4447 2004-08-24  Danny Smith  <dannysmith@users.sourceforge.net>
4448
4449         * crt1.c: (__mingw_CRTStartup): Change return to void. Add
4450         noreturn attribute. Align stack to 16 bytes before passing args
4451         to main.
4452         (mainCRTStartup): Change return to void.
4453         (WinMainCRTStartup): Likewise.
4454
4455 2004-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
4456
4457         * profile/COPYING: New file.
4458         * profile/CYGWIN_LICENSE: New file.
4459         * profile/Makefile.in (DISTFILES): Add COPYING, CYGWIN_LICENSE.
4460
4461 2004-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
4462
4463         * mingwex/fopen64.c: Move.
4464         * mingwex/fseeko64.c: Move.
4465         * mingwex/ftello64.c: Move.
4466         * mingwex/lseek64.c: Move.
4467         * mingwex/stdio/fopen64.c: To here.
4468         * mingwex/stdio/fseeko64.c: To here.
4469         * mingwex/stdio/ftello64.c: To here.
4470         * mingwex/stdio/lseek64.c: To here.
4471
4472 2004-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
4473
4474         * profile/gmon.c [__MINGW32__]: Include string.h for
4475         memset prototype.
4476
4477 2004-08-08  Christopher Faylor  <cgf@timesys.com>
4478
4479         * mingwex/stdio/vwscanf.c: Add stdio.h needed after 2004-08-07 change.
4480
4481 2004-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
4482
4483         * include/complex.h: Remove __attribute__ ((const)) from
4484         transcendantal and trig functions. Replace __attribute__ ((const))
4485         with __MINGW_ATTRIB_CONST on other declarations.
4486
4487 2004-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
4488
4489         * include/wchar.h: Reorganize, avoid including other headers.
4490
4491 2004-08-07  Danny Smith  <dannysmith@users.sourceforge.net>
4492
4493         * include/string.h (memchr, memcmp, strchr, strcmp, strcspn)
4494         (strlen, strncmp, strpbrk, strrchr, strspn, strstr): Add pure
4495         attribute.
4496
4497 2004-07-30  Danny Smith  <dannysmith@users.sourceforge.net>
4498
4499         * include/dirent.h (struct _wdirent): Remove obsolete comment.
4500
4501 2004-07-30  Danny Smith  <dannysmith@users.sourceforge.net>
4502
4503         * include/string.h: Revert 2004-07-26 additions of
4504         __ATTRIBUTE_PURE.
4505
4506 2004-07-28  Danny Smith  <dannysmith@users.sourceforge.net>
4507
4508         * mingwex/math/powl.c (powl): Revert change of 2004-02-01.
4509         (__convert_inf_to_maxnum): New.static inline.
4510         (reducl): Use it to protect against Inf - Inf.
4511         (__fast_ldexpl): New function. Use in lieu of ldexpl.
4512
4513 2004-07-27  Danny Smith  <dannysmith@users.sourceforge.net>
4514
4515         * mingwex/math/expl.c (expl): Move body of code to new static
4516         function __expl, removing tests for +/-Inf. Extern function
4517         expl calls __expl after testing for max, min log thresholds.
4518
4519 2004-07-26  Danny Smith  <dannysmith@users.sourceforge.net>
4520
4521         * mingwex/stdio/vsscanf.c: Add "edi" to registers-modified field
4522         * mingwex/stdio/vfscanf.c: Likewise.
4523         * mingwex/stdio/vswscanf.c: Likewise.
4524         * mingwex/stdio/vfwscanf.c: Likewise.
4525
4526 2004-07-26  Danny Smith  <dannysmith@users.sourceforge.net>
4527
4528         * include/_mingw.h: Use only two underscores to uglify
4529         __MINGW_ATTRIB_* macros.
4530         * include/stdlib.h: Adjust __MINGW_ATTRIB_* tokens.
4531         * include/setjmp.h: Likewise.
4532
4533         * include/sting.h: Add __MINGW_ATTRIB_PURE to locale-independent
4534         string functions.
4535         (_strdup, strdup): Add __MINGW_ATTRIB_MALLOC.
4536
4537 2004-07-25  Danny Smith  <dannysmith@users.sourceforge.net>
4538
4539         * include/string.h: Group wide string functions together,
4540         and protect with _WSTRING_DEFINED.
4541
4542 2004-07-25  Danny Smith  <dannysmith@users.sourceforge.net>
4543
4544         * include/_mingw.h (__MINGW_ATTR_*): Replace with
4545         __MINGW_ATTRIB_*.
4546         * include/stdlib.h (_ATTRIB_NORETURN): Replace with
4547         __MINGW_ATTRIB_NORETURN, throughout.
4548         (malloc): Declare with __MINGW_ATTRIB_MALLOC.
4549         (calloc): Likewise.
4550         (abs): Declare with __MINGW_ATTRIB_CONST.
4551         (labs): Likewise.
4552         (div): Likewise.
4553         (ldiv): Likewise.
4554         (lldiv): Likewise.
4555         (_rotl): Likewise.
4556         (_rotr): Likewise.
4557         (_lrotl): Likewise.
4558         (_lrotr): Likewise.
4559         * include/setjmp.h (longjmp): Add __MINGW_ATTRIB_NORETURN.
4560
4561 2004-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
4562
4563         * include/_mingw.h: Undefine __attribute__.
4564         (__MINGW_ATTR_NORETURN): New define.
4565         (__MINGW_ATTR_CONST): New define.
4566         (__MINGW_ATTR_MALLOC): New define.
4567         (__MINGW_ATTR_PURE): New define.
4568         (_CRTIMP, __cdecl, __stdcall, __UNUSED_PARAM): Ansi-fy
4569         expansions.
4570
4571 2004-07-19  Danny Smith  <dannysmith@users.sourceforge.net>
4572
4573         * include/time.h (__time64_t): Add missing ';'.
4574
4575 2004-07-17  Danny Smith  <dannysmith@users.sourceforge.net>
4576
4577         * include/time.h (wcsftime): Move out of !__STRICT_ANSI__ block.
4578         (struct tm): Protect with _TM_DEFINED.
4579
4580 2004-07-17  Christopher Faylor  <cgf@timesys.com>
4581
4582         * Makefile.in (CC): Strip inappropriate include file settings from any
4583         passed-in CC.
4584
4585 2004-07-15  "dgun"  <dgun@umpire.com>
4586
4587         * include/complex.h (conj): Correct typo in prototype.
4588
4589 2004-07-15  Danny Smith  <dannysmith@users.sourceforge.net>
4590
4591         * include/math.h: Add pragma GCC system_header.
4592
4593 2004-07-15  Danny Smith  <dannysmith@users.sourceforge.net>
4594
4595         * mingwex/complex/carg.c: New file.
4596         * mingwex/Makefile.in: Really add carg.o to libmingwex.a.
4597
4598 2004-07-15  Corinna Vinschen  <corinna@vinschen.de>
4599
4600         * Makefile.in (INCLUDES): Temporarily revert previous change.
4601         * mingwex/Makefile,in (INCLUDES): Ditto.
4602         * profile/Makefile,in (INCLUDES): Ditto.
4603         * mingwex/Makefile,in: Drop carg.o dependency.
4604
4605 2004-07-14  Christopher Faylor  <cgf@timesys.com>
4606
4607         * mingwex/fwide.c: Include <stdio.h> to resolve FILE usage.
4608
4609 2004-07-14  Danny Smith  <dannysmith@users.sourceforge.net>
4610
4611         * Makefile.in (INCLUDES): Designate $(srcdir)/../include as a
4612         system dir.
4613         * mingwex/Makefile,in (INCLUDES): Ditto.
4614         * profile/Makefile,in (INCLUDES): Ditto.
4615
4616         * mingwex/Makefile,in: Add carg.o to libmingwex.a.
4617
4618 2004-07-13  Earnie Boyd  <earnie@users.sourcefourge.net>
4619
4620         * Makefile.in: Move use of --nostdinc++ as GCC3.4 warns to use it
4621         for C modules.
4622         * mingwex/Makefile.in: Ditto.
4623         * profile/Makefile.in: Ditto.
4624         * include/limits.h: Change to new file header preamble.
4625         * include/_mingw.h: Increment minor version for 3.4 release.
4626         * Makefile.in: Ditto.
4627
4628 2004-07-12  Danny Smith  <dannysmith@users.sourceforge.net>
4629
4630         * mingwex/math/cephes_emath.h (__etens): Remove declaration.
4631
4632 2004-07-11  Danny Smith  <dannysmith@users.sourceforge.net>
4633
4634         * include/unistd.h (ftruncate): Add inline definition.
4635         * mingwex/ftruncate.c: New file.
4636         * mingwex/Makefile.in: Add ftruncate.o to libmingwex.a.
4637
4638 2004-07-10  Danny Smith  <dannysmith@users.sourceforge.net>
4639
4640         * include/time.h: Do not include sys/types.h.
4641
4642 2004-07-02  Danny Smith  <dannysmith@users.sourceforge.net>
4643
4644         * mingwex/Makefile.in (MATH_DISTFILES): Remove pow.c,
4645         (MATH_OBJS): Remove pow,o.
4646         * include/math.h (pow): Declare with _CRTIMP.
4647         Add comment on how to avoid excess precision problems.
4648
4649 2004-06-30  Danny Smith  <dannysmith@users.sourceforge.net>
4650
4651         * include/stdio.h (__mingw_fseeko64): Add prototype.
4652         * mingwex/mingw-fseek.c (__mingw_fseeko64): Add definition.
4653         (__mingw_fwrite): Handle huge files.
4654
4655 2004-06-30  Kees Zeelenberg  <kzlg@users.sourceforge.net>
4656           Danny Smith <dannysmith@users.sourceforge.net>
4657
4658         * include/stdio.h (fopen64): Add inline function.
4659         (fseeko64): Add prototype.
4660         (ftello64): Add inline function.
4661         * include/io.h (lseek64): Add inline function.
4662         * include/sys/types (off64_t): Add typedef.
4663         (fpos64_t): Add typedef.
4664         * mingwex/fopen64.c: New file.
4665         * mingwex/fseeko64.c: New file.
4666         * mingwex/ftello64.c: New file.
4667         * mingwex/lseek64.c: New file.
4668         * mingwex/Makefile.in (STDIO_DISTFILES): Add fopen64.c,
4669         fseeko.64.c, ftello64.c, lseek64.c.
4670         (STDIO_OBJS): Add fopen64.o, fseeko.64.o, ftello64.o, lseek64.o.
4671
4672 2004-04-24  Luke Dunstan  <infidel@users.sourceforge.net>
4673
4674         * include/limits.h (_I64_MIN, _I64_MAX, _UI64_MAX): Add defines.
4675
4676 2004-04-22  Earnie Boyd  <earnie@users.sf.net>
4677
4678         * DISCLAIMER: Add words about "free to use".
4679         * README: Modify "Win32 runtime" to "Microsoft C Runtime".
4680         * Makefile.in (SRCDIST_FILES): Add DISCLAIMER and CONTRIBUTORS.
4681         (inst_docdir): New variable.
4682         (INSTDOCS): Ditto.
4683         (FLAGS_TO_PASS): Include inst_docdir.
4684         (install-dirs): Add inst_docdir.
4685         (install): Add loop for INSTDOCS.
4686         * strncasecmp.c: Reword copyright and disclaimer. Move Contributors
4687         section to CONTRIBUTORS file. Remove RCS tags.
4688
4689 2004-04-22  Danny Smith  <dannysmith@users.sourceforge.net>
4690
4691         * mingwex/math/lround.c: Rewrite.
4692         * mingwex/math/lroundf.c: Rewrite.
4693         * mingwex/math/lroundl.c: Rewrite.
4694         * mingwex/math/llround.c: Rewrite.
4695         * mingwex/math/llroundf.c: Rewrite.
4696         * mingwex/math/llroundl.c: Rewrite.
4697
4698 2004-04-20  Earnie Boyd  <earnie@users.sf.net>
4699
4700         * CONTRIBUTORS: New file.
4701         * DISCLAIMER: Ditto.
4702         * CRT_noglob.c: Reword copyright and disclaimer. Move Contributors
4703         section to CONTRIBUTORS file. Remove RCS tags.
4704         * CRTFmode.c: Ditto.
4705         * CRTglob.c: Ditto.
4706         * CRTinit.c: Ditto.
4707         * crt1.c: Ditto.
4708         * crtdll.dev: Ditto.
4709         * dllcrt1.c: Ditto.
4710         * dllmain.c: Ditto.
4711         * gccmain.c: Ditto.
4712         * init.c: Ditto.
4713         * isascii.c: Ditto.
4714         * iscsym.c: Ditto.
4715         * iscsymf.c: Ditto.
4716         * jamfile: Ditto.
4717         * main.c: Ditto.
4718         * msvcrt.def.in: Ditto.
4719         * strcasecmp.c: Ditto.
4720         * toascii.c: Ditto.
4721         * wcscmpi.c: Ditto.
4722         * include/assert.h: Ditto.
4723         * include/conio.h: Ditto.
4724         * include/ctype.h: Ditto.
4725         * include/direct.h: Ditto.
4726         * include/dirent.h: Ditto.
4727         * include/dos.h: Ditto.
4728         * include/errno.h: Ditto.
4729         * include/excpt.h: Ditto.
4730         * include/fcntl.h: Ditto.
4731         * include/float.h: Ditto.
4732         * include/io.h: Ditto.
4733         * include/locale.h: Ditto.
4734         * include/malloc.h: Ditto.
4735         * include/math.h: Ditto.
4736         * include/process.h: Ditto.
4737         * include/setjmp.h: Ditto.
4738         * include/share.h: Ditto.
4739         * include/signal.h: Ditto.
4740         * include/stdio.h: Ditto.
4741         * include/stdlib.h: Ditto.
4742         * include/string.h: Ditto.
4743         * include/tchar.h: Ditto.
4744         * include/time.h: Ditto.
4745         * include/wchar.h: Ditto.
4746         * include/sys/locking.h: Ditto.
4747         * include/sys/param.h: Ditto.
4748         * include/sys/stat.h: Ditto.
4749         * include/sys/timeb.h: Ditto.
4750         * include/sys/types.h: Ditto.
4751         * include/sys/utime.h: Ditto.
4752         * mingwex/dirent.c: Ditto.
4753
4754 2004-04-19  Earnie Boyd  <earnie@users.sf.net>
4755
4756         * include/_mingw.h: Revert to primary release 3 and increment minor
4757         release to 3.
4758         * Makefile.in (VERSION): Ditto.
4759
4760 2004-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
4761
4762         * crt1.c (_mingw32_init_fmode): Set *_imp___fmode_dll to
4763         _fmode if not __MSVCRT__.
4764
4765 2004-03-30  Danny Smith  <dannysmith@users.sourceforge.net>
4766
4767         * include/io.h: (_findfirst): Correct prototype.
4768
4769 2004-03-30  Hans Leidekker  <hans@it.vu.nl>
4770
4771         * include/io.h: (_findnext, _findclose): Correct prototype.
4772
4773 2004-03-28  Hans Leidekker  <hans@it.vu.nl>
4774
4775         * include/math.h (FP_*): Add defines.
4776
4777 2004-03-29  Danny Smith  <dannysmith@users.sourceforge.net>
4778
4779         * mingwex/math/round.c: Rewrite.
4780         * mingwex/math/roundf.c: Rewrite.
4781         * mingwex/math/roundl.c: Rewrite.
4782
4783 2004-03-25  Danny Smith  <dannysmith@users.sourceforge.net>
4784
4785         * include/_mingw.h (__MSVCRT_VERSION__): Define default as 0x0600.
4786         * include/time.h (__time64_t): Add typedef.
4787         (_mktime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
4788         (_ctime64): Likewise.
4789         (_wctime64): Likewise.
4790         (_gmtime64): Likewise.
4791         (_localtime64): Likewise.
4792         (wcsftime): Move into _WTIME_DEFINED block.
4793         Regroup non-ANSI prototypes.
4794         * include/io.h: Include <stdint.h>.
4795         (__finddata64_t): Add struct definition.
4796         (__wfinddata64_t): Likewise.
4797         (_findfirst64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
4798         (_findnext64): Likewise.
4799         (_wfindfirst64): Likewise.
4800         (_wfindnext64): Likewise.
4801         * include/sys/timeb.h (__timeb64): Add struct definition.
4802         (_ftime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
4803         * include/sys/utime.h (__utimbuf64): Add struct definition.
4804         (_utime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
4805         (_futime64): Likewise.
4806         (_wutime64): Likewise.
4807         * include/sys/stat.h (__stat64): Add struct definition.
4808         (_fstat64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
4809         (_stat64): Likewise.
4810         (_wstat64): Likewise.
4811         * include/sys/types.h (__time64_t): Add typedef.
4812         * include/wchar.h (__wfinddata64_t): Add structure definition.
4813         (__stat64): Likewise.
4814         (_wctime64): Add prototype for __MSVCRT_VERSION__ >= 0x0601.
4815         (_wfindfirst64): Likewise.
4816         (_wfindnext64): Likewise.
4817         (_wutime64): Likewise.
4818         (_wstat64): Likewise.
4819         * include/malloc.h (_aligned_free): Add prototype for
4820         __MSVCRT_VERSION__ >= 0x0700.
4821         (_aligned_malloc): Likewise.
4822         (_aligned_offset_malloc): Likewise.
4823         (_aligned_offset_realloc): Likewise.
4824         (_aligned_realloc): Likewise.
4825         * include/string.h (_wcserror): Add prototype for
4826         __MSVCRT_VERSION__ >= 0x0700.
4827         (__wcserror): Likewise.
4828         * include/math.h (_set_SSE2_enable): Add prototype for
4829         __MSVCRT_VERSION__ >= 0x0701.
4830
4831 2004-03-25  Danny Smith  <dannysmith@users.sourceforge.net>
4832
4833         * include/stdio.h (_fsopen): Add prototype.
4834         * include/tchar.h (_tfsopen): Add defines.
4835         Thanks to "Gerik" <gerikr at users dot sourceforge dot net>
4836
4837 2004-03-19  Danny Smith  <dannysmith@users.sourceforge.net>
4838
4839         * msvcrt.def.in: Add stubs for msvcrt.dll (version 6.10),
4840         msvcr70.dll, and msvcr71.dll.
4841         * Makefile.in (msvcr*.def): Define preprocessor __msvcr*__ constant
4842         using basename of output def file.
4843
4844 2004-03-13  Danny Smith  <dannysmith@users.sourceforge.net>
4845
4846         * include/malloc.h: Remove __STRICT_ANSI__ guard.
4847
4848 2004-03-11  Brian Keener  <bkeener@thesoftwaresource.com>
4849
4850         * include/process.h: Remove the #endif associated with removal of
4851         __STRICT_ANSI__ guard from non-ANSI header.
4852
4853 2004-03-10  Danny Smith  <dannysmith@users.sourceforge.net>
4854
4855         * include/conio.h: Remove __STRICT_ANSI__ guard from non-ANSI header.
4856         * include/direct.h: Ditto.
4857         * include/dirent.h: Ditto.
4858         * include/dos.h: Ditto.
4859         * include/excpt.h: Ditto.
4860         * inlude/fcntl,h
4861         * include/io.h: Ditto.
4862         * inlude/mem.h: Ditto.
4863         * include/memory.h: Ditto.
4864         * include/process.h: Ditto.
4865         * inlude/search.h: Ditto.
4866         * include/share.h: Ditto.
4867         * include/unistd.h: Ditto.
4868         * include/sys/fcntl.h: Ditto.
4869         * include/file.h: Ditto.
4870         * include/sys/locking.h: Ditto.
4871         * include/sys/param.h: Ditto.
4872         * include/sys/stat,h
4873         * include/sys/time.h: Ditto.
4874         * include/sys/timeb.h: Ditto.
4875         * include/sys/types.h: Ditto.
4876         * include/sys/unistd.h: Ditto.
4877         * include/sys/utime.h: Ditto.
4878
4879 2004-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
4880
4881         * include/_mingw.h (__UNUSED_PARAM): Define macro.
4882         * include/wchar.h (fwide): Use it.
4883         (mbsinit): Ditto.
4884
4885 2004-02-05  Danny Smith  <dannysmith@users.sourceforge.net>
4886
4887         * mingwex/getopt.c: Define IS_POSIXLY_CORRECT as per
4888         NetBSD getopt_long.c.
4889
4890 2004-02-05  Danny Smith  <dannysmith@users.sourceforge.net>
4891
4892         * mingwex/strtold.c (__asctoe64) Reorganise. Fix setting error
4893         codes and handling of special chars.
4894
4895 2004-02-02  Danny Smith  <dannysmith@users.sourceforge.net>
4896
4897         * include/stdio.h (feof): Add inlined definition.
4898         (ferror): Ditto.
4899
4900 2004-02-01  Danny Smith  <dannysmith@users.sourceforge.net>
4901
4902         * mingwex/math/ldexpl.c (ldexpl): Call __asm__("fscale")
4903         directly, rather than via scabnl.
4904
4905 2004-02-01  Danny Smith  <dannysmith@users.sourceforge.net>
4906
4907         * mingwex/math/powl.c (powl): Return infinity if
4908         extended precision multiplication of x by log2(y)
4909         overflows.
4910
4911 2004-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
4912
4913         * mingwex/math/cephes_emath.h (__enan_64): Fix thinko.
4914         (__enan_NI16): Fix another one.
4915         (__enan_NBITS): Tidy.
4916
4917 2004-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
4918
4919         * include/stdint.h [__STDC_CONSTANT_MACROS]: Fix for 8 and 16 bit
4920         types. (Thanks to John Maddock for report.)
4921
4922 2004-01-14  Greg Chicares  <chicares@users.sourceforge.net>
4923
4924         * include/tchar.h (_puttchar): Define.
4925
4926 2003-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
4927
4928         * include/stdio.h:(_fileno): Define macro version after both
4929         fileno and _fileno functions declared.
4930
4931         * include/stdio.h (_rmtmp, rmtmp): Add prototypes.
4932         * moldnames.def.in (rmtmp) Add stub.
4933
4934 2003-11-27  Dimitry Sibiryakov  <aafemt@users.sourceforge.net>
4935
4936         * include/signal.h (SIG_SGE, SIG_ACK): Add defines.
4937
4938 2003-10-27  Danny Smith  <dannysmith@users.sourceforge.net>
4939
4940         * include/math.h: Guard ISO C99 additions with __cplusplus
4941         not __GLIBCPP__.
4942
4943 2003-10-21  Danny Smith  <dannysmith@users.sourceforge.net>
4944
4945         * include/_mingw.h: Define __attribute__((x)) to nothing
4946         if not __GNUC__.
4947
4948 2003-10-21  Danny Smith  <dannysmith@users.sourceforge.net>
4949
4950         * include/complex.h: New file.
4951         * mingwex/complex: New directory.
4952         * mingwex/complex/cabs.c: New file.
4953         * mingwex/complex/cacos.c: New file.
4954         * mingwex/complex/cacosh.c: New file.
4955         * mingwex/complex/casin.c: New file.
4956         * mingwex/complex/casinh.c: New file.
4957         * mingwex/complex/catan.c: New file.
4958         * mingwex/complex/catanh.c: New file.
4959         * mingwex/complex/ccos.c: New file.
4960         * mingwex/complex/ccosh.c: New file.
4961         * mingwex/complex/cexp.c: New file.
4962         * mingwex/complex/cimag.c: New file.
4963         * mingwex/complex/clog.c: New file.
4964         * mingwex/complex/cpow.c: New file.
4965         * mingwex/complex/cproj.c: New file.
4966         * mingwex/complex/creal.c: New file.
4967         * mingwex/complex/csin.c: New file.
4968         * mingwex/complex/csinh.c: New file.
4969         * mingwex/complex/csqrt.c: New file.
4970         * mingwex/complex/ctan.c: New file.
4971         * mingwex/complex/ctanh.c: New file.
4972         * mingwex/Makefile.in (COMPLEX_DISTFILES): New list of
4973         files.
4974         (dist): Use it.
4975         (COMPLEX_OBJS): New list of objects.
4976         (LIB_OBJS): Include it in the library.
4977
4978 2003-10-21  Danny Smith  <dannysmith@users.sourceforge.net>
4979
4980         * include/math.h (cabs): Remove non-ISO prototype.
4981
4982 2003-10-21  Danny Smith  <dannysmith@users.sourceforge.net>
4983
4984         * mingwex/math/cephes_mconf.h (NAN, NANF, NANL):
4985         Use GCC __builtin's if available.
4986         (INFINITY, INFINITYF, INFINITYL): Likewise.
4987
4988 2003-10-21  Danny Smith  <dannysmith@users.sourceforge.net>
4989
4990         * mingwex/math/s_erf.c (erf): Set errno to ERANGE if
4991         beyond approximation limit.
4992         * mingwex/math/sf_erf.c (erff): Likewise.
4993
4994 2003-10-17  Danny Smith  <dannysmith@users.sourceforge.net>
4995
4996         * include/stdio.h (getc): Cast result to unsigned char before
4997         return.
4998         (putc): Likewise
4999         (getchar): Likewise.
5000         (putchar): Likewise.
5001         Thanks to M.Fujii <boochang@m4.kcn.ne.jp>
5002
5003 2003-10-10  Earnie Boyd  <earnie@users.sf.net>
5004
5005         * include/_mingw.h: Increment version to 3.2.
5006         * Makefile.in: Ditto.
5007
5008 2003-10-10  Earnie Boyd  <earnie@users.sourceforge.net>
5009
5010         * include/sys/types.h: Revert last change.
5011
5012 2003-10-10  Earnie Boyd  <earnie@users.sourceforge.net>
5013
5014         * include/sys/types.h (ssize_t): Correct the definition.
5015
5016 2003-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
5017
5018         * include/stdio.h (_filbuf): Add prototype.
5019         (_flsbuf): Add prototype.
5020         (getc): Add inline version.
5021         (putc): Likewise.
5022         (getchar): Likewise.
5023         (putchar): Likewise.
5024
5025 2003-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
5026
5027         * mingwex/dirent.c (_treaddir): Reset errno to 0 if end
5028         of directory.
5029
5030 2003-09-29  Danny Smith  <dannysmith@users.sourceforge.net>
5031
5032         * include/stdlib.h: Guard non-ISO functions with
5033         !__STRICT_ANSI__, throughout.
5034
5035 2003-09-24  Danny Smith  <dannysmith@users.sourceforge.net>
5036
5037         * include/io.h (_fileno): Remove prototype.
5038         (fileno): Likewise.
5039         (FILENAME_MAX): Define, if needed.
5040         Don't include <stdio.h>.
5041         * include/stdio.h (FILENAME_MAX): Protect against
5042         prior definition.
5043         (_fileno): Define macro implementation.
5044         (fileno): Likewise.
5045
5046 2003-09-24  Danny Smith  <dannysmith@users.sourceforge.net>
5047
5048         * include/inttypes.h: Include _mingw.h.
5049
5050 2003-09-24  Danny Smith  <dannysmith@users.sourceforge.net>
5051
5052         * include/_mingw.h (__CRT_INLINE): Define.
5053         * include/ctype.h: Replace 'extern inline' with __CRT_INLINE,
5054         throughout
5055         * include/inttypes.h: Likewise.
5056         * include/math.h: Likewise.
5057         * include/stdio.h: Likewise.
5058         * include/stdlib.h: Likewise.
5059         * include/string.h: Likewise.
5060         * include/wchar.h: Likewise.
5061         * include/wctype.h: Likewise.
5062
5063 2003-09-22  Roland Schwingel  <rolandschwingel@users.sourceforge.net>
5064
5065         * mingwex/dirent.c (_topendir): Allocate enough memory for
5066         DIR struct in UNICODE case too.
5067
5068 2003-09-15  Earnie Boyd  <earnie@users.sf.net>
5069
5070         * include/_mingw.h: Increment version to 3.2.
5071         * Makefile.in: Ditto.
5072
5073 2003-07-03  Earnie Boyd  <earnie@users.sf.net>
5074
5075         * config.guess, config.sub: Update with versions from ftp.gnu.org.
5076
5077 2003-07-03  Danny Smith  <dannysmith@users.sourceforge.net>
5078
5079         * mingwex/math/trunc.c (trunc): Provide lvalue for memory input constraint.
5080         * mingwex/math/truncf.c (truncf): Likewise.
5081         * mingwex/math/truncl.c (truncl): Likewise.
5082         * mingwex/math/modff.c (modff): Likewise.
5083         * mingwex/math/modfl.c (modfl): Likewise.
5084
5085 2003-07-03  Danny Smith  <dannysmith@users.sourceforge.net>
5086
5087         * include/search.h: New file.
5088         * include/stdlib.h: Add comment about qsort, bsearch in
5089         search.h.
5090         * test_headers.c: Include search.h.
5091         * moldname.def.in (lfind, lsearch): Add.
5092
5093 2003-07-03  Danny Smith  <dannysmith@users.sourceforge.net>
5094
5095         * include/process.h (_execv, _execvp, _spawnv, _spawnvp, _execve,
5096         _execvpe, _spawnve, _spawnvpe, execv, execvp, spawnv, spawnvp,
5097         execve, execvpe, spawnve, spawnvpe): Const-ify all the char params.
5098
5099 2003-07-01  Earnie Boyd  <earnie@users.sf.net>
5100
5101         * include/_mingw.h (small, hyper): Change to __small and __hyper to
5102         avoid user space name conflicts.
5103
5104 2003-07-01  Earnie Boyd  <earnie@users.sf.net>
5105
5106         * include/_mingw.h (__int32, __int16, __int8, small, hyper): Define.
5107         Note: Also added to w32api/include/basetyps.h.
5108         * mingwex/math/tgamma.c, tgammaf.c, tgammal.c (small):
5109         Rename to Small (case difference).
5110
5111 2003-06-18  Earnie Boyd  <earnie@users.sf.net>
5112
5113         * include/dirent.h (dirent): Make d_name and array instead of a pointer.
5114         * mingwex/dirent.c: Modifications througout to fill d_name array.
5115         * Makefile.in (LIBS): Add new MSVCRT libraries libmsvcr70 and
5116         libmsvcr71, including debug versions.
5117         (msvcr70.def, msvcr70d.def, msvcr71.def, msvcr71.def): New targets.
5118
5119 2003-06-17  Danny Smith  <dannysmith@users.sourceforge.net>
5120
5121         * msvcrt.def.in (__badioinfo, __lc_codepage, __lc_handle,
5122         __pioinfo, __setlc_active, _unguarded_readlc_active, _dstbias):
5123         Mark as DATA.
5124         Thanks to: Aaron W LaFramboise  <AWLaFramboise@aol.com>
5125
5126 2003-05-30  Sascha Sommer  <saschasommer@freenet.de>
5127
5128         * include/sys/types.h (_ssize_t, ssize_t): Add typedefs.
5129
5130 2003-05-15  Danny Smith  <dannysmith@users.sourceforge.net>
5131
5132         * include/stdlib.h (_Exit): Move out of __STRICT_ANSI__ block,
5133         but still protect inline definition with __STRICT_ANSI__.
5134
5135 2003-05-14  Danny Smith  <dannysmith@users.sourceforge.net>
5136
5137         * string_old.c: Remove, splitting into...
5138         * strcasecmp.c: New file.
5139         * strncasecmp.c: New file.
5140         * wscmpi.c : New file.
5141         * ctype_old.c: Remove, splitting into...
5142         * isascii.c: New file.
5143         * iscsym.c: New file.
5144         * iscsymf.c: New file.
5145         * toascii.c: New file.
5146         * Makefile.in (MOLD_OBJS): Adjust.
5147         (SRCDIST_FILES): Adjust.
5148
5149 2003-05-13  Danny Smith  <dannysmith@users.sourceforge.net>
5150
5151         * include/math.h (fabs) : Remove inline definition.
5152         (fabsf): Likewise.
5153         (fabsl): Likewise.
5154
5155 2003-05-06  Earnie Boyd  <earnie@users.sf.net>
5156
5157         * include/_mingw.h: Change version to 3.0
5158         * Makefile.in: Ditto.
5159
5160 2003-05-06  Earnie Boyd  <earnie@users.sf.net>
5161
5162         * configure.in (W32API_INCLUDE): Need the -I switch in the value.
5163         * mingwex/configure.in (W32API_INCLUDE): Ditto.
5164         * profile/configure.in (W32API_INCLUDE): Ditto.
5165
5166 2003-05-06  Earnie Boyd  <earnie@users.sf.net>
5167
5168         * configure.in (CFLAGS): Remove -D__USE_CRTIMP=1 due to possibilites
5169         of multiply defined symbols if the symbols is defined locally. E.G.:
5170         A local definition of malloc causes this problem.
5171         * configure: Regenerate.
5172         * profile/Makefile.in (W32API_INCLUDE): New variable.
5173         (ALL_CFLAGS): Use W32API_INCLUDE value.
5174         (ALL_CXXFLAGS): Ditto.
5175         (gcrt0.o gcrt1.o gcrt2.o): Use ALL_CFLAGS instead of CFLAGS.
5176         Thanks to Jeff Bonggren <jbon@users.sf.net>.
5177         * profile/configure.in (W32API_INCLUDE): Set default value.
5178         * profile/configure: Regenerate.
5179         * mingwex/Makefile.in (W32API_INCLUDE): New variable.
5180         (ALL_CFLAGS): Use W32API-INCLUDE value.
5181         (ALL_CXXFLAGS): Ditto.
5182         * mingwex/configure.in (W32API_INCLUDE): Set default value.
5183         * mingwex/configure: Regenerate.
5184
5185 2003-05-05  Earnie Boyd  <earnie@users.sf.net>
5186
5187         * Makefile.in (W32API_INCLUDE): New variable.
5188         (ALL_CFLAGS): Use W32API_INCLUDE value.
5189         (ALL_CXXFLAGS): Ditto.
5190         * configure.in (CFLAGS): Add -D__USE_CRTIMP=1 to default values.
5191         (W32API_INCLUDE): Set default value.
5192         * configure: Regenerate.
5193
5194 2003-04-11  Earnie Boyd  <earnie@users.sf.net>
5195
5196         * configure.in (LIBM_A): Define for cygwin target.
5197         * configure (LIBM_A): Ditto.
5198
5199 2003-04-07  Danny Smith  <dannysmith@users.sourceforge.net>
5200
5201         * include/time.h (strftime): Remove duplicate declaration.
5202
5203 2003-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
5204
5205         * include/_mingw.h (_CRTIMP): Make conditional on __USE_CRTIMP.
5206
5207 2003-03-16  Danny Smith  <dannysmith@users.sourceforge.net>
5208
5209         * mingwex/dirent.c (_topendir): Eliminate signed/unsigned warning.
5210         * mingwex/strtoimax.c (strtoimax): Likewise.
5211         * mingwex/wcstoimax.c (wcstoimax): Likewise.
5212         * mingwex/wtoll.c (wtoll): Remove unnecessary ';'
5213         * mingwex/fesentenv.c: Include float.h.
5214         * mingwex/math/powl.c: Eliminate type punning/strict aliasing
5215         warning.
5216         * mingwex/math/tanhl.c: Eliminate signed/unsigned warning in
5217         constants.
5218         * mingwex/math/tgammal.c: Likewise.
5219
5220 2003-03-16  Danny Smith  <dannysmith@users.sourceforge.net>
5221
5222         * include/utime.h: New file, forwarding to sys/utime.h.
5223
5224 2003-03-16  Danny Smith  <dannysmith@users.sourceforge.net>
5225
5226         * include/sys/param.h (MAXPATHLEN): Define.
5227
5228 2003-03-16  Danny Smith  <dannysmith@users.sourceforge.net>
5229
5230         * include/tchar.h: Ansi-fy a comment.
5231
5232 2003-03-16  Danny Smith  <dannysmith@users.sourceforge.net>
5233
5234         * profile/profile.h (mcount): Use __builtin_return_address
5235         rather than inline __asm statements.
5236         * profile/Makefile.in: Remove special rule for mcount.o
5237         Specify dependencies for mcount.o profil.o gmon.o.
5238
5239 2003-03-10  Danny Smith  <dannysmith@users.sourceforge.net>
5240
5241         * include/stdlib.h (qsort): Remove const from first parm.
5242         Thanks to: Tien-Ren Chen <trchen@sourceforge.users.net>
5243
5244 2003-03-03  Christopher Faylor  <cgf@redhat.com>
5245
5246         * mingwex/getopt.c: Refresh from NetBSD sources.
5247
5248 2003-03-03  Danny Smith  <dannysmith@users.sourceforge.net>
5249
5250         * mingwex/getopt.c: New file, copied from cygwin srcs.
5251         * include/getopt.h: New file, copied from cygwin srcs.
5252         * include/unistd.h: Include getopt.h.
5253         * mingwex/Makefile.in (DISTFILES): Add getopt.c.
5254         (POSIX_OBJS): Add getopt.o.
5255
5256 2003-03-02  Danny Smith  <dannysmith@users.sourceforge.net>
5257
5258         * include/stdio.h (vscanf): Add prototype.
5259         (vfscanf): Ditto.
5260         (vsscanf): Ditto.
5261         (vwscanf): Ditto.
5262         (vfwscanf): Ditto.
5263         (vswscanf): Ditto.
5264         * include/wchar.h (vwscanf): Add prototype.
5265         (vfwscanf): Ditto.
5266         (vswscanf): Ditto.
5267         * mingwex/snprintf.c: Move to mingwex/stdio.
5268         * mingwex/vsnprintf.c: Ditto.
5269         * mingwex/snwprintf.c: Ditto.
5270         * mingwex/vsnwprintf.c: Ditto.
5271         * mingwex/Makefile.in (VPATH): Add $(srcdir)/stdio
5272         (STDIO_DISTFILES): Add.
5273         (DISTFILES): Adjust.
5274         (STDIO_STUB_OBJS): Rename to STDIO_OBJS and add v*scanf objects.
5275         (LIB_OBJS): Adjust.
5276         (dist): Adjust.
5277
5278 2003-03-02  Aaron W LaFramboise  <AWLaFramboise@aol.com>
5279
5280         * mingwex/stdio: New directory
5281         * mingwex/stdio/vfscanf.c: New file.
5282         * mingwex/stdio/vfwscanf.c: New file.
5283         * mingwex/stdio/vscanf.c: New file.
5284         * mingwex/stdio/vsscanf.c: New file.
5285         * mingwex/stdio/vswscanf.c: New file.
5286         * mingwex/stdio/vwscanf.c: New file.
5287
5288 2003-02-25  Earnie Boyd  <earnie@users.sf.net>
5289
5290         * Makefile.in (libmsvcrt20.a): Remove target and dependencies.
5291         (libmsvcrt40.a): Ditto.
5292
5293 2003-02-21  Earnie Boyd  <earnie@users.sf.net>
5294
5295         Thanks to David Frasier <davidf@sjsoft.com> who inspired portions of
5296         this patch.
5297         * Makefile.in (libmsvcrtd.a): Add target library.
5298         (libmoldnamed.a): Ditto.
5299         (msvcrt.def, msvcrtd.def, msvcrt20.def, msvcrt40.def): Use msvcrt.def.in
5300         template to create.
5301         ($(srcdir)): Remove explicit reference for depencies of object targets.
5302         * moldname.def, moldname-msvcrt.def, moldname-crtdll.def, msvcrt.def,
5303         msvcrt20.def, msvcrt40.def: Remove.
5304         * msvcrt.def.in: New file (Copy of previous msvcrt.def).
5305
5306 2003-02-20  Corinna Vinschen  <corinna@vinschen.de>
5307
5308         * Makefile.in: Make sure libmingwex.a from current build tree is used.
5309
5310 2003-02-14  Christopher Faylor  <cgf@redhat.com>
5311
5312         * profile/Makefile.in (mcount.o): Use ALL_CFLAGS for compilation to
5313         ensure -mno-cygwin where appropriate. Filter out -O2.
5314
5315 2003-02-13  Danny Smith  <dannysmith@users.sourceforge.net>
5316
5317         * profile/Makefile.in (mcount.o): Use -O1 optimization
5318         switch to compile.
5319
5320 2003-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
5321
5322         * include/math.h: Remove _CRTIMP from pow() prototype,
5323         unless __NO_ISOCEXT.
5324
5325 2003-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
5326
5327         * mingwex/math/cephes_emath.h: Don't redefine INFINITY.
5328
5329 2003-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
5330
5331         * include/_mingw.h (_CRTIMP): Define for __GNUC__ if
5332         __declspec(dllimport) supported.
5333         (__cdecl): Define if not already defined.
5334         (__stdcall): Likewise.
5335         * include/dirent.h: Qualify fuctions with __cdecl.
5336         * include/fenv.h: Likewise.
5337         * include/inttypes.h: Likewise.
5338         * include/assert.h: Qualify fuctions with __cdecl. Qualify
5339         CRT dll imports with _CRTIMP.
5340         * include/conio.h: Likewise.
5341         * include/ctype.h: Likewise.
5342         * include/direct.h: Likewise.
5343         * include/dos.h: Likewise.
5344         * include/errno.h: Likewise.
5345         * include/float.h: Likewise.
5346         * include/io.h: Likewise.
5347         * include/locale.h: Likewise.
5348         * include/malloc.h: Likewise.
5349         * include/math.h: Likewise.
5350         * include/mbctype.h: Likewise.
5351         * include/mbstring.h: Likewise.
5352         * include/process.h: Likewise.
5353         * include/setjmp.h: Likewise.
5354         * include/signal.h: Likewise.
5355         * include/stdio.h: Likewise.
5356         * include/stdlib.h: Likewise.
5357         * include/string.h: Likewise.
5358         * include/time.h: Likewise.
5359         * include/wchar.h: Likewise.
5360         * include/wctype.h: Likewise.
5361         * include/sys/stat.h: Likewise.
5362         * include/sys/timeb.h: Likewise.
5363         * include/sys/utime.h: Likewise.
5364
5365         * include/ctype.h: Guard ctype inlines with __NO_INLINE__.
5366         * include/wctype.h: Guard wctype inlines with __NO_INLINE__.
5367
5368         * include/stdio.h (__VALIST): Guard against prior definition.
5369
5370 2003-02-08  Earnie Boyd  <earnie@users.sf.net>
5371
5372         * include/_mingw.h: Change version to 3.0
5373         * Makefile.in: Ditto.
5374
5375 2003-02-08  Earnie Boyd  <earnie@users.sf.net>
5376
5377         * include/stdlib.h: Make words after #endif a comment.
5378
5379 2003-02-07  Danny Smith  <dannysmith@users.sourceforge.net>
5380
5381         * include/locale.h: Include stddef.h for definition of NULL.
5382
5383 2003-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
5384
5385         * include/math.h (tgamma): Correct typo in comment.
5386
5387 2003-01-26  Danny Smith  <dannysmith@users.sourceforge.net>
5388
5389         * mingwex/mingw-fseek.c (INLINE): Remove define.
5390         (__mingw_is_win9x): Remove static inline function.
5391         (_mingw_fwrite): Use _osver instead of __mingw_is_win9x.
5392
5393 2003-01-11  Danny Smith  <dannysmith@users.sourceforge.net>
5394
5395         * mingwex/math/llround.c: Correct function name and
5396         change return value to long long.
5397
5398 2003-01-07  Danny Smith  <dannysmith@users.sourceforge.net>
5399
5400         * include/ctype.h (__isascii): Don't cast arg to unsigned.
5401         (iswascii): Likewise. Correct mask.
5402         * include/wctype.h (iswascii): Don't cast arg to unsigned.
5403         Correct mask
5404
5405 2003-01-03  Danny Smith  <dannysmith@users.sourceforge.net>
5406
5407         * include/stdlib.h (_osver, _winver, _winmajor,
5408         _winminor): Declare as direct imports from dll if
5409         __DECLSPEC_SUPPORTED.
5410
5411 2003-01-01  Danny Smith  <dannysmith@users.sourceforge.net>
5412
5413         * pseudo-reloc.c (do_pseudo_reloc): Make static.
5414         * pseudo-reloc-list.c: New file.
5415         * crt1.c (_pei386_runtime_relocator): Declare.
5416         (__mingw_CRTStartup): Call it.
5417         * dllcrt1.c (_pei386_runtime_relocator): Declare.
5418         (DllMainCRTStartup): Call it.
5419         * Makefile.in: Add pseudo-reloc.o pseude-reloc-list.o to
5420         libmingw32.a.
5421
5422 2003-01-01  Egor Duda  <deo@logos-m.ru>
5423
5424         * pseudo-reloc.c: New file.
5425
5426 2002-12-20  Earnie Boyd  <earnie@users.sf.net>
5427
5428         * include/_mingw.h: Increment version to 2.4.
5429         Makefile.in: Ditto.
5430
5431 2002-12-12  Earnie Boyd  <earnie@users.sf.net>
5432
5433         * include/malloc.h (_alloca): Add definition.
5434         (alloca): Ditto.
5435
5436 2002-12-08  Danny Smith  <dannysmith@users.sourceforge.net>
5437
5438         * mingwex/math/s_erf.c: New file.
5439         * mingwex/math/sf_erf.c: New file.
5440         * mingwex/Makefile.in (MATH_DISTFILES): Add new files.
5441         (MATH_OBJS): Add new objects.
5442         * include/math.h (erf[f]): Add prototypes.
5443         (erfc[f]): Add prototypes.
5444
5445 2002-12-07  Danny Smith  <dannysmith@users.sourceforge.net>
5446
5447         * include/math.h: Add traditional/XOPEN math constants.
5448
5449 2002-11-27  Danny Smith  <dannysmith@users.sourceforge.net>
5450
5451         * mingwex/math/lgamma.c: New file.
5452         * mingwex/math/lgammaf.c: New file.
5453         * mingwex/math/lgammal.c: New file.
5454         * mingwex/math/tgamma.c: New file.
5455         * mingwex/math/tgammaf.c: New file.
5456         * mingwex/math/tgammal.c: New file.
5457         * mingwex/math/cephes_mconf (polevlf): Add float version.
5458         (p1evlf): Likewise.
5459         Define _CEPHES_USE_ERRNO.
5460         * mingwex/Makefile.in (MATH_DISTFILES): Add new files.
5461         (MATH_OBJS): Add new objects.
5462         * include/math.h (lgamma[fl]): Add prototypes.
5463         (tgamma[fl]): Add prototypes.
5464
5465 2002-11-26  Danny Smith  <dannysmith@users.sourceforge.net>
5466
5467         * mingwex/strtold.c: New file.
5468         * mingwex/wcstold.c: New file.
5469         * mingwex/ldtoa.c: New file.
5470         * mingwex/math/cephes_emath.h: New file.
5471         * mingwex/math/cephes_emath.c: New file.
5472         * mingwex/Makefile.in (DISTFILES): Add new files.
5473         (MATH_DISTFILES): Ditto.
5474         (STDLIB_OBJS): New. Define as strtold.c wcstold.c.
5475         (MATH_OBJS): Add cephes_emath.o.
5476         (LIB_OBJS): Add $(STDLIB_OBJS).
5477         * include/stdlib.h (strtold, wcstold): Add prototypes.
5478         * include/wchar.h (wcstold): Add prototype.
5479
5480 2002-11-09  Danny Smith  <dannysmith@users.sourceforge.net>
5481
5482         * include/math.h (sqrt): Remove inline definition.
5483         (sqrtf): Replace inline definition with prototype.
5484         (sqrtl): Likewise.
5485         * mingwex/math/sqrtf.c (sqrtf): Set domain error if
5486         argument less than zero.
5487         * mingwex/math/sqrtf.c (sqrtl): Likewise.
5488
5489 2002-10-30  Guido Serassio  <serassio@libero.it>
5490
5491         * include/stdio.h (_getmaxstdio): Add prototype.
5492          (_setmaxstdio): Likewise.
5493
5494 2002-10-19  Kang Li  <rubylith@users.sourceforge.net>
5495
5496         * include/fcntl.h (O_SEQUENTIAL): Correct typo.
5497
5498 2002-10-19  Danny Smith  <dannysmith@users.sourceforge.net>
5499
5500         * crt1.c: Define new macro __IN_MINGW_RUNTIME before including
5501         stdlib.h.
5502         Define WIN32_MEAN_AND_LEAN before including windows.h
5503         * include/stdlib.h (_fmode): Protect declaration as dllimported
5504         variable with __IN_MINGW_RUNTIME.
5505
5506 2002-10-19  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
5507
5508         * crt1.c: Include stdlib.h.
5509
5510 2002-10-19  Danny Smith  <dannysmith@users.sourceforge.net>
5511
5512         * Makefile.in (CRT0S): Add txtmode.o binmode.o.
5513         (MINGW_OBJS): Add txtmode.o.
5514         (SRCDIST_FILES): Add txtmode.c binmode.c.
5515         crt1.c: Don't include fcntrl.h, stdlib.h.
5516         (_fmode): Declare, without dllimport attribute.
5517         (__p__fmode): Declare access function for dll's _fmode.
5518         (_mingw32_init_fmode): Sync dll _fmode with staticly linked
5519         _fmode for app.
5520         * txtmode.c: New file.
5521         * binmode.c: New file.
5522         * samples/fmode/test2.c: New file.
5523         * samples/fmode/jamfile: Add test2.exe target.
5524
5525 2002-10-11  Danny Smith  <dannysmith@users.sourceforge.net>
5526
5527         * include/stdint.h (INT64_C, UINT64_C ): Append suffix to let
5528         macros work with C89.
5529         (INTMAX_C, UINTMAX_C): Likewise.
5530
5531 2002-10-11  Danny Smith  <dannysmith@users.sourceforge.net>
5532
5533         * include/string.h (strcasecmp): Make extern __inline__.
5534         (strncasecmp): Likewise.
5535         (wcscmpi): Likewise.
5536
5537 2002-10-08  Heiko Gerdau  <hg@technosis.de>
5538
5539         * include/tchar.h (_tchdir. _tgetcwd, _tgetdcwd.
5540         _tmkdir, _trmdir, _tstat): Add ASCII and UNICODE
5541         mappings.
5542
5543 2002-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
5544
5545         * mingwex/math/powil.c: Rename powil to __powil.
5546         * mingwex/math/powl.c: Adjust declaration and call
5547         to __powil. Remove comment on powil.
5548         * mingwex/math/powi.c: New file.
5549         * mingwex/math/powif.c: New file.
5550         * mingwex/math/pow.c: New file.
5551         * mingwex/math/cephes_mconf.h. Add double and float
5552         versions of constants.
5553         (polevl): Add double precision function.
5554         (p1evl): Likewise.
5555         * mingwex/Makefile.in (MATH_DISTFILES): Add pow.c,
5556         powi.c, powif.c.
5557         (MATH_OBJS): Add pow.o, powi.o, powif.o.
5558
5559 2002-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
5560
5561         * include/cytpe.h (_imp____mbcur_max): Add missing ';'.
5562         (_imp____mbcur_max_dll): Likewise.
5563
5564 2002-10-03  Danny Smith  <dannysmith@users.sourceforge.net>
5565
5566         * include/fcntl.h (_fmode): Remove declarations and
5567         compatibility defines.
5568         (_setmode, setmode): Remove prototypes.
5569         * include/stdlib (_fmode): Add declarations and
5570         compatibility defines. Change type to int.
5571         * include/io.h (_setmode, setmode): Add prototypes.
5572         * samples/fmode/all.c: Adjust includes.
5573         * samples/fmode/test.c: Likewise.
5574         * crt1.c (_CRT_fmode): Declare as int.
5575         * CRTfmode.c (_CRT_fmode): Likewise.
5576
5577         * include/stdlib: Remove comment about MB_CUR_MAX.
5578
5579 2002-10-02  Danny Smith  <dannysmith@users.sourceforge.net>
5580
5581         * include/stdlib.h (_imp____mbcur_max): Add missing ';'.
5582         (_imp____mbcur_max_dll): Likewise.
5583
5584 2002-09-18  Danny Smith  <dannysmith@users.sourceforge.net>
5585
5586         * mingwex/math/files.txt: Remove inadvertantly added file.
5587
5588 2002-09-18  Danny Smith  <dannysmith@users.sourceforge.net>
5589
5590         * include/string.h (_strerror): Move into #ifndef
5591         __STRICT_ANSI__ block.
5592
5593 2002-09-17  Danny Smith  <dannysmith@users.sourceforge.net>
5594
5595         * include/time.h (__need_NULL): Define before including
5596         stddef.h. Thanks to: Rüdiger Dehmel <de@lmnet.de>.
5597
5598 2002-09-16  Ranjit Matthew  <rmathew@hotmail.com>
5599
5600         * include/stdio.h: Correct comment about directory separator.
5601
5602 2002-09-12  Danny Smith  <dannysmith@users.sourceforge.net>
5603
5604         * include/sys/time.h (timeval): Add struct definition and
5605         associated macros (copied from w32api/include/winsock.h).
5606
5607 2002-09-05  Earnie Boyd  <earnie@users.sf.net>
5608
5609         * include/_mingw.h: Increment version to 2.3.
5610         Makefile.in: Ditto.
5611
5612 2002-09-05  Earnie Boyd  <earnie@users.sf.net>
5613
5614         * mingwex/fegetenv.c: Change to \n line endings.
5615         * mingwex/vsnprintf.c: Ditto.
5616         * mingwex/vsnwprintf.c: Ditto.
5617
5618 2002-09-02  Danny Smith  <dannysmith@users.sourceforge.net>
5619
5620         * mingwex/math/hypotl.c: Replace with version based on cephes
5621         library.
5622
5623 2002-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
5624
5625         * include/sys/param.h: Add ENDIAN defines.
5626         * test_headers.c: Include sys/param.h.
5627
5628 2002-08-28  Danny Smith  <dannysmith@users.sourceforge.net>
5629
5630         * test_headers.c: Don't include varargs.h.
5631         * Makefile.in (test_headers): Don't use -std=xx
5632         with -xc++.
5633
5634 2002-08-21  Earnie Boyd  <earnie@users.sf.net>
5635
5636         * include/sys/param.h: New File.
5637
5638 2002-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
5639
5640         * include/math.h (asm): Change to __asm__ throughout.
5641         Expose ISO C99 functions if __GLIPCPP__.
5642         (hypotf): Use hypot, not _hypot in stub.
5643
5644 2002-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
5645
5646         * include/tchar.h: Ansi-fy another comment.
5647
5648 2002-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
5649
5650         * include/tchar.h: Ansi-fy comment.
5651
5652 2002-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
5653
5654         * test_headers.c : New file.
5655         * Makefile.in (test_headers): New target, using it,
5656         (SRCDIST_FILES): Distribute it.
5657
5658 2002-08-20  Earnie Boyd  <earnie@users.sf.net>
5659
5660         * include/_mingw.h: Increment version to 2.2.
5661         Makefile.in: Ditto.
5662
5663 2002-08-14  Earnie Boyd  <earnie@users.sf.net>
5664
5665         * include/unistd.h: Add include of process.h.
5666
5667 2002-08-03  Danny Smith  <dannysmith@users.sourceforge.net>
5668
5669         * include/stdio.h (_fcloseall): Add prototype.
5670
5671 2002-07-29  Danny Smith  <dannysmith@users.sourceforge.net>
5672
5673         * include/tchar.h (_tfdopen): Correct typo.
5674
5675 2002-07-29  Danny Smith  <dannysmith@users.sourceforge.net>
5676
5677         * moldname.def.in (chgsign,scalb,finite,fpclass,logb,
5678         nextafter): Add non-underscored stubs.
5679         * moldname-msvcrt.def: Regenerate.
5680         * moldname-crtdll.def: Regenerate.
5681         * mingwex/math: New directory.
5682         * mingwex/rint.c: Move to mingwex/math.
5683         * mingwex/rintf.c: Ditto.
5684         * mingwex/rintl.c: Ditto.
5685         * mingwex/round.c: Ditto.
5686         * mingwex/roundf.c: Ditto.
5687         * mingwex/roundl.c: Ditto.
5688         * mingwex/rint.c: Ditto.
5689         * mingwex/rintf.c: Ditto.
5690         * mingwex/rintl.c: Ditto.
5691         * mingwex/trunc.c: Ditto.
5692         * mingwex/truncf.c: Ditto.
5693         * mingwex/truncl.c: Ditto.
5694         * mingwex/signbit.c: Ditto.
5695         * mingwex/signbitf.c: Ditto.
5696         * mingwex/signbitl.c: Ditto.
5697         * mingwex/copysignl.S: Ditto.
5698         * mingwex/fdim.c: Ditto.
5699         * mingwex/fdimf.c: Ditto.
5700         * mingwex/fdiml.c: Ditto.
5701         * mingwex/fmin.c: Ditto.
5702         * mingwex/fminf.c: Ditto.
5703         * mingwex/fminl.c: Ditto.
5704         * mingwex/fmax.c: Ditto.
5705         * mingwex/fmaxf.c: Ditto.
5706         * mingwex/fmaxl.c: Ditto.
5707         * mingwex/fma.c: Ditto.
5708         * mingwex/fmaf.c: Ditto.
5709         * mingwex/fmal.c: Ditto.
5710         * mingwex/fpclassify.c: Ditto.
5711         * mingwex/fpclassifyl.c: Ditto.
5712         * mingwex/fpclassifyl.c: Ditto.
5713         * mingwex/isnan.c: Ditto.
5714         * mingwex/isnanf.c: Ditto.
5715         * mingwex/isnanl.c: Ditto.
5716         * mingwex/fucom.c: Ditto.
5717         * mingwex/fp_consts.c: Ditto. Split out float and long double
5718         definitions.
5719         * mingwex/math_stubs.c: Remove.
5720         * mingwex/log2.c: Remove. Replaced by math/log2.S
5721         * mingwex/log2f.c: Remove. Replaced by math/log2f.S
5722         * mingwex/log2l.c: Remove. Replaced by math/log2l.S
5723         * mingwex/math/acosf.c : New file.
5724         * mingwex/math/acosl.c: New file.
5725         * mingwex/math/asinf.c: New file.
5726         * mingwex/math/asinl.c: New file.
5727         * mingwex/math/atan2f.c: New file.
5728         * mingwex/math/atan2l.c: New file.
5729         * mingwex/math/atanf.c: New file.
5730         * mingwex/math/atanl.c: New file.
5731         * mingwex/math/cbrt.c: New file.
5732         * mingwex/math/cbrtf.c: New file.
5733         * mingwex/math/cbrtl.c: New file.
5734         * mingwex/math/ceilf.S: New file.
5735         * mingwex/math/ceill.S: New file.
5736         * mingwex/math/cephes_ld.h: New file.
5737         * mingwex/math/copysign.S: New file.
5738         * mingwex/math/copysignf.S: New file.
5739         * mingwex/math/cosf.S: New file.
5740         * mingwex/math/coshf.c: New file.
5741         * mingwex/math/coshl.c: New file.
5742         * mingwex/math/cosl.S: New file.
5743         * mingwex/math/exp2.S: New file.
5744         * mingwex/math/exp2f.S: New file.
5745         * mingwex/math/exp2l.S: New file.
5746         * mingwex/math/expf.c: New file.
5747         * mingwex/math/expl.c: New file.
5748         * mingwex/math/fabs.c: New file.
5749         * mingwex/math/fabsf.c: New file.
5750         * mingwex/math/fabsl.c: New file.
5751         * mingwex/math/floorf.S: New file.
5752         * mingwex/math/floorl.S: New file.
5753         * mingwex/math/fmodf.c: New file.
5754         * mingwex/math/fmodl.c: New file.
5755         * mingwex/math/fp_consts.h: Ditto.
5756         * mingwex/math/fp_constsf.c: Ditto.
5757         * mingwex/math/fp_constsl.c: Ditto.
5758         * mingwex/math/frexpf.c: New file.
5759         * mingwex/math/frexpl.S: New file.
5760         * mingwex/math/hypotf.c: New file.
5761         * mingwex/math/hypotl.c: New file.
5762         * mingwex/math/ilogb.S: New file.
5763         * mingwex/math/ilogbf.S: New file.
5764         * mingwex/math/ilogbl.S: New file.
5765         * mingwex/math/ldexpf.c: New file.
5766         * mingwex/math/ldexpl.c: New file.
5767         * mingwex/math/llrint.c: New file.
5768         * mingwex/math/llrintf.c: New file.
5769         * mingwex/math/llrintl.c: New file.
5770         * mingwex/math/llround.c: New file.
5771         * mingwex/math/llroundf.c: New file.
5772         * mingwex/math/llroundl.c: New file.
5773         * mingwex/math/log10f.S: New file.
5774         * mingwex/math/log10l.S: New file.
5775         * mingwex/math/log1p.S: New file.
5776         * mingwex/math/log1pf.S: New file.
5777         * mingwex/math/log1pl.S: New file.
5778         * mingwex/math/log2.S: New file.
5779         * mingwex/math/log2f.S: New file.
5780         * mingwex/math/log2l.S: New file.
5781         * mingwex/math/logb.c: New file.
5782         * mingwex/math/logbf.c: New file.
5783         * mingwex/math/logbl.c: New file.
5784         * mingwex/math/logf.S: New file.
5785         * mingwex/math/logl.S: New file.
5786         * mingwex/math/lrint.c: New file.
5787         * mingwex/math/lrintf.c: New file.
5788         * mingwex/math/lrintl.c: New file.
5789         * mingwex/math/lround.c: New file.
5790         * mingwex/math/lroundf.c: New file.
5791         * mingwex/math/lroundl.c: New file.
5792         * mingwex/math/modff.c: New file.
5793         * mingwex/math/modfl.c: New file.
5794         * mingwex/math/nearbyint.S: New file.
5795         * mingwex/math/nearbyintf.S: New file.
5796         * mingwex/math/nearbyintl.S: New file.
5797         * mingwex/math/nextafterf.c: New file.
5798         * mingwex/math/powf.c: New file.
5799         * mingwex/math/powl.c: New file.
5800         * mingwex/math/powil.c: New file.
5801         * mingwex/math/remainder.S: New file.
5802         * mingwex/math/remainderf.S: New file.
5803         * mingwex/math/remainderl.S: New file.
5804         * mingwex/math/remquo.S: New file.
5805         * mingwex/math/remquof.S: New file.
5806         * mingwex/math/remquol.S: New file.
5807         * mingwex/math/scalbn.S: New file.
5808         * mingwex/math/scalbnf.S: New file.
5809         * mingwex/math/scalbnl.S: New file.
5810         * mingwex/math/sinf.S: New file.
5811         * mingwex/math/sinhf.c: New file.
5812         * mingwex/math/sinhl.c: New file.
5813         * mingwex/math/sinl.S: New file.
5814         * mingwex/math/sqrt.c: New file.
5815         * mingwex/math/sqrtf.c: New file.
5816         * mingwex/math/sqrtl.c: New file.
5817         * mingwex/math/tanf.S: New file.
5818         * mingwex/math/tanhf.c: New file.
5819         * mingwex/math/tanhl.c: New file.
5820         * mingwex/math/tanl.S: New file.
5821         * mingwex/Makefile.in: Adjust VPATH for source files in
5822         mingwex/math.
5823         Adjust MATH_OBJS.
5824         Add MATH_DISTFILES and use it to build source distro.
5825         * include/math.h: Add protypes for new functions and
5826         reorganise to reflect ANSI,C99 status.
5827
5828 2002-06-19  Danny Smith  <dannysmith@users.sourceforge.net>
5829
5830         * include/tchar.h (_getts): Define as _getws for _UNICODE.
5831         (_putts): Define as _putws for _UNICODE.
5832         Thanks to: Tomasz Pona <cochisek@poczta.onet.pl> for report.
5833
5834 2002-06-18  Danny Smith  <dannysmith@users.sourceforge.net>
5835
5836         * include/float.h: #include_next<float.h> before header guard.
5837
5838 2002-06-18  Casper S. Hornstrup  <chorns@users.sourceforge.net>
5839
5840         * include/_mingw.h (__MINGW_IMPORT): Check for prior definition before
5841         defining.
5842         * include/excpt.h (): Include windef.h not windows.h.
5843         * include/fcntl.h (_O_SHORT_LIVED): Add define.
5844         (_chmod): Add prototype.
5845         (_creat): Correct prototype.
5846         (SH_DENY*): Rename defines to _SH_DENY*.
5847         (SH_DENY*): Add Non-ANSI names for _SH_DENY*.
5848         include/stdio.h (_IOMYBUF, _IOEOF, _IOERR, _IOSTRG,
5849         _IOAPPEND): Add defines.
5850         (_wfindfirst): Correct prototype.
5851         (_wfdopen): Add prototype.
5852         * include/stdlib.h (_rotl, _rotr, _lrotl, _lrotr): Add
5853         prototypes.
5854         * include/string.h (_mbschr, _mbstok, _mbsncat): Remove
5855          prototypes.
5856         (_wcsdup): Correct prototype.
5857         * include/mbstring.h: Remove comments about _mbschr, _mbstok,
5858          _mbsncat being in string.h.
5859         * include/wchar.h (_wfindfirst): Correct prototype.
5860         * include/tchar.h (_tfdopen): Add _UNICODE mappings.
5861
5862 2002-06-15  Earnie Boyd  <earnie@users.sf.net>
5863
5864         * include/_mingw.h: Increment to version 2.1.
5865         * Makefile.in: Ditto.
5866
5867 2002-06-15  Earnie Boyd  <earnie@users.sf.net>
5868
5869         * Makefile.in (conf_prefix): New variable.
5870         (dist_prefix): Ditto. Conditionally set to $(conf_prefix).
5871         (bindist): Use dist_prefix.
5872
5873 2002-06-13  Danny Smith  <dannysmith@users.sourceforge.net>
5874
5875         * include/_mingw.h: Increment version to 2.0.
5876         * Makefile.in: Ditto.
5877
5878         Merge in mingwex branch.
5879
5880 2002-06-11  Danny Smith  <dannysmith@users.sourceforge.net>
5881
5882         * include/math.h (fdim, fdimf, fdiml): Add prototypes.
5883         * mingwex/fdim.c: New file.
5884         * mingwex/fdimf.c: New file.
5885         * mingwex/fdiml.c: New file.
5886         * mingwex/Makefile.in (DISTFILES): Add fdim.c, fdimf.c,
5887         fdiml.c.
5888         (MATHOBJS):Add fdim.o, fdimf.o. fdiml.o.
5889
5890 2002-05-23  Danny Smith  <dannysmith@users.sourceforge.net>
5891
5892         * mingwex/Makefile.in (DISTFILES): Add truncf.c, truncl.c.
5893
5894 2002-05-22  Danny Smith  <dannysmith@users.sourceforge.net>
5895
5896         * mingwex/isnanl.c: New file.
5897
5898 2002-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
5899
5900         * include/stdint.h: Include <stddef.h> to get wchar_t and wint_t.
5901         (WINT_MAX): Define to ((wint_t)-1).
5902
5903 2002-05-21  Danny Smith  <dannysmith@users.sourceforge.net>
5904
5905         * include/wctype.h: Replace 'inline' with '__inline__'.
5906         * include/inttypes.h: Likewise.
5907
5908 2002-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
5909
5910         * include/_mingw.h (__MINGW_IMPORT): Put extern at start
5911         to avoid warnings. Thanks to: Oscar Fuentes <ofv@wanadoo.es>.
5912
5913 2002-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
5914
5915         * mingwex/snprintf.c: Split out vsnprintf to....
5916         * mingwex/vsnprintf.c: New file.
5917         * mingwex/snwprintf.c: Split out vsnwprintf to...
5918         * mingwex/vsnwprintf.c: New file.
5919         * mingwex/Makefile.in: Adjust DISTFILES and STDIO_STUB_OBJS.
5920
5921 2002-05-15  Pascal Obry  <obry@gnat.com>
5922
5923         * include/dirent.h (DIR): Change dd_stat type to int.
5924         (_WDIR): Likewise.
5925
5926 2002-05-07  Danny Smith  <dannysmith@users.sourceforge.net>
5927
5928         * include/stdio.h (vsnprintf): Change inline to __inline__;
5929         (vsnwprintf): Likewise.
5930         * include/wchar.h (vsnwprintf): Likewise.
5931         (wcstof): Likewise.
5932         (fwide): Likewise.
5933         (mbsinit): Likewise.
5934
5935 2002-04-29  Danny Smith  <dannysmith@users.sourceforge.net>
5936
5937         Change FP default precison from 53 to 64-bit mantissa.
5938
5939         * Makefile.in (CRT0S): Add CRT_fp8.o.
5940         (MINGW_OBJS): Replace CRT_fp8.o with CRT_fp10.o.
5941         * include/float.h: Replace standard float.h defines with
5942         #include_next<float.h> to use GCC's defines. Adjust comments
5943         to reflect change.
5944
5945 2002-04-26  Danny Smith  <dannysmith@users.sourceforge.net>
5946
5947         * include/dos.h: Change prefix "__imp_" to "_imp__" for
5948         __GNUC__ without __DECLSPEC_SUPPORTED.
5949         * include/fnctl.h: Likewise.
5950         * include/math.h: Likewise.
5951         * include/stdio.h: Likewise.
5952         * include/stdlib.h: Likewise.
5953         * include/time.h: Likewise.
5954         * include/wctype.h: Likewise.
5955         * include/ctype.h: Likewise.
5956
5957 2002-04-26  Danny Smith  <dannysmith@users.sourceforge.net>
5958
5959         Add atexit support for dlls.
5960         * crt1.c (atexit): Force thunk to _imp__atexit.
5961         (_onexit): Force thunk to _imp___onexit.
5962         * dllcrt1.c (DllMainCRTStartup): Initialise private atexit
5963         table on DLL_PROCESS_ATTACH, clean it up on DLL_PROCESS_DETACH.
5964         (__dll_exit): New function to run atexit-registered functions
5965          and flush output buffers on DLL_PROCESS_DETACH or failed
5966         DLL_PROCESS_ATTACH.
5967         (atexit): Force use of private atexit table via _dllonexit,
5968         (_onexit): New function. Force use of private atexit table via
5969         _dllonexit,
5970         * msvcrt.def (atexit, _onexit): Add DATA keyword so that only
5971         _imp_<_symbol> is visible in import lib.
5972         * msvcrt20.def: Likewise.
5973         * msvcrt40.def: Likewise.
5974         * crtdll.def: Likewise.
5975
5976 2002-04-26  Danny Smith  <dannysmith@users.sourceforge.net>
5977
5978         * include/fenv.h: Change header guard macro to _FENV_H_.
5979         (fenv_t, fexcept_t): Move into block protected by
5980         #ifndef RC_INVOKED.
5981         Cleanup some whitespace.
5982         * include/inttypes.h: Change header guard macro to
5983         _INTTYPES_H_.
5984
5985 2002-04-26  Danny Smith  <dannysmith@users.sourceforge.net>
5986
5987         * include/math.h (copysignl): Declare.
5988         * mingwex/Makefile.in (DISTFILES): Add copysignl.S.
5989         (MATHOBJS):Add copysignl.o.
5990
5991 2002-04-24  Danny Smith  <dannysmith@users.sourceforge.net>
5992
5993         * include/math.h (__signbitl, __isnanl): Declare.
5994
5995 2002-04-24  Danny Smith  <dannysmith@users.sourceforge.net>
5996
5997         * include/math.h (nanl, __fpcassifyl, fminl, fmaxl, rintl,
5998         roundl, truncl, fmal, log2l): Declare.
5999         Protect C99 declarations with _STDC_VERSION__ >= 199901L)
6000         || !defined __STRICT_ANSI__.
6001         * mingwex/fmax.c (fmax): Call __isnan, not _isnan.
6002         * mingwex/fmin.c (fmin): Likewise.
6003         * mingwex/fmaxf.c (fmaxf): Call __isnanf, not _isnan.
6004         * mingwex/fminf.c (fminf): Likewise.
6005         * mingwex/fmaxl.c: New file.
6006         * mingwex/fminl.c: New file.
6007         * mingwex/fpclassify.c (__fpclassifyf): Split out to ...
6008         * mingwex/fpclassifyf.c: New file.
6009         * mingwex/fpclassifyl.c: New file.
6010         * mingwex/rint.c (rintf): Split out to...
6011         * mingwex/rintf.c: New file.
6012         * mingwex/rintl.c: New file.
6013         * mingwex/round.c (roundf): Split out to...
6014         * mingwex/roundf.c: New file.
6015         * mingwex/roundl.c: New file.
6016         * mingwex/trunc.c (truncf): Split out to...
6017         * mingwex/truncf.c: New file.
6018         * mingwex/truncl.c: New file.
6019         * mingwex/signbit.c (signbitf): Split out to...
6020         * mingwex/signbitf.c: New file.
6021         * mingwex/signbitl.c: New file.
6022         * mingwex/fmal.c: New file.
6023         * mingwex/copysignl.S: New file.
6024         * mingwex/log2l.c: New file.
6025         * mingwex/fp_consts.c: Add nanl definition.
6026         Comment out unused constants.
6027         * mingwex/Makefile.in (DISTFILES): Add fmaxl.c, fminl.c,
6028         fpclassifyf.c, fpclassifyl.c, rintf.c, rintl.c, roundf.c,
6029         roundl.c, truncf.c truncl.c, signbitf.c signbitl.c,
6030         fmal.c, log2l.c
6031         (MATHOBJS): Add fmaxl.o, fminl.o, fpclassifyf.o,
6032         fpclassifyl.o, rintf.o, rintl.o, roundf.o, roundl.o,
6033         truncf.o truncl.o, signbitf.o signbitl.o, fmal.o,
6034         log2l.o.
6035         * mingwex/snwprintf.c (snwprintf, vsnwprintf): Correct typo.
6036
6037 2002-04-23  Danny Smith  <dannysmith@users.sourceforge.net>
6038
6039         Make wide char versions of opendir and friends.
6040
6041         * include/dirent.h (_wdirent, _WDIR): Define wide versions of
6042         struct dirent, DIR.
6043         (_wopendir,_wreaddir,_wclosedir,_wrewinddir,_wtelldir,
6044         _wseekdir): Add prototypes for wide versions of corresponding
6045         standard functions.
6046         * include/tchar.h; Add _UNICODE mappings for dirent.h
6047         structures and functions.
6048         * mingwex/dirent.c: Make _UNICODE neutral.
6049         * mingwex/wdirent.c: New file to define _UNICODE before
6050         including dirent.c.
6051         * mingwex/Makefile.in (DISTFILES): Add wdirent.c.
6052         (POSIX_OBJS): Add wdirent.o.
6053         (wdirent.o): Specify dependency on dirent.c as well as
6054         wdirent.c.
6055         * samples/dirent/wtest.c: New file, wide version of test.c.
6056
6057 2002-04-17  Danny Smith  <dannysmith@users.sourceforge.net>
6058
6059         * Makefile.in (INCLUDES): Add "-iwithprefixbefore include" to
6060         ensure gcc include dir is searched despite -nostdinc.
6061         * profile/Makefile.in (INCLUDES): Likewise.
6062         * mingwex/Makefile.in (INCLUDES): Likewise.
6063         * include/stdarg.h: Replace with stub that just guards the
6064         real gcc system header with #ifndef RC_INVOKED
6065         * include/varargs.h: Likewise.
6066         * include/stddef.h: Likewise.
6067         * include/stdio.h: Include stdarg.h after defining
6068          __need___va_list.
6069         (__VALIST): Define as __gnuc_va_list if __GNUC__, else char*.
6070         Replace va_list with __VALIST throughout.
6071
6072 2002-04-17  Danny Smith  <dannysmith@users.sourceforge.net>
6073
6074         * crt1.c: Revert changes of 2002-04-16. Use _fpreset again.
6075         * msvcrt.def (_fpreset): Mark as DATA so that only
6076         _imp___fpreset is exported.
6077         * msvcrt20.def (_fpreset): Likewise.
6078         * msvcrt40.def (_fpreset): Likewise.
6079         * crtdll.def (_fpreset): Likewise.
6080         * CRT_fp10.c (_fpreset): Overide library _fpreset with one
6081         that calls fninit.
6082         (fpreset): Add alias.
6083         (__CRT_PC): Delete definition. _fpreset does it now.
6084         * CRT_fp8.c (_fpreset): Force use of library _imp___fpreset.
6085         (fpreset): Add alias.
6086         (__CRT_PC): Delete definition.
6087         * moldname.def.in: Comment out fpreset.
6088         * moldname-msvcrt.def: Regenerate.
6089         * moldname-crtdll.def: Regenerate.
6090         * include/fenv.h (FE_DFL_ENV): Define as (fenv_t*)0.
6091         * mingwex/fesetenv.c (FE_DFL_ENV): Use it to set environment
6092         with the _fpreset determined by startup CRT_fp object.
6093
6094 2002-04-16  Danny Smith  <dannysmith@users.sourceforge.net>
6095
6096         * CRT_fp8.c: New file.
6097         * CRT_fp10.c: New file.
6098         * crt1.c (__CRT_PC) Declare.
6099         (__CRT_fesetenv): New static function, using _CRT_PC.
6100         (__mingw_CRTStartup):Use __CRT_fesetenv instead of _fpreset.
6101         (_gnu_exception_handler): Likewise.
6102         * Makefile.in (CRT0S): Add CRT_fp10.o.
6103         (MINGW_OBJS): Add CRT_fp8.o.
6104         (SRCDIST_FILES): Add CRT_fp8.c, CRT_fp10.c.
6105         Add CRT_fp8.o, CRT_fp10.o dependancies.
6106         * include/float.h (_fpreset): Expand comment.
6107         * include/fenv.h (FE_PC64_ENV): New define for Intel x87
6108         (extended precison) environmemt.
6109         (FE_PC53_ENV): New define for MSVCRT default environmemt.
6110         (FE_DFL_ENV): Define as FE_PC53_ENV.
6111         * mingwex/fesetenv.c: Use FE_PC53_ENV, FE_PC64_ENV to determine
6112         precision control for default environment.
6113
6114         * include/math.h: Fix long comment line.
6115         * profile/configure.in (CRT0S): Set to both gcrt1.o and gcrt2.o
6116         for mingw.
6117         * profile/configure: Regenerate.
6118
6119 2002-04-12  Danny Smith  <dannysmith@users.sourceforge.net>
6120
6121         * mingwex/Makefile.in (DISTFILES): Add suffix to wcstof.c.
6122
6123 2002-04-10  Danny Smith  <dannysmith@users.sourceforge.net>
6124
6125         * mingwex/mingw-fseek.c: New file, based on 1999-11-07 mingw-local
6126         patch to binutils, by Mumit Khan <khan@nanotech.wisc.edu>; provide...
6127         (__mingw_fseek): New function to work around Win9x f/lseek bug.
6128         (__mingw_fwrite): Likewise.
6129         (__mingw_is_win9x): New helper function.
6130
6131         * include/stdio.h (__USE_MINGW_FSEEK): New define,guarding...
6132         (__mingw_fseek): New prototype and define to replace fseek.
6133         (__mingw_fwrite): New prototype and define to replace fwrite.
6134         * mingwex/Makefile.in: Add mingw-fseek.o to libmingwex.a.
6135         * moldname-crtdll.def: Remove CR from end of line.
6136         * moldname-msvcrt.def: Ditto.
6137
6138 2002-04-09  Danny Smith  <dannysmith@users.sourceforge.net>
6139
6140         * profile/configure.in (CRT0S): Configure name of gcrt?.o
6141         based on target, building gcrt0.o for cygwin -mno-cygwin.
6142         * profile/configure: Regenerate.
6143         * profile/Makefile.in (CRT0S): Use name from configure.
6144         (gcrt0.o): New rule.
6145         (ALL_CRT0S): New define, used to cleanup all gcrt?.o's.
6146
6147 2002-04-04  Danny Smith  <dannysmith@users.sourceforge.net>
6148
6149         * include/math.h (_controlfp, _control87, _clearfp, _statusfp, _fpreset,
6150         _fpecode): Remove prototypes copied from float.h.
6151         (nan, nanf): Move into block protected against RC_INVOKED
6152         and __cplusplus.
6153         * include/stdlib.h (_Exit): Change from static inline to
6154         extern inline.
6155         * mingwex/_Exit.c : New file.
6156         * mingwex/Makefile.in: Add _Exit.o to libmingwex.a.
6157
6158 2002-04-04  Danny Smith  <dannysmith@users.sourceforge.net>
6159
6160         Add libgmon.a and libmingwex.a for cygwin -mno-cygwin.
6161         * configure.in (SUBDIRS): Add profile and mingwex to cygwin target.
6162         (configdirs): Likewise.
6163         (LIBGMON_A): Define for cygwin target as well.
6164         * configure: Regenerate.
6165         * profile/configure.in (THREAD_DLL): Remove define.
6166         (LIBM_A): Remove define.
6167         (LIBGMON_A): Define for cygwin target as well.
6168         * profile/configure: Regenerate.
6169         * profile/makefile.in (install): Install to inst_libdir and
6170         inst_includedir.
6171         * mingwex/makefile.in (CFLAGS): Move -fomit-frame-pointer to...
6172         (OPTFLAGS): New define.
6173         (ALL_CFLAGS): Add $(OPTFLAGS).
6174         (ALL_CXXFLAGS): Same.
6175         (.c.o:): Remove ALL_CXXFLAGS.
6176
6177 2002-03-29  Danny Smith  <dannysmith@users.sourceforge.net>
6178
6179         * include/stdint.h: Add missing newline at eof.
6180         * include/stdio.h (snprintf): Add prototype.
6181         (vsnprintf): Add prototype and inline definition.
6182         (snwprintf): Add prototype.
6183         (vsnwprintf): Add prototype and inline definition.
6184         * include/wchar.h (snwprintf): Add prototype.
6185         (vsnwprintf): Add prototype and inline definition.
6186         * mingwex/Makefile.in: Add snprintf.o, snwprintf.o
6187         to libmingwex.a.
6188         * mingwex/snprintf.c: New file.
6189         * mingwex/snwprintf.c: New file.
6190
6191 2002-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6192
6193         * configure.in: Add mingwex as SUBDIRS and configdirs.
6194         * configure: Regenerate.
6195         * Makefile.in (MINGW_OBJS): Remove dirent.o.
6196         (SRC_DIST_FILES): Remove dirent.c.
6197         * dirent.c: Remove.
6198         * include/stdlib.h (_Exit): Add static inline
6199         function.
6200         (struct lldiv_t): Define.
6201         (lldiv): Add prototype.
6202         (llabs): Add extern inline function.
6203         (strtoll,strtoull): Add prototypes.
6204         (wcstol, wcstoul, wcstod): Group together.
6205         (strtof, wcstof): Add extern inline definitions.
6206         (atoll,lltoa,ulltoa, wtoll, lltow ulltow): Add prototypes
6207         and extern inline definitions.
6208         * include/wchar.h (fwide, wcstoll,wcstoull, wmemchr
6209         wmemcmp, wmemcpy, wmemmove, wmemset. mbsinit): Add
6210         prototypes.
6211         (wcstol, wcstoul,wcstod): Copy prototypes from stdlib.h.
6212         (wcstof): Add extern inline definition.
6213         * include/math.h (nan, nanf): Add prototypes.
6214         (NAN, INFINITE): Define constants.
6215         (fpclassify, isnan ,signbit): Add macros and supporting float
6216         and double functions.
6217         (isfinite, isinf, isnormal): Add macros.
6218         (isgreater, isless, isgreaterequal, islessequal,islessgreater):
6219         Add macros.
6220         (rint, rintf, round, roundf, trunc. truncf, fmax, fmaxf,
6221         fmin, fminf, fma, fmaf, log2, log2f): Add prototypes.
6222         (copysign, logb, nextafter, scalb): Add prototypes and
6223         inline stubs for underscored versions in msvcrt.dll.
6224         * include/inttypes.h: New file.
6225         * include/fenv.h: New file
6226
6227         Add new mingwex subdir and files.
6228         * mingwex: New directory.
6229         * mingwex/Makefile.in: New file.
6230         * mingwex/configure.in: New file.
6231         * mingwex/configure: Generate.
6232         * mingwex/dirent.c: Moved here from parent dir.
6233         * mingwex/atoll.c: New file.
6234         * mingwex/feclearexcept.c: New file.
6235         * mingwex/fegetenv.c: New file.
6236         * mingwex/fegetexceptflag.c: New file.
6237         * mingwex/fegetround.c: New file.
6238         * mingwex/feholdexcept.c: New file.
6239         * mingwex/feraiseexcept.c: New file.
6240         * mingwex/fesetenv.c: New file.
6241         * mingwex/fesetexceptflag.c: New file.
6242         * mingwex/fesetround.o: New file.
6243         * mingwex/fetestexcept.c: New file.
6244         * mingwex/feupdateenv.c: New file.
6245         * mingwex/fma.S: New file.
6246         * mingwex/fmaf.S: New file.
6247         * mingwex/fmax.c: New file.
6248         * mingwex/fmaxf.c: New file.
6249         * mingwex/fmin.c: New file.
6250         * mingwex/fminf.c: New file.
6251         * mingwex/fp_consts.c: New file.
6252         * mingwex/fpclassify.c: New file.
6253         * mingwex/fucom.c: New file.
6254         * mingwex/fwide.c: New file.
6255         * mingwex/imaxabs.c: New file.
6256         * mingwex/imaxdiv.c: New file.
6257         * mingwex/isnan.c: New file.
6258         * mingwex/isnanf.c: New file.
6259         * mingwex/lltoa.c: New file.
6260         * mingwex/lltow.c: New file.
6261         * mingwex/log2.c: New file.
6262         * mingwex/log2f.c: New file.
6263         * mingwex/math_stubs.c: New file.
6264         * mingwex/mbsinit.c: New file.
6265         * mingwex/rint.c: New file.
6266         * mingwex/round.c: New file.
6267         * mingwex/signbit.c: New file.
6268         * mingwex/sitest.c: New file.
6269         * mingwex/strtof.c: New file.
6270         * mingwex/strtoimax.c: New file.
6271         * mingwex/strtoumax.c: New file.
6272         * mingwex/testwmem.c: New file.
6273         * mingwex/trunc.c: New file.
6274         * mingwex/ulltoa.c: New file.
6275         * mingwex/ulltow.c: New file.
6276         * mingwex/wcstof.c: New file.
6277         * mingwex/wcstoimax.c: New file.
6278         * mingwex/wcstoumax.c: New file.
6279         * mingwex/wmemchr.c: New file.
6280         * mingwex/wmemcmp.c: New file.
6281         * mingwex/wmemcpy.c: New file.
6282         * mingwex/wmemmove.c: New file.
6283         * mingwex/wmemset.c: New file.
6284         * mingwex/wtoll.c: New file.
6285
6286 2002-04-20  Danny Smith  <dannysmith@users.sourceforge.net>
6287
6288         * include/mbstring.h: New file.
6289         * include/mbctype.h: New file.
6290
6291 2002-04-20  Danny Smith  <dannysmith@users.sourceforge.net>
6292
6293         * include/tchar.h (__TEXT): Make same as define in
6294         w32api/include/winnt.h.
6295
6296 2002-04-20  Danny Smith  <dannysmith@users.sourceforge.net>
6297
6298         * include/tchar.h (_tputenv): Add UNICODE mappings.
6299         (_tsearchenv): Likewise.
6300         (_tmakepath): Likewise.
6301         (_tsplitpath): Likewise.
6302         (_tfullpath): Likewise.
6303
6304 2002-04-18  Pascal Obry  <obry@gnat.com>
6305
6306         * dirent.c (opendir): Convert given pathname to
6307         absolute pathname.
6308
6309 2002-04-09  Earnie Boyd  <earnie@users.sf.net>
6310
6311         * include/_mingw.h: Increment version.
6312         * Makefile.in: Ditto.
6313
6314 2002-04-09  Earnie Boyd  <earnie@users.sf.net>
6315
6316         * moldname-crtdll.def: Remove CR from end of line.
6317         * moldname-msvcrt.def: Ditto.
6318         * Makefile.in: Use bzip2 compression for Cygwin target.
6319
6320 2002-04-04  Danny Smith  <dannysmith@sourceforge.users.net>
6321
6322         * include/math.h (DOMAIN, SING, OVERFLOW, UNDERFLOW,
6323         TLOSS, PLOSS): Move oldname defines back, following
6324         the underscored names.
6325
6326 2002-03-29  Danny Smith  <dannysmith@sourceforge.users.net>
6327
6328         * include/stdio.h (_snwprintf): Correct spelling.
6329         (_vsnwprintf): Likewise.
6330         * include/wchar.h (_snwprintf): Correct spelling.
6331         (_vsnwprintf): Likewise.
6332
6333 2002-03-26  Danny Smith  <dannysmith@users.sourceforge.net>
6334
6335         * moldname.def.in (__MSVCRT__): Replace with !(__CRTDLL__).
6336         (wpopen): Add if !(__CRTDLL__).
6337         * Makefile.in (moldname-msvcrt.def rule): Use -C, not -c to
6338         preserve comments.
6339         (moldname-crtdll.def rule): Likewise.
6340         * moldname-msvcrt.def: Regenerate.
6341         * moldname-crtdll.def: Regenerate.
6342         * include/stdio.h (wpopen):Use prototype, not a define.
6343         (_swnprintf): Add prototype.
6344         (_vswnprintf): Likewise.
6345         Tidy up whitespace.
6346         * include/wchar.h (_swnprintf): Add prototype.
6347         (_vswnprintf): Likewise.
6348         Tidy up whitespace.
6349
6350 2002-01-28  Danny Smith  <dannysmith@users.sourceforge.net>
6351
6352         * include/malloc.h (_heapinfo): Correct structure definition.
6353         (_USEDENTRY,_FREEENTRY): Add defines.
6354         Add comment on platform support for _heap* functions.
6355         (_get_sbh_threshold): Add prototype.
6356         (_set_sbh_threshold): Likewise.
6357         (_expand): Likewise.
6358
6359 2002-01-25  Danny Smith  <dannysmith@users.sourceforge.net>
6360
6361         * profile/profil.c: Update copyright info.
6362         * profile/profil.h: Likewise.
6363         * profile/gcrt0.c: Likewise.
6364
6365 2002-01-25  Pascal Obry  <obry@gnat.com>
6366
6367         * profile/profil.h (PROFADDR): Cast idx to unsigned long long to
6368         avoid overflow.
6369         * profile/gmon.c: Define bzero as memset if mingw32.
6370         (monstartup): Use it.
6371
6372 2002-01-25  Danny Smith  <dannysmith@users.sourceforge.net>
6373
6374         * include/tchar.h (_TCHAR): Add missing ;.
6375
6376 2002-01-25  Danny Smith  <dannysmith@users.sourceforge.net>
6377
6378         * include/tchar.h (_TCHAR): Add typedefs.
6379
6380 2002-01-16  Danny Smith  <dannysmith@users.sourceforge.net>
6381
6382         * include/stdlib.h (_onexit_t): Add typedef.
6383         (_onexit): Add prototype.
6384
6385 2002-01-12  Danny Smith  <dannysmith@users.sourceforge.net>
6386
6387         * msvcrt.def: Revert accidental change.
6388         * include/stdlib.h: Ditto.
6389
6390 2001-12-07  Earnie Boyd  <earnie@users.sf.net>
6391
6392         * Makefile.in: Increment VERSION.
6393         * include/_mingw.h: Ditto.
6394
6395 2001-12-05  Earnie Boyd  <earnie@users.sf.net>
6396
6397         * include/strings.h: New File.
6398
6399 2001-12-02  Mumit Khan  <khan@nanotech.wisc.edu>
6400
6401         * include/math.h (_FPCLASS* ): Add defines from float.h.
6402         (IEEE recommended functions): Add declarations from float.h.
6403         * include/float.h (_FPCLASS* ): Protect against redefinition.
6404
6405 2001-11-29  Wu Yongwei  <adah@netstd.com>
6406
6407         * include/_mingw.h,assert.h,conio.h,ctype.h,dir.h,direct.h
6408         dirent.h,dos.h,errno.h,excpt.h,fcntl.h,float.h,io.h,
6409         limits.h,locale.h,malloc.h,math.h,process.h,setjmp.h,
6410         share.h,signal.h,stdarg.h,stddef.h,stdint.h,stdio.h,
6411         stdlib.h,string.h,tchar.h,time.h,varargs.h,wchar.h,
6412         wctype.h,sys/stat.h,sys/timeb.h,sys/types.h,sys/utime.h:
6413         Correct spelling of "disclaimed" in comments.
6414         * include/excpt.h: Another spelling correction.
6415
6416 2001-11-08  Robert Collins  <rbtcollins@hotmail.com>
6417
6418         * include/errno.h: Fix "errno is not a prototype" warning.
6419
6420 2001-11-07  Danny Smith  <dannysmith@users.sourceforge.net>
6421
6422         * include/ctype.h (tolower, toupper,_tolower,_toupper): Comment
6423         differences between ANSI and non-ANSI versions.
6424         (_ctype[],_pctype): Declare vars.
6425         (__ISCTYPE): New helper macro using _pctype.
6426         (is* ctype functions): Use __ISCTYPE to define inline versions.
6427         (_toupper, _tolower, __isascii, __toascii, __iscsym, __iscsymf):
6428         Inline definitions.
6429         (isw* ctype functions): Inline definitions.
6430         * include/wctype.h (_ctype[],_pctype): Declare vars.
6431         (isw* ctype functions): Inline definitions.
6432
6433
6434 2001-11-06  Danny Smith  <dannysmith@users.sourceforge.net>
6435
6436         * include/float.h (_clearfp, _statusfp, _fpreset, fpreset,
6437         __fpecode): Use __STDC__ prototypes.
6438
6439
6440 2001-11-06  Thomas Pfaff  <tpfaff@gmx.net>
6441
6442         * mthr_stub.c (__mingwthr_remove_key_dtor) New.
6443         * mthr_init.c (DllMain) Run dtors if a process terminates.
6444         * mthr.c (__mingwthr_add_key_dtor) Removed.
6445         (___mingwthr_add_key_dtor) New.
6446         (___mingwthr_remove_key_dtor) New.
6447         (__mingwthr_run_key_dtors) Complete rewrite.
6448         (__mingwthr_remove_key_dtor) New.
6449
6450 2001-11-05  Egor Duda  <deo@logos-m.ru>
6451
6452         * Makefile.in: Delete unused executable after creating base-files.
6453
6454 2001-11-06  Danny Smith  <dannysmith@users.sourceforge.net>
6455
6456         * include/errno.h (_errno): Use __STDC__ prototype.
6457         Thanks to: Jim Barton.
6458
6459 2001-11-04  "stefan"  <stefan@lkcc.org>
6460
6461         * include/sys/locking.h (_LK_UNLCK, LK_UNLCK): Correct names.
6462
6463 2001-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
6464
6465         * include/io.h (_commit): Add declaration.
6466         Thanks to: "stefan" <stefan@lkcc.org>
6467
6468 2001-10-30  Danny Smith  <dannysmith@users.sourceforge.net>
6469
6470         * include/sys/stat.h: Make S_IS* macros safer.
6471
6472 2001-10-27  Danny Smith  <dannysmith@users.sourceforge.net>
6473
6474         * include/stdlib.h (EXIT_FAILURE): Change value to 1.
6475
6476 2001-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
6477
6478         * include/stdlib.h (__p__environ, __p__wenviron): Use
6479         __STDC__ prototypes.
6480
6481 2001-09-19  Earnie Boyd  <earnie@SF.net>
6482
6483         * Makefile.in: Remove the /usr from the install target.
6484         (VERSION): Increment.
6485         include/_mingw.h: Ditto.
6486
6487 2001-09-17  Earnie Boyd  <earnie@SF.net>
6488
6489         * Makefile.in: Increment version.
6490         * include/_mingw.h: Ditto.
6491
6492 2001-09-10  Earnie Boyd  <earnie@SF.net>
6493
6494         * dossh: Remove inadvertantly imported file.
6495
6496 2001-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
6497
6498         * dirent.c (opendir): Use GetFileAttributes rather than stat
6499         to determine if input arg is dir.
6500
6501 2001-08-29  Danny Smith  <dannysmith@users.sourceforge.net>
6502
6503         * include/stdarg.h (va_list): Typedef as __builtin_va_list if
6504         __GNUC__ >= 3.
6505         * include/varargs.h (va_list): Ditto.
6506         * include/stdio.h (va_list): Ditto.
6507
6508 2001-08-01  Danny Smith  <dannysmith@users.sourceforge.net>
6509
6510         * include/stdlib.h (_wpgmptr): Don't declare ifndef __MSVCRT__.
6511         * include/stdio.h (_IORW): Change constant to 0x0080.
6512         (TMP_MAX): Add new define.
6513         (_P_tmpdir): Ditto.
6514         (_wP_tmpdir): Ditto.
6515         (L_tmpnam): Change constant to 16.
6516
6517 2001-06-28  Danny Smith  <dannysmith@users.sourceforge.net>
6518
6519         * include/malloc.h: Fix non-ANSI comment after #endif.
6520
6521 2001-06-11  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
6522
6523         * profile/configure.in: Make msvcrt.dll version default.
6524         * profile/makefile.in: Build both gcrt1.o and gcrt2.o.
6525         * provile/configure: Regenerate.
6526
6527 2001-06-11  Mattia Barbon  <mbarbon@dsi.unive.it>
6528
6529         * include/stdio.h (swscanf): Make first arugument const.
6530         * include/wchar.h (swscanf): Ditto.
6531         * include/tchar.h (_tfopen): New _UNICODE define.
6532         (_tgetenv): Ditto.
6533         (_tsetlocale): Ditto.
6534
6535 2001-06-04  Earnie Boyd  <earnie@users.sourceforge.net>
6536
6537         * profile/Makefile.in (mkinstalldirs): Correct relative path.
6538
6539 2001-06-04  Earnie Boyd  <earnie@users.sourceforge.net>
6540
6541         * include/_mingw.h: Change version to 1.0.
6542         Makefile.in: Ditto.
6543
6544 2000-02-21  Earnie Boyd  <earnie@users.sourceforge.net>
6545
6546         * include/tchar.h: (__TEXT): Remove undef.
6547         (_TEXT): Ditto.
6548         (_T): Ditto.
6549
6550 2001-02-02  Earnie Boyd  <earnie@users.sourceforge.net>
6551
6552         * include/tchar.h: (__TEXT): Add private macro.
6553         (_TEXT): Modify definition to use __TEXT.
6554         (_T): Ditto.
6555         This change allows the passing of a MACRO as an argument and have that
6556         MACRO resolved first.
6557         Thanks to: Eric PAIRE <eric.paire@ri.silicomp.com>
6558
6559 2001-01-31  Earnie Boyd  <earnie@users.sourceforge.net>
6560
6561         * Makefile.in: Increment version to 0.5
6562         * include/_mingw.h: Increment minor version
6563
6564 2001-01-30  Earnie Boyd  <earnie@users.sourceforge.net>
6565
6566         * include/assert.h: (assert): Remove ; from end of definition
6567         Thanks to: AJ Reins <tbisp@qwest.net>
6568
6569 2001-01-30  Earnie Boyd  <earnie@users.sourceforge.net>
6570
6571         * include/time.h (CLOCKS_PER_SEC): Type cast the constant.
6572         Thanks to: Cosmin Truta <cosmin@cs.toronto.edu>
6573
6574 2001-01-29  Earnie Boyd  <earnie@users.sourceforge.net>
6575
6576         * include/time.h (CLOCKS_PER_SEC): Change from FP to integer constant.
6577
6578 2001-01-28  Earnie Boyd  <earnie@users.sourceforge.net>
6579
6580         * include/wchar.h: The 2001.01.18 Change was incorrect. The functions
6581         are actually C functions. These functions are resolved via the
6582         -lmsvcp60 library and comments were placed in the header.
6583
6584 2001-01-28  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
6585
6586         * include/stdlib.h (__p__pgmptr): add prototype.
6587         (__p__wpgmptr): likewise.
6588         (_pgmptr_dll): move declaration from dos.h.
6589         (_wpgmptr_dll): likewise.
6590         (_pgmptr): conditional define (MSVCT/CRTDLL).
6591         (_wpgmptr): likewise.
6592         * include/dos.h (_base*_dll variables): declare only for CRTDLL.
6593         (_os*_dll variables): likewise.
6594         (_pgmptr_dll): remove declaration and associated defines to stdlib.h.
6595         (_wpgmptr_dll): likewise.
6596
6597 2001-01-22  Danny Smith  <danny_r_smith_2001@yahoo.co.nz>
6598
6599         * include/stdint.h: New file.
6600
6601 2001-01-18  Earnie Boyd  <earnie@users.sourceforge.net>
6602
6603         * include/wchar.h: Protect prototypes only declared in the C++ STL
6604         from being declared unless __cplusplus is defined.
6605
6606 2001-01-16  Earnie Boyd  <earnie@users.sourceforge.net>
6607
6608         * include/stdlib.h: Apply Danny Smith patch 102730
6609         2000-12-09 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
6610         (_wgetenv) Correction to return type.
6611
6612 2001-01-16  Earnie Boyd  <earnie@users.sourceforge.net>
6613
6614         * include/locale.h: Apply Danny Smith patch 101834
6615         2000-11-23 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
6616         (LC_MIN) Add definition.
6617         (LC_MAX) ditto.
6618         (_wsetlocale) Add prototype.
6619
6620 2000-11-29  Earnie Boyd  <earnie_boyd@yahoo.com>
6621
6622         * Makefile.in: eliminate the need for RUNTIME and CRT_ID.
6623         Always build crt1.o, dllcrt1.o, crt2.o and dllcrt2.o.
6624         Create a libcoldname.a for the oldname library for CRTDLL.
6625         Restrict libmoldname.a for the oldname library for MSVCRT.
6626         * configure.in: eliminate setting RUNTIME and CRT_ID variables.
6627         Restructure the $target_os case logic.
6628         Always name the MinGW thread dll helper mingwm.
6629         Change Cygwin's HEADER_SUBDIR value from mingw32 to mingw.
6630         * configure: regenerate.
6631
6632 2000-11-22  Earnie Boyd  <earnie_boyd@yahoo.com>
6633
6634         * Makefile.in: Fix bindist target to distribute the correct files.
6635         Remove the use of SNAPSHOT variable and test SNAPDATE instead.
6636         Set SNAPDATE within the snapshot target on recursive call to $(MAKE).
6637
6638 2000-11-21  Earnie Boyd  <earnie_boyd@yahoo.com>
6639
6640         * Makefile.in: Add missing line continuation `\' for $(SUBDIRS) target.
6641         Add variables and targets to control binary and source distributions.
6642         Add variables and targets to control snapshot distribution.
6643         * profile/gmon.h: Add missing #endif for #ifndef.
6644         * profile/ChangeLog: Merge entries here and remove.
6645         * profile/Makefile.in: Add variables and targets to control
6646         distribution.
6647         * README: Add.
6648         * TODO: ditto.
6649         * config.guess: ditto.
6650         * config.sub: ditto.
6651         * mkinstalldirs: ditto.
6652         * install-sh: ditto.
6653         * configure: regenerate.
6654         * profile/configure: ditto.
6655
6656 2000-11-20  Earnie Boyd  <earnie_boyd@yahoo.com>
6657
6658         * Merge in changes from
6659         2000-10-23 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
6660         * include/direct.h: add guard around MSVCRT-only prototytpes
6661         * include/io.h: add __int64 struct definitions and function prototypes;
6662                  add guard for MSVCRT-only prototypes
6663         * include/limits.h: add ISO C9x macros LLONG_MIN, LLONG_MAX, ULLONG_MAX
6664         * include/stdio.h: add wchar function prototypes (__MSVCRT__);
6665                  put wchar functions together to make sync with wchar.h easier
6666         * include/stdlib.h: add wide char functions (__MSVCRT__)
6667         * include/string.h: add string collation functions ( __MSVCRT__)
6668         * include/sys/stat.h: add __int64 struct and function ( __MSVCRT__)
6669         * include/tchar.h: add macros and macro function definitions
6670         * include/wchar.h: add wide char function prototypes ( __MSVCRT__ );
6671                 enclose more functions in __MSVCRT__ guard;
6672                 some oldname wide char function prototypes #if (0)'d
6673         * profile/gmon.h: add guard around BSD-ish typedefs
6674
6675 2000-11-20  Christopher Faylor  <cgf@cygnus.com>
6676
6677         * Makefile.in: Use a different variable name for subdirectory since the
6678         previous one was used by the top level make.
6679
6680 2000-11-19  Christopher Faylor  <cgf@cygnus.com>
6681
6682         * Makefile.in: Install mingw stuff in a subdirectory if building under
6683         cygwin.
6684
6685 2000-06-17  Christopher Faylor  <cgf@cygnus.com>
6686
6687         * Makefile.in (subdirs): Eliminate for loop.
6688
6689 2000-06-17  Christopher Faylor  <cgf@cygnus.com>
6690
6691         * Makefile.in (subdirs): Previous change did not fix problem in
6692         broken shells.
6693
6694 2000-06-17  Christopher Faylor  <cgf@cygnus.com>
6695
6696         * Makefile.in: Avoid installing dll if we're cross building and the
6697         cross-host system isn't a Windows system.
6698         * configure.in: Detect cross-hosting situation and set appropriate
6699         variables in Makefile.in.
6700         * configure: Regenerate.
6701
6702 2000-04-19  Christopher Faylor  <cgf@cygnus.com>
6703
6704         * configure.in: Change HEADER_SUBDIR to mingw32.
6705         * configure: Regenerate.
6706
6707 2000-04-10  Christopher Faylor  <cgf@cygnus.com>
6708
6709         * include/string.h: Use proper prototype for _strerror.
6710
6711 2000-03-30  Mumit Khan  <khan@xraylith.wisc.edu>
6712
6713         * Makefile.in (subdirs): Workaround for broken shells.
6714
6715 2000-02-03  Mumit Khan  <khan@xraylith.wisc.edu>
6716
6717         * Snapshot 2000-02-03.
6718
6719         * include/{assert.h, conio.h, ctype.h, direct.h, dirent.h, fcntl.h,
6720         float.h, io.h, locale.h, malloc.h, math.h, process.h, signal.h,
6721         stdio.h, stdlib.h, string.h, time.h, wctype.h, sys/stat.h,
6722         sys/timeb.h, sys/utime.h}: Remove parameter names to avoid namespace
6723         pollution.
6724
6725         * Makefile.in (all): Build CRT0S first.
6726         (libmingwthrd.a): Remove thread support DLL from dependency.
6727
6728 2000-01-21  Mumit Khan  <khan@xraylith.wisc.edu>
6729
6730         * Snapshot 2000-01-21.
6731
6732 2000-01-20  Mumit Khan  <khan@xraylith.wisc.edu>
6733
6734         Merge in changes from Cygwin:
6735         * configure.in (HEADER_SUBDIRS): New variable. Substitute.
6736         (SUBDIRS): Likewise.
6737         * Makefile.in (HEADER_SUBDIRS): New variable.
6738         (install): Use to install Mingw headers to a subdirectory if building
6739         under Cygwin.
6740         (DLL_CC_STUFF): Add DLL entry point.
6741         * configure: Regenerate.
6742
6743 2000-01-19  Mumit Khan  <khan@xraylith.wisc.edu>
6744
6745         * include/stdio.h (fsetpos): Fix prototype.
6746         (fpos_t): Fix for MSVCRT.
6747         * include/float.h (fpreset): Add prototype.
6748         * include/limits.h: Define UINT_MAX, USHRT_MAX and ULONG_MAX with
6749         constant values.
6750         * include/time.h: Don't define tzname as a macro for CRTDLL, and
6751         export using libmoldname.a.
6752         * crtdll.def: Add DATA tags.
6753         * msvcrt.def: Likewise.
6754         * moldname.def.in: Likewise. Add fpreset. Export tzname for
6755         both MSVCRT and CRTDLL.
6756         * moldname-crtdll.def: Regenerate.
6757         * moldname-msvcrt.def: Regenerate.
6758
6759 1999-12-21  Mumit Khan  <khan@xraylith.wisc.edu>
6760
6761         * Snapshot 1999-12-21.
6762
6763         * include/wctype.h: New file.
6764         * include/ctype.h (MB_CUR_MAX): Define.
6765         (wctype_t): Guard.
6766         * include/stdlib.h (MB_CUR_MAX): Define.
6767         * include/wchar.h: Define stat, _stat structures here as well.
6768         * include/float.h: Add invalid subconditions (_SW) and floating
6769         point error (_FPE) macros.
6770         * include/time.h (_CLOCK_T): Rename macro to _CLOCK_T_DEFINED.
6771         (_TIME_T): Rename macro to _TIME_T_DEFINED.
6772         * include/sys/types.h: Likewise.
6773
6774 1999-11-18  Mumit Khan  <khan@xraylith.wisc.edu>
6775
6776         * profile/profil.c (profile_on): Set the profiler thread priority to
6777         be time critical. Thanks to Pascal Obry <pascal_obry@csi.com>.
6778         * Snapshot 1999-11-18.
6779
6780 1999-11-07  Mumit Khan  <khan@xraylith.wisc.edu>
6781
6782         Released 1999-11-07.
6783
6784         * Makefile.in (CRT0S): Add crtst.o.
6785         (install): Install in subdirs as well.
6786         * dirent.h (struct _stat): Rename from struct stat.
6787         * include/tchar.h: Add some new macros. Thanks to
6788         Eric Kohl <ekohl@abo.rhein-zeitung.de>.
6789         * profile/Makefile.in (install): Fix target.
6790
6791 1999-11-04  Mumit Khan  <khan@xraylith.wisc.edu>
6792
6793         * Makefile.in: Add support for profile directory.
6794         * configure.in: Likewise.
6795         * configure: Regenerate.
6796
6797         * profile: Imported profiling sources from winsup-19991026 snapshot.
6798         * profile/Makefile.in: New file.
6799         * profile/configure.in: New file.
6800         * profile/configure: Generate.
6801         * profile/gcrt0.c (u_char, u_short, u_int, u_long): typedef for Mingw.
6802         * profile/gmon.h (u_char, u_short, u_int, u_long): Likewise.
6803         * profile/gmon.c (unistd.h): Include conditionally.
6804         (sys/param.h): Likewise.
6805         * profile/mcount.c (sys/param.h): Likewise.
6806         * profile/profil.c (profile_on): thread id is DWORD, not int.
6807
6808
6809 1999-11-03  Mumit Khan  <khan@xraylith.wisc.edu>
6810
6811         * include/stdlib.h: Add wide character version of argv/environ.
6812         Formatting changes.
6813         * include/wchar.h: More wide character prototypes.
6814         * include/sys/stat.h: Likewise. Add struct stat as well as _stat.
6815
6816         * dllcrt1.c (init.c): Don't include.
6817         (DllMainCRTStartup): Don't call _mingw32_init_mainargs().
6818         * Makefile.in: Remove init.c from dllcrt{1,2}.c dependency lists.
6819
6820 1999-10-30  Mumit Khan  <khan@xraylith.wisc.edu>
6821
6822         * moldname.def: Remove file.
6823         * moldname.def.in: And add this.
6824         * moldname-msvcrt.def: Generate from moldname.def.in.
6825         * moldname-crtdll.def: Likewise.
6826
6827         * mthr.c: New file for -mthread (thread-safe C++ EH) support.
6828         * mthr_init.c: New file for -mthread (thread-safe C++ EH) support.
6829         * mthr_stub.c: New file for -mthread (thread-safe C++ EH) support.
6830
6831         * Makefile.in: Update.
6832         * configure.in: Likewise. Also add *cygwin* target for building
6833         under Cygwin winsup.
6834         * configure: Regenerate.
6835
6836 1999-10-01  Mumit Khan  <khan@xraylith.wisc.edu>
6837
6838         * include/_mingw.h: Add version macros.
6839         * include/direct.h (_diskfree_t, getdiskfree, getdrives): Add.
6840         Also add wide character versions shared with wchar.h.
6841         * include/dos.h (_diskfree_t, getdiskfree, getdrives): Add.
6842         * include/io.h (sopen, _sopen): Fix prototype.
6843         Add wide character prototypes.
6844         * include/wchar.h: Likewise.
6845         * include/stdlib.h (beep, seterrormode, sleep): Remove non-
6846         underscored versions. Potential incompatibility.
6847         * include/time.h (daylight, timezone, tzname): Fix MSVCRT cases.
6848         Add wide character prototypes.
6849         * include/sys/timeb.h (struct _timeb): Don't use macro, but real
6850         definition.
6851
6852 1999-08-18  Mumit Khan  <khan@xraylith.wisc.edu>
6853
6854         * configure.in (RUNTIME, CRT_ID): Add to differentiate between
6855         crtdll and msvcrt runtimes. Remove DLL_ENTRY and DEF_DLL_ENTRY
6856         macros.
6857         * configure: Rengerate.
6858         * Makefile.in (RUNTIME, CRT_ID): Use to generate the correct
6859         dll name and crt's. CRTDLL and MSVCRT are meant to created
6860         separately, so remove all the *-msvcrt* targets.
6861         (libmingwthr.a): New target. Dummy thread support archive.
6862         (LIBS): Add libmingwthr.a.
6863         (CRT0S): Use CRT_ID. Add crtmt.o.
6864         (MINGW_OBJS): Add crtst.o.
6865         * main.c (WinMain): Fix prototype.
6866         * crtmt.c: New file.
6867         * crtst.c: New file.
6868
6869         * include/process.h (_beginthreadex): Fix prototype.
6870         * include/_mingw.h (__int64): Define for __GNUC__.
6871         * include/tchar.h (_ttol): Add macro.
6872         * include/stdlib.h (_wtoi, _wtol, _i64toa, _ui64toa, _atoi64,
6873         _i64tow, _ui64tow, _wtoi64): Add prototypes.
6874
6875         Reported by Emanuele Aliberti <ea@iol.it>:
6876         * include/tchar.h (_ttoi): Add macro.
6877
6878         Reported by Ulf Moeller <3umoelle@informatik.uni-hamburg.de>:
6879         * include/stdio.h (_snprintf): Add prototype.
6880         (_vsnprintf): Likewise.
6881
6882 1999-08-07  Mumit Khan  <khan@xraylith.wisc.edu>
6883
6884         Reported by Tor Lillqvist <tml@iki.fi>:
6885         * include/stdlib.h (__p___argv): Fix return type.
6886
6887 1999-07-30  Mumit Khan  <khan@xraylith.wisc.edu>
6888
6889         Add UWIN support.
6890         * include/errno.h (errno): It's linked in from startup, not imported.
6891         * include/stdlib.h (errno): Likewise.
6892         * include/io.h: Guard against conflicting macros and prototypes in
6893         system headers.
6894         * include/stdlib.h: Likewise.
6895         * include/string.h: Likewise.
6896         * include/time.h: Likewise.
6897
6898 1999-07-30  Mumit Khan  <khan@xraylith.wisc.edu>
6899
6900         * include/io.h (X_OK): Fix definition. Thanks to Jan Nijtmans.
6901         * include/dos.h: Fix typo __MINGW_EXPORT->__MINGW_IMPORT.
6902         * Makefile.in (INCLUDES): Remove old windows32 include directory.
6903
6904         * crt1.c (_gnu_exception_handler): Fix prototype.
6905         (__mingw_CRTStartup): New function based on mainCRTStartup.
6906         (mainCRTStartup): Set the app type for MSVCRT and call
6907         __mingw_CRTStartup.
6908         (WinMainCRTStartup): Likewise.
6909         * init.c (_startupinfo): Define.
6910         (_getmainargs): Add 5th parameter.
6911         (_mingw32_init_mainargs): Use.
6912
6913         * ALL *.c files: Reformat according to GNU coding style.
6914
6915 1999-07-16  Mumit Khan  <khan@xraylith.wisc.edu>
6916
6917         * Makefile.in (INCLUDES): Add w32api include directory.
6918
6919         * include/_mingw.h: New file.
6920         * include/{assert.h,conio.h,ctype.h,direct.h,dirent.h,dos.h,
6921          errno.h,excpt.h,fcntl.h,float.h,io.h,limits.h,locale.h,malloc.h,
6922          math.h,process.h,setjmp.h,share.h,signal.h,stdarg.h,stdio.h,
6923          stdlib.h,string.h,tchar.h,time.h,varargs.h,sys/locking.h,
6924          sys/stat.h,sys/timeb.h,sys/types.h,sys/utime.h}: Include and
6925          use the macros __DECLSPEC_SUPPORTED and __MINGW_IMPORT.
6926
6927         * include/stdlib.h (atexit): Fix prototype.
6928
6929 1999-06-14  Mumit Khan  <khan@xraylith.wisc.edu>
6930
6931         * include/stdio.h (_tempnam): Fix prototype.
6932         (tempnam): Likewise.
6933         * include/stdlib.h: Replace with GCC's version, and guard
6934         with RC_INVOKED.
6935
6936         From Anders Norlander <anorland@hem2.passagen.se>:
6937         * include/stdlib.h (__argc): Declare.
6938         (__argv): Likewise.
6939
6940 1999-04-05  Mumit Khan  <khan@xraylith.wisc.edu>
6941
6942         * crt1.c (_gnu_exception_handler): Acknowledge Jacob Navia's
6943         contribution.
6944         * Makefile.in (_libm_dummy.o): New target.
6945         (libm.a): Use.
6946
6947 1999-03-16  Mumit Khan  <khan@xraylith.wisc.edu>
6948
6949         * Released 1999-03-16 along with egcs-1.1.2.
6950
6951 1999-02-17  Mumit Khan  <khan@xraylith.wisc.edu>
6952
6953         * Makefile.in (LIBS): Add libm.a.
6954         (libm.a): Dummy libm.a.
6955
6956         * Makefile.in: Update from winsup 1999-02-08 snapshot.
6957         Preserve local changes.
6958         (mkinstalldirs): In ../, not ../../.
6959         (INCLUDES): Point to local windows32api headers and use -nostdinc.
6960         (LIBGCC): Delete.
6961         (LIBS): Add libmoldname-msvc.a.
6962         (libmoldname-msvc.a): Add target.
6963         (distclean): Add target.
6964
6965 1999-02-09  Mumit Khan  <khan@xraylith.wisc.edu>
6966
6967         * include/dir.h: Reintroduce as an obsolescent header.
6968         * crt1.c (signal.h): Include.
6969         (_gnu_exception_handler): New function to properly handle win32
6970         asynchronous signals.
6971         (mainCRTStartup): Use.
6972
6973 1999-01-03  Mumit Khan  <khan@xraylith.wisc.edu>
6974
6975         * include/direct.h: Include io.h instead of dir.h
6976         * include/dirent.h: Likewise.
6977         * include/dos.h: Likewise.
6978         * include/stdio.h: Replace reference to dir.h with io.h.
6979
6980 1998-12-31  Mumit Khan  <khan@xraylith.wisc.edu>
6981
6982         * 1999-01-01 release bundled with egcs-1.1.1.
6983
6984         * include/io.h: Incorporate dir.h.
6985         * include/dir.h: Remove.
6986         * include/signal.h: Move RC_INVOKED up a bit.
6987
6988 1998-12-29  Mumit Khan  <khan@xraylith.wisc.edu>
6989
6990         * include/signal.h (sig_atomic_t): Define.
6991         (NSIG): Define.
6992         * include/malloc.h: Import defs from deprecated alloc.h.
6993         * include/alloc.h: Remove.
6994
6995         From "Daniel J. Rodriksson" <djr@dit.upm.es>:
6996         * include/sys/types.h (_dev_t): Should be unsigned int for MSVCRT.
6997         * include/sys/stat.h (struct stat): st_uid is of type short. Use
6998         _off_t instead of long for st_size.
6999
7000 1998-09-10  Mumit Khan  <khan@xraylith.wisc.edu>
7001
7002         * include/errno.h (sys_errlist, sys_nerr): Move from here ...
7003         * include/stdlib.h: Here.
7004
7005         * include/netdb.h: Remove.
7006         * include/arpa/inet.h: Remove.
7007         * include/netinet/in.h: Remove.
7008         * include/sys/socket.h: Remove.
7009
7010 1998-09-04  Mumit Khan  <khan@xraylith.wisc.edu>
7011
7012         * Release egcs-1.1.
7013
7014         * include/{ctype.h,dos.h,io.h,string.h,time.h,sys/types.h,
7015         sys/utime.h}: Protect stddef.h in RC_INVOKED macro.
7016
7017 1998-09-03  Mumit Khan  <khan@xraylith.wisc.edu>
7018
7019         * setjmp.h (_JBTYPE, _JBLEN): Define correctly.
7020         (jmpbuf): typedef using above.
7021         (setjmp, longjmp): Prototype using jmpbuf.
7022
7023         Merge with Colin Peters' 980701 snapshot. I've ignored changes to
7024         obsolescent imported names, ie., from __imp__ to _imp___.
7025
7026         Also ignored empty include/sys/param.h and incorrect
7027         include/sys/times.h.
7028
7029         * CRTinit.c: New file.
7030         * include/{errno.h,fcntl.h,math.h,process.h} (__MSVCRT__): Use #ifdef
7031         instead of #if.
7032         * include/io.h (umask): Fix prototype.
7033         * include/stdlib.h (OS constants): Replace with Colin's.
7034         * include/time.h (tzset, daylight, timezone): Replace with Colin's.
7035         * include/sys/state.h: Merge.
7036
7037 1998-09-03  Mumit Khan  <khan@xraylith.wisc.edu>
7038
7039         * include/assert.h (assert): Lose the trailing semicolon.
7040
7041 1998-07-30  Mumit Khan  <khan@xraylith.wisc.edu>
7042
7043         * include/math.h (matherr): Declare.
7044         * include/stdio.h (fileno, _fileno): Declare.
7045         * include/stdlib.h (environ, _environ): Fix to use runtime DLL.
7046
7047         From Earnie Boyd:
7048         * include/stdio.h (fdopen, _fdopen): Add const.
7049         (getw, putw): Declare.
7050         * include/stdlib.h (MAX_{DRIVE,DIR,FNAME,EXT}): Fix.
7051
7052 1998-06-13  Mumit Khan  <khan@xraylith.wisc.edu>
7053
7054         * include/time.h (_timezone): Undefine.
7055         * include/sys/timeb.h (struct timeb): Rename _timezone to timezone.
7056
7057         * include/time.h (_daylight, _timezone, _tzname, _tzset): Remove
7058         __cdecl for MSVCRT.
7059         * include/stdlib.h (environ): Use DLL version.
7060         * init.c (environ): Undefine it before use.
7061
7062 1998-03-22  Mumit Khan  <khan@xraylith.wisc.edu>
7063
7064         * Update to 980309 snapshot from Colin Peters.
7065
7066         * include/utime.h: remove
7067         * include/stdlib.h (__imp__osver_dll, __imp__winver_dll,
7068         __imp__winmajor_dll, __imp__winminor_dll): Apply Jan-Jaap's
7069         patches to define these.
7070         * include/time.h (CLK_TCK): Renamed from CLK_TICK.
7071         (_daylight, _timezone, _tzname, _tzset): Define.
7072
7073         * include/netdb.h: Add from Colin's windows32api changes.
7074         * include/sys/socket.h: Likewise.
7075         * include/arpa/inet.h: Likewise.
7076         * include/netinet/in.h: Likewise.
7077
7078 1998-02-04  Mumit Khan  <khan@xraylith.wisc.edu>
7079
7080         * Update to 980128 snapshot from Colin Peters.
7081
7082 1997-12-06  Mumit Khan  <khan@xraylith.wisc.edu>
7083
7084         * configure.in (AC_INIT): Use dllmain.c instead of defunct
7085         oldnames.c
7086         * configure: Regenerate.
7087
7088 1997-12-05  Mumit Khan  <khan@xraylith.wisc.edu>
7089
7090         * Update to 971205 snapshot from Colin Peters. Lots of changes.
7091         Files renamed and include hierarchy loses directories named
7092         nonansi.
7093
7094         * include/dos.h: from Jan-Jaap.
7095
7096 1997-12-04  Mumit Khan  <khan@xraylith.wisc.edu>
7097
7098         Changes to conform to FSF tree.
7099
7100         * crt1.c: Renamed from mcrt0.c.
7101         * dllcrt1.c: Renamed from dllcrt0.c.
7102         * Makefile.in: Update above. Also renamed libmoldnames.a to
7103         libmoldname.a.
7104
7105 1997-12-01  Mumit Khan  <khan@xraylith.wisc.edu>
7106
7107         * crtdll.def: Export all functions but the ones with funny names.
7108         * moldnames.def: Add fdopen since fileno is already there.
7109         * include/nonansi/dos.h: New file from Jan-Jaap.
7110         * include/errno.h: Add extern decl + various additions from JJ.
7111         * include/stdio.h: Likewise.
7112         * include/stdlib.h: Likewise.
7113         * include/nonansi/io.h: Likewise.
7114         * include/nonansi/process.h: Likewise.
7115         * include/sys/types.h: Likewise.
7116
7117 1997-11-04  Mumit Khan  <khan@xraylith.wisc.edu>
7118
7119         * include/time.h (CLK_TCK): Renamed from CLK_TICK.
7120         (CLK_TICK): Delete.
7121         * include/stdlib.h (free): Fix prototype to return void, not void*.
7122         * include/nonansi/process.h: Add P_* and WAIT_* defs.
7123
7124         * dllcrt0.c: Delete now-unneeded '.section .idata$3' asm hack.
7125         * mcrt0.c: Likewise.
7126
7127         * Makefile.in (LIBS): Delete moldnames.dll from target libs.
7128         (libmoldnames.a): Add explicit rule to create it.
7129
7130 1997-08-15  Rob Savoye  <rob@cygnus.com>
7131
7132         New directory for the minimalist cygwin environment.
7133
7134         * crtglob.c: New file. Turn on file globbing support.
7135         * crt_noglob.c: New file. Turn off file globbing support.
7136         * ctype_old.c: New file. Wrappers for functions that don't
7137         have an underscore.
7138         * dirent.c: New file. Directory routines readdir, opendir, closedir.
7139         * dllcrt0.c: New file. Initialization code to use crtdll.dll.
7140         * dllmain.c: New file. A stub DllMain function.
7141         * hugeval.c: New file. A gross hack to define HUGE_VAL.
7142         * init.c: New file. Common code to initialize standard file
7143         handles and command line arguments.
7144         * main.c: New file. A main for programs that only call WinMain.
7145         * mcrt0.c: New file. Default crt0 for mingw32.
7146         * oldnames.c: New File. Wrappers for functions that don't
7147         have an underscore.
7148         * string_old.c: New File.
7149         * include/{assert.h,ctype.h,errno.h,float.h,limits.h,locale.h
7150         math.h,nonansi,setjmp.h,signal.h,stdarg.h,stddef.h,stdio.h,stdlib.h
7151         string.h,tchar.h,time.h,wchar.h}: New header files for mingw.
7152         * include/sys/types.h: New header file for mingw.
7153         * include/nonansi/{alloc.h,conio.h,dir.h,direct.h,dirent.h
7154         fcntl.h,io.h,malloc.h,mem.h,memory.h,process.h,share.h,unistd.h
7155         utime.h,values.h,varargs.h}: New header files for mingw.
7156         * include/nonansi/sys/{fcntl.h,locking.h,stat.h,time.h
7157         timeb.h,unistd.h}: New header files for mingw.
7158         * Makefile.in,configure.in: Build and configure support.
7159         * configure: Generated from autoconf 2.12 with Cygnus patches.