OSDN Git Service

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