OSDN Git Service

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