OSDN Git Service

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