OSDN Git Service

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