OSDN Git Service

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