OSDN Git Service

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