OSDN Git Service

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