OSDN Git Service

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