OSDN Git Service

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