OSDN Git Service

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