OSDN Git Service

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