OSDN Git Service

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