OSDN Git Service

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