OSDN Git Service

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