OSDN Git Service

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