OSDN Git Service

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