OSDN Git Service

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