OSDN Git Service

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