OSDN Git Service

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