OSDN Git Service

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