OSDN Git Service

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