OSDN Git Service

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