OSDN Git Service

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