OSDN Git Service

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