OSDN Git Service

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