OSDN Git Service

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