OSDN Git Service

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