OSDN Git Service

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