OSDN Git Service

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