OSDN Git Service

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