OSDN Git Service

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