OSDN Git Service

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