OSDN Git Service

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