OSDN Git Service

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