OSDN Git Service

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