OSDN Git Service

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