OSDN Git Service

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