OSDN Git Service

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