OSDN Git Service

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