OSDN Git Service

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