OSDN Git Service

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