OSDN Git Service

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