OSDN Git Service

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