OSDN Git Service

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