OSDN Git Service

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