OSDN Git Service

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