OSDN Git Service

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