OSDN Git Service

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