OSDN Git Service

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