OSDN Git Service

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