summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2002-09-20 01:14:19 +0000
committerDanny Smith <dannysmith@users.sourceforge.net>2002-09-20 01:14:19 +0000
commit9112684a0bc87af23f3fb6e236ad1a456982cc68 (patch)
treeb91e3f8e08ad163261040aca838debd252f22738
parent69a7b5f79888513741e65a54216d7756474b76c2 (diff)
downloadgdb-9112684a0bc87af23f3fb6e236ad1a456982cc68.tar.gz
* include/wchar.h: Don't #include sys/types.h, stdlib.h,
string.h. Guard only non-ANSI names with #ifndef __STRICT_ANSI__, * include/stdio.h: Add __STRICT_ANSI__ guard for underscored wide char functions and oldnames. (__mingw_fseek, __mingw_fwrite): Move into !__STRICT_ANSI__ block.
-rw-r--r--winsup/mingw/ChangeLog1560
-rw-r--r--winsup/mingw/include/stdio.h418
-rw-r--r--winsup/mingw/include/wchar.h325
3 files changed, 2303 insertions, 0 deletions
diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog
new file mode 100644
index 00000000000..9e4ebf608e5
--- /dev/null
+++ b/winsup/mingw/ChangeLog
@@ -0,0 +1,1560 @@
+2002-09-19 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/wchar.h: Don't #include sys/types.h, stdlib.h,
+ string.h.
+ Guard only non-ANSI names with #ifndef __STRICT_ANSI__,
+ * include/stdio.h: Add __STRICT_ANSI__ guard for underscored
+ wide char functions and oldnames.
+ (__mingw_fseek, __mingw_fwrite): __STRICT_ANSI__ guard.
+
+2002-09-18 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * mingwex/math/files.txt: Remove inadvertantly added file.
+
+2002-09-18 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/string.h (_strerror): Move into #ifndef
+ __STRICT_ANSI__ block.
+
+2002-09-17 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/time.h (__need_NULL): Define before including
+ stddef.h. Thanks to: Rüdiger Dehmel <de@lmnet.de>.
+
+2002-09-16 Ranjit Matthew <rmathew@hotmail.com>
+
+ * include/stdio.h: Correct comment about directory separator.
+
+2002-09-12 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/sys/time.h (timeval): Add struct definition and
+ associated macros (copied from w32api/include/winsock.h).
+
+2002-09-05 Earnie Boyd <earnie@users.sf.net>
+
+ * include/_mingw.h: Increment version to 2.3.
+ Makefile.in: Ditto.
+
+2002-09-05 Earnie Boyd <earnie@users.sf.net>
+
+ * mingwex/fegetenv.c: Change to \n line endings.
+ * mingwex/vsnprintf.c: Ditto.
+ * mingwex/vsnwprintf.c: Ditto.
+
+2002-09-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * mingwex/math/hypotl.c: Replace with version based on cephes
+ library.
+
+2002-08-28 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/sys/param.h: Add ENDIAN defines.
+ * test_headers.c: Include sys/param.h.
+
+2002-08-28 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * test_headers.c: Don't include varargs.h.
+ * Makefile.in (test_headers): Don't use -std=xx
+ with -xc++.
+
+2002-08-21 Earnie Boyd <earnie@users.sf.net>
+
+ * include/sys/param.h: New File.
+
+2002-08-21 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/math.h (asm): Change to __asm__ throughout.
+ Expose ISO C99 functions if __GLIPCPP__.
+ (hypotf): Use hypot, not _hypot in stub.
+
+2002-08-20 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/tchar.h: Ansi-fy another comment.
+
+2002-08-20 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/tchar.h: Ansi-fy comment.
+
+2002-08-20 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * test_headers.c : New file.
+ * Makefile.in (test_headers): New target, using it,
+ (SRCDIST_FILES): Distribute it.
+
+2002-08-20 Earnie Boyd <earnie@users.sf.net>
+
+ * include/_mingw.h: Increment version to 2.2.
+ Makefile.in: Ditto.
+
+2002-08-14 Earnie Boyd <earnie@users.sf.net>
+
+ * include/unistd.h: Add include of process.h.
+
+2002-08-03 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/stdio.h (_fcloseall): Add prototype.
+
+2002-07-29 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/tchar.h (_tfdopen): Correct typo.
+
+2002-07-29 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * moldname.def.in (chgsign,scalb,finite,fpclass,logb,
+ nextafter): Add non-underscored stubs.
+ * moldname-msvcrt.def: Regenerate.
+ * moldname-crtdll.def: Regenerate.
+ * mingwex/math: New directory.
+ * mingwex/rint.c: Move to mingwex/math.
+ * mingwex/rintf.c: Ditto.
+ * mingwex/rintl.c: Ditto.
+ * mingwex/round.c: Ditto.
+ * mingwex/roundf.c: Ditto.
+ * mingwex/roundl.c: Ditto.
+ * mingwex/rint.c: Ditto.
+ * mingwex/rintf.c: Ditto.
+ * mingwex/rintl.c: Ditto.
+ * mingwex/trunc.c: Ditto.
+ * mingwex/truncf.c: Ditto.
+ * mingwex/truncl.c: Ditto.
+ * mingwex/signbit.c: Ditto.
+ * mingwex/signbitf.c: Ditto.
+ * mingwex/signbitl.c: Ditto.
+ * mingwex/copysignl.S: Ditto.
+ * mingwex/fdim.c: Ditto.
+ * mingwex/fdimf.c: Ditto.
+ * mingwex/fdiml.c: Ditto.
+ * mingwex/fmin.c: Ditto.
+ * mingwex/fminf.c: Ditto.
+ * mingwex/fminl.c: Ditto.
+ * mingwex/fmax.c: Ditto.
+ * mingwex/fmaxf.c: Ditto.
+ * mingwex/fmaxl.c: Ditto.
+ * mingwex/fma.c: Ditto.
+ * mingwex/fmaf.c: Ditto.
+ * mingwex/fmal.c: Ditto.
+ * mingwex/fpclassify.c: Ditto.
+ * mingwex/fpclassifyl.c: Ditto.
+ * mingwex/fpclassifyl.c: Ditto.
+ * mingwex/isnan.c: Ditto.
+ * mingwex/isnanf.c: Ditto.
+ * mingwex/isnanl.c: Ditto.
+ * mingwex/fucom.c: Ditto.
+ * mingwex/fp_consts.c: Ditto. Split out float and long double
+ definitions.
+ * mingwex/math_stubs.c: Remove.
+ * mingwex/log2.c: Remove. Replaced by math/log2.S
+ * mingwex/log2f.c: Remove. Replaced by math/log2f.S
+ * mingwex/log2l.c: Remove. Replaced by math/log2l.S
+ * mingwex/math/acosf.c : New file.
+ * mingwex/math/acosl.c: New file.
+ * mingwex/math/asinf.c: New file.
+ * mingwex/math/asinl.c: New file.
+ * mingwex/math/atan2f.c: New file.
+ * mingwex/math/atan2l.c: New file.
+ * mingwex/math/atanf.c: New file.
+ * mingwex/math/atanl.c: New file.
+ * mingwex/math/cbrt.c: New file.
+ * mingwex/math/cbrtf.c: New file.
+ * mingwex/math/cbrtl.c: New file.
+ * mingwex/math/ceilf.S: New file.
+ * mingwex/math/ceill.S: New file.
+ * mingwex/math/cephes_ld.h: New file.
+ * mingwex/math/copysign.S: New file.
+ * mingwex/math/copysignf.S: New file.
+ * mingwex/math/cosf.S: New file.
+ * mingwex/math/coshf.c: New file.
+ * mingwex/math/coshl.c: New file.
+ * mingwex/math/cosl.S: New file.
+ * mingwex/math/exp2.S: New file.
+ * mingwex/math/exp2f.S: New file.
+ * mingwex/math/exp2l.S: New file.
+ * mingwex/math/expf.c: New file.
+ * mingwex/math/expl.c: New file.
+ * mingwex/math/fabs.c: New file.
+ * mingwex/math/fabsf.c: New file.
+ * mingwex/math/fabsl.c: New file.
+ * mingwex/math/floorf.S: New file.
+ * mingwex/math/floorl.S: New file.
+ * mingwex/math/fmodf.c: New file.
+ * mingwex/math/fmodl.c: New file.
+ * mingwex/math/fp_consts.h: Ditto.
+ * mingwex/math/fp_constsf.c: Ditto.
+ * mingwex/math/fp_constsl.c: Ditto.
+ * mingwex/math/frexpf.c: New file.
+ * mingwex/math/frexpl.S: New file.
+ * mingwex/math/hypotf.c: New file.
+ * mingwex/math/hypotl.c: New file.
+ * mingwex/math/ilogb.S: New file.
+ * mingwex/math/ilogbf.S: New file.
+ * mingwex/math/ilogbl.S: New file.
+ * mingwex/math/ldexpf.c: New file.
+ * mingwex/math/ldexpl.c: New file.
+ * mingwex/math/llrint.c: New file.
+ * mingwex/math/llrintf.c: New file.
+ * mingwex/math/llrintl.c: New file.
+ * mingwex/math/llround.c: New file.
+ * mingwex/math/llroundf.c: New file.
+ * mingwex/math/llroundl.c: New file.
+ * mingwex/math/log10f.S: New file.
+ * mingwex/math/log10l.S: New file.
+ * mingwex/math/log1p.S: New file.
+ * mingwex/math/log1pf.S: New file.
+ * mingwex/math/log1pl.S: New file.
+ * mingwex/math/log2.S: New file.
+ * mingwex/math/log2f.S: New file.
+ * mingwex/math/log2l.S: New file.
+ * mingwex/math/logb.c: New file.
+ * mingwex/math/logbf.c: New file.
+ * mingwex/math/logbl.c: New file.
+ * mingwex/math/logf.S: New file.
+ * mingwex/math/logl.S: New file.
+ * mingwex/math/lrint.c: New file.
+ * mingwex/math/lrintf.c: New file.
+ * mingwex/math/lrintl.c: New file.
+ * mingwex/math/lround.c: New file.
+ * mingwex/math/lroundf.c: New file.
+ * mingwex/math/lroundl.c: New file.
+ * mingwex/math/modff.c: New file.
+ * mingwex/math/modfl.c: New file.
+ * mingwex/math/nearbyint.S: New file.
+ * mingwex/math/nearbyintf.S: New file.
+ * mingwex/math/nearbyintl.S: New file.
+ * mingwex/math/nextafterf.c: New file.
+ * mingwex/math/powf.c: New file.
+ * mingwex/math/powl.c: New file.
+ * mingwex/math/powil.c: New file.
+ * mingwex/math/remainder.S: New file.
+ * mingwex/math/remainderf.S: New file.
+ * mingwex/math/remainderl.S: New file.
+ * mingwex/math/remquo.S: New file.
+ * mingwex/math/remquof.S: New file.
+ * mingwex/math/remquol.S: New file.
+ * mingwex/math/scalbn.S: New file.
+ * mingwex/math/scalbnf.S: New file.
+ * mingwex/math/scalbnl.S: New file.
+ * mingwex/math/sinf.S: New file.
+ * mingwex/math/sinhf.c: New file.
+ * mingwex/math/sinhl.c: New file.
+ * mingwex/math/sinl.S: New file.
+ * mingwex/math/sqrt.c: New file.
+ * mingwex/math/sqrtf.c: New file.
+ * mingwex/math/sqrtl.c: New file.
+ * mingwex/math/tanf.S: New file.
+ * mingwex/math/tanhf.c: New file.
+ * mingwex/math/tanhl.c: New file.
+ * mingwex/math/tanl.S: New file.
+ * mingwex/Makefile.in: Adjust VPATH for source files in
+ mingwex/math.
+ Adjust MATH_OBJS.
+ Add MATH_DISTFILES and use it to build source distro.
+ * include/ math.h: Add protypes for new functions and
+ reorganise to reflect ANSI,C99 status.
+
+2002-06-19 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/tchar.h (_getts): Define as _getws for _UNICODE.
+ (_putts): Define as _putws for _UNICODE.
+ Thanks to: Tomasz Pona <cochisek@poczta.onet.pl> for report.
+
+2002-06-18 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/float.h: #include_next<float.h> before header guard.
+
+2002-06-18 Casper S. Hornstrup <chorns@users.sourceforge.net>
+
+ * include/_mingw.h (__MINGW_IMPORT): Check for prior definition before
+ defining.
+ * include/excpt.h (): Include windef.h not windows.h.
+ * include/fcntl.h (_O_SHORT_LIVED): Add define.
+ (_chmod): Add prototype.
+ (_creat): Correct prototype.
+ (SH_DENY*): Rename defines to _SH_DENY*.
+ (SH_DENY*): Add Non-ANSI names for _SH_DENY*.
+ include/stdio.h (_IOMYBUF, _IOEOF, _IOERR, _IOSTRG,
+ _IOAPPEND): Add defines.
+ (_wfindfirst): Correct prototype.
+ (_wfdopen): Add prototype.
+ * include/stdlib.h (_rotl, _rotr, _lrotl, _lrotr): Add
+ prototypes.
+ * include/string.h (_mbschr, _mbstok, _mbsncat): Remove
+ prototypes.
+ (_wcsdup): Correct prototype.
+ * include/mbstring.h: Remove comments about _mbschr, _mbstok,
+ _mbsncat being in string.h.
+ * include/wchar.h (_wfindfirst): Correct prototype.
+ * include/tchar.h (_tfdopen): Add _UNICODE mappings.
+
+2002-06-15 Earnie Boyd <earnie@users.sf.net>
+
+ * include/_mingw.h: Increment to version 2.1.
+ * Makefile.in: Ditto.
+
+2002-06-15 Earnie Boyd <earnie@users.sf.net>
+
+ * Makefile.in (conf_prefix): New variable.
+ (dist_prefix): Ditto. Conditionally set to $(conf_prefix).
+ (bindist): Use dist_prefix.
+
+2002-06-13 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/_mingw.h: Increment version to 2.0.
+ * Makefile.in: Ditto.
+
+ Merge in mingwex branch.
+
+ 2002-06-11 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/math.h (fdim, fdimf, fdiml): Add prototypes.
+ * mingwex/fdim.c: New file.
+ * mingwex/fdimf.c: New file.
+ * mingwex/fdiml.c: New file.
+ * mingwex/Makefile.in (DISTFILES): Add fdim.c, fdimf.c,
+ fdiml.c.
+ (MATHOBJS):Add fdim.o, fdimf.o. fdiml.o.
+
+ 2002-05-23 Danny Smith <dannysmith@users.sourceforge.net>
+ * mingwex/Makefile.in (DISTFILES): Add truncf.c, truncl.c.
+
+ 2002-05-22 Danny Smith <dannysmith@users.sourceforge.net>
+ * mingwex/isnanl.c: New file.
+
+ 2002-05-21 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/stdint.h: Include stddef.h to get
+ wchar_t and wint_t.
+ (WINT_MAX): Define to ((wint_t)-1).
+
+ 2002-05-21 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/wctype.h: Replace 'inline' with '__inline__'.
+ * include/inttypes.h: Likewise.
+
+ 2002-05-16 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/_mingw.h (__MINGW_IMPORT): Put extern at start
+ to avoid warnings. Thanks to: Oscar Fuentes <ofv@wanadoo.es>.
+
+ 2002-05-16 Danny Smith <dannysmith@users.sourceforge.net>
+ * mingwex/snprintf.c: Split out vsnprintf to....
+ * mingwex/vsnprintf.c: New file.
+ * mingwex/snwprintf.c: Split out vsnwprintf to...
+ * mingwex/vsnwprintf.c: New file.
+ * mingwex/Makefile.in: Adjust DISTFILES and STDIO_STUB_OBJS.
+
+ 2002-05-15 Pascal Obry <obry@gnat.com>
+ * include/dirent.h (DIR): Change dd_stat type to int.
+ (_WDIR): Likewise.
+
+ 2002-05-07 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/stdio.h (vsnprintf): Change inline to __inline__;
+ (vsnwprintf): Likewise.
+ * include/wchar.h (vsnwprintf): Likewise.
+ (wcstof): Likewise.
+ (fwide): Likewise.
+ (mbsinit): Likewise.
+
+ 2002-04-29 Danny Smith <dannysmith@users.sourceforge.net>
+ Change FP default precison from 53 to 64-bit mantissa.
+ * Makefile.in (CRT0S): Add CRT_fp8.o.
+ (MINGW_OBJS): Replace CRT_fp8.o with CRT_fp10.o.
+ * include/float.h: Replace standard float.h defines with
+ #include_next<float.h> to use GCC's defines. Adjust comments
+ to reflect change.
+
+ 2002-04-26 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/dos.h: Change prefix "__imp_" to "_imp__" for
+ __GNUC__ without __DECLSPEC_SUPPORTED.
+ * include/fnctl.h: Likewise.
+ * include/math.h: Likewise.
+ * include/stdio.h: Likewise.
+ * include/stdlib.h: Likewise.
+ * include/time.h: Likewise.
+ * include/wctype.h: Likewise.
+ * include/ctype.h: Likewise.
+
+ 2002-04-26 Danny Smith <dannysmith@users.sourceforge.net>
+ Add atexit support for dlls.
+ * crt1.c (atexit): Force thunk to _imp__atexit.
+ (_onexit): Force thunk to _imp___onexit.
+ * dllcrt1.c (DllMainCRTStartup): Initialise private atexit
+ table on DLL_PROCESS_ATTACH, clean it up on DLL_PROCESS_DETACH.
+ (__dll_exit): New function to run atexit-registered functions
+ and flush output buffers on DLL_PROCESS_DETACH or failed
+ DLL_PROCESS_ATTACH.
+ (atexit): Force use of private atexit table via _dllonexit,
+ (_onexit): New function. Force use of private atexit table via
+ _dllonexit,
+ * mscvrt.def (atexit, _onexit): Add DATA keyword so that only
+ _imp_<_symbol> is visible in import lib.
+ * mscvrt20.def: Likewise.
+ * mscvrt40.def: Likewise.
+ * crtdll.def: Likewise.
+
+ 2002-04-26 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/fenv.h: Change header guard macro to _FENV_H_.
+ (fenv_t, fexcept_t): Move into block protected by
+ #ifndef RC_INVOKED.
+ Cleanup some whitespace.
+ * include/inttypes.h: Change header guard macro to
+ _INTTYPES_H_.
+
+ 2002-04-26 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/math.h (copysignl): Declare.
+ * mingwex/Makefile.in (DISTFILES): Add copysignl.S.
+ (MATHOBJS):Add copysignl.o.
+
+ 2002-04-24 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/math.h (__signbitl, __isnanl): Declare.
+
+ 2002-04-24 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/math.h (nanl, __fpcassifyl, fminl, fmaxl, rintl,
+ roundl, truncl, fmal, log2l): Declare.
+ Protect C99 declarations with _STDC_VERSION__ >= 199901L)
+ || !defined __STRICT_ANSI__.
+ * mingwex/fmax.c (fmax): Call __isnan, not _isnan.
+ * mingwex/fmin.c (fmin): Likewise.
+ * mingwex/fmaxf.c (fmaxf): Call __isnanf, not _isnan.
+ * mingwex/fminf.c (fminf): Likewise.
+ * mingwex/fmaxl.c: New file.
+ * mingwex/fminl.c: New file.
+ * mingwex/fpclassify.c (__fpclassifyf): Split out to ...
+ * mingwex/fpclassifyf.c: New file.
+ * mingwex/fpclassifyl.c: New file.
+ * mingwex/rint.c (rintf): Split out to...
+ * mingwex/rintf.c: New file.
+ * mingwex/rintl.c: New file.
+ * mingwex/round.c (roundf): Split out to...
+ * mingwex/roundf.c: New file.
+ * mingwex/roundl.c: New file.
+ * mingwex/trunc.c (truncf): Split out to...
+ * mingwex/truncf.c: New file.
+ * mingwex/truncl.c: New file.
+ * mingwex/signbit.c (signbitf): Split out to...
+ * mingwex/signbitf.c: New file.
+ * mingwex/signbitl.c: New file.
+ * mingwex/fmal.c: New file.
+ * mingwex/copysignl.S: New file.
+ * mingwex/log2l.c: New file.
+ * mingwex/fp_consts.c: Add nanl definition.
+ Comment out unused constants.
+ * mingwex/Makefile.in (DISTFILES): Add fmaxl.c, fminl.c,
+ fpclassifyf.c, fpclassifyl.c, rintf.c, rintl.c, roundf.c,
+ roundl.c, truncf.c truncl.c, signbitf.c signbitl.c,
+ fmal.c, log2l.c
+ (MATHOBJS): Add fmaxl.o, fminl.o, fpclassifyf.o,
+ fpclassifyl.o, rintf.o, rintl.o, roundf.o, roundl.o,
+ truncf.o truncl.o, signbitf.o signbitl.o, fmal.o,
+ log2l.o.
+ * mingwex/snwprintf.c (snwprintf, vsnwprintf): Correct typo.
+
+ 2002-04-23 Danny Smith <dannysmith@users.sourceforge.net>
+ Make wide char versions of opendir and friends.
+ * include/dirent.h (_wdirent, _WDIR): Define wide versions of
+ struct dirent, DIR.
+ (_wopendir,_wreaddir,_wclosedir,_wrewinddir,_wtelldir,
+ _wseekdir): Add prototypes for wide versions of corresponding
+ standard functions.
+ * include/tchar.h; Add _UNICODE mappings for dirent.h
+ structures and functions.
+ * mingwex/dirent.c: Make _UNICODE neutral.
+ * mingwex/wdirent.c: New file to define _UNICODE before
+ including dirent.c.
+ * mingwex/Makefile.in (DISTFILES): Add wdirent.c.
+ (POSIX_OBJS): Add wdirent.o.
+ (wdirent.o): Specify dependency on dirent.c as well as
+ wdirent.c.
+ * samples/dirent/wtest.c: New file, wide version of test.c.
+
+ 2002-04-17 Danny Smith <dannysmith@users.sourceforge.net>
+ * Makefile.in (INCLUDES): Add "-iwithprefixbefore include" to
+ ensure gcc include dir is searched despite -nostdinc.
+ * profile/Makefile.in (INCLUDES): Likewise.
+ * mingwex/Makefile.in (INCLUDES): Likewise.
+ * include/stdarg.h: Replace with stub that just guards the
+ real gcc system header with #ifndef RC_INVOKED
+ * include/varargs.h: Likewise.
+ * include/stddef.h: Likewise.
+ * include/stdio.h: Include stdarg.h after defining
+ __need___va_list.
+ (__VALIST): Define as __gnuc_va_list if __GNUC__, else char*.
+ Replace va_list with __VALIST throughout.
+
+ 2002-04-17 Danny Smith <dannysmith@users.sourceforge.net>
+ * crt1.c: Revert changes of 2002-04-16. Use _fpreset again.
+ * msvcrt.def (_fpreset): Mark as DATA so that only
+ _imp___fpreset is exported.
+ * msvcrt20.def (_fpreset): Likewise.
+ * msvcrt40.def (_fpreset): Likewise.
+ * crtdll.def (_fpreset): Likewise.
+ * CRT_fp10.c (_fpreset): Overide library _fpreset with one
+ that calls fninit.
+ (fpreset): Add alias.
+ (__CRT_PC): Delete definition. _fpreset does it now.
+ * CRT_fp8.c (_fpreset): Force use of library _imp___fpreset.
+ (fpreset): Add alias.
+ (__CRT_PC): Delete definition.
+ * moldname.def.in: Comment out fpreset.
+ * moldname-msvcrt.def: Regenerate.
+ * moldname-crtdll.def: Regenerate.
+ * include/fenv.h (FE_DFL_ENV): Define as (fenv_t*)0.
+ * mingwex/fesetenv.c (FE_DFL_ENV): Use it to set environment
+ with the _fpreset determined by startup CRT_fp object.
+
+ 2002-04-16 Danny Smith <dannysmith@users.sourceforge.net>
+ * CRT_fp8.c: New file.
+ * CRT_fp10.c: New file.
+ * crt1.c (__CRT_PC) Declare.
+ (__CRT_fesetenv): New static function, using _CRT_PC.
+ (__mingw_CRTStartup):Use __CRT_fesetenv instead of _fpreset.
+ (_gnu_exception_handler): Likewise.
+ * Makefile.in (CRT0S): Add CRT_fp10.o.
+ (MINGW_OBJS): Add CRT_fp8.o.
+ (SRCDIST_FILES): Add CRT_fp8.c, CRT_fp10.c.
+ Add CRT_fp8.o, CRT_fp10.o dependancies.
+ * include/float.h (_fpreset): Expand comment.
+ * include/fenv.h (FE_PC64_ENV): New define for Intel x87
+ (extended precison) environmemt.
+ (FE_PC53_ENV): New define for MSVCRT default environmemt.
+ (FE_DFL_ENV): Define as FE_PC53_ENV.
+ * mingwex/fesetenv.c: Use FE_PC53_ENV, FE_PC64_ENV to determine
+ precision control for default environment.
+
+ * include/math.h: Fix long comment line.
+ * profile/configure.in (CRT0S): Set to both gcrt1.o and gcrt2.o
+ for mingw.
+ * profile/configure: Regenerate.
+
+ 2002-04-12 Danny Smith <dannysmith@users.sourceforge.net>
+ * mingwex/Makefile.in (DISTFILES): Add suffix to wcstof.c.
+
+ 2002-04-10 Danny Smith <dannysmith@users.sourceforge.net>
+ * mingwex/mingw-fseek.c: New file, based on Mumit Khan
+ mingw-local patch to binutils.
+ Sun Nov 7 04:27:07 1999 Mumit Khan <khan@xraylith.wisc.edu>
+ (__mingw_fseek): New function to work around Win9x f/lseek bug.
+ (__mingw_fwrite): Likewise.
+ (__mingw_is_win9x): New helper function.
+ * include/stdio.h (__USE_MINGW_FSEEK): New define,guarding...
+ (__mingw_fseek): New prototype and define to replace fseek.
+ (__mingw_fwrite): New prototype and define to replace fwrite.
+ * mingwex/Makefile.in: Add mingw-fseek.o to libmingwex.a.
+ * moldname-crtdll.def: Remove CR from end of line.
+ * moldname-msvcrt.def: Ditto.
+
+ 2002-04-09 Danny Smith <dannysmith@users.sourceforge.net>
+ * profile/configure.in (CRT0S): Configure name of gcrt?.o
+ based on target, building gcrt0.o for cygwin -mno-cygwin.
+ * profile/configure: Regenerate.
+ * profile/Makefile.in (CRT0S): Use name from configure.
+ (gcrt0.o): New rule.
+ (ALL_CRT0S): New define, used to cleanup all gcrt?.o's.
+
+ 2002-04-04 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/math.h (_controlfp, _control87, _clearfp, _statusfp, _fpreset,
+ _fpecode): Remove prototypes copied from float.h.
+ (nan, nanf): Move into block protected against RC_INVOKED
+ and __cplusplus.
+ * include/stdlib.h (_Exit): Change from static inline to
+ extern inline.
+ * mingwex/_Exit.c : New file.
+ * mingwex/Makefile.in: Add _Exit.o to libmingwex.a.
+
+ 2002-04-04 Danny Smith <dannysmith@users.sourceforge.net>
+ Add libgmon.a and libmingwex.a for cygwin -mno-cygwin.
+ * configure.in (SUBDIRS): Add profile and mingwex to cygwin target.
+ (configdirs): Likewise.
+ (LIBGMON_A): Define for cygwin target as well.
+ * configure: Regenerate.
+ * profile/configure.in (THREAD_DLL): Remove define.
+ (LIBM_A): Remove define.
+ (LIBGMON_A): Define for cygwin target as well.
+ * profile/configure: Regenerate.
+ * profile/makefile.in (install): Install to inst_libdir and
+ inst_includedir.
+ * mingwex/makefile.in (CFLAGS): Move -fomit-frame-pointer to...
+ (OPTFLAGS): New define.
+ (ALL_CFLAGS): Add $(OPTFLAGS).
+ (ALL_CXXFLAGS): Same.
+ (.c.o:): Remove ALL_CXXFLAGS.
+
+ 2002-03-29 Danny Smith <dannysmith@users.sourceforge.net>
+ * include/stdint.h: Add missing newline at eof.
+ * include/stdio.h (snprintf): Add prototype.
+ (vsnprintf): Add prototype and inline definition.
+ (snwprintf): Add prototype.
+ (vsnwprintf): Add prototype and inline definition.
+ * include/wchar.h (snwprintf): Add prototype.
+ (vsnwprintf): Add prototype and inline definition.
+ * mingwex/Makefile.in: Add snprintf.o, snwprintf.o
+ to libmingwex.a.
+ * mingwex/snprintf.c: New file.
+ * mingwex/snwprintf.c: New file.
+
+ 2002-03-22 Danny Smith <dannysmith@users.sourceforge.net>
+ * configure.in: Add mingwex as SUBDIRS and configdirs.
+ * configure: Regenerate.
+ * Makefile.in (MINGW_OBJS): Remove dirent.o.
+ (SRC_DIST_FILES): Remove dirent.c.
+ * dirent.c: Remove.
+ * include/stdlib.h (_Exit): Add static inline
+ function.
+ (struct lldiv_t): Define.
+ (lldiv): Add prototype.
+ (llabs): Add extern inline function.
+ (strtoll,strtoull): Add prototypes.
+ (wcstol, wcstoul, wcstod): Group together.
+ (strtof, wcstof): Add extern inline definitions.
+ (atoll,lltoa,ulltoa, wtoll, lltow ulltow): Add prototypes
+ and extern inline definitions.
+ * include/wchar.h (fwide, wcstoll,wcstoull, wmemchr
+ wmemcmp, wmemcpy, wmemmove, wmemset. mbsinit): Add
+ prototypes.
+ (wcstol, wcstoul,wcstod): Copy prototypes from stdlib.h.
+ (wcstof): Add extern inline definition.
+ * include/math.h (nan, nanf): Add prototypes.
+ (NAN, INFINITE): Define constants.
+ (fpclassify, isnan ,signbit): Add macros and supporting float
+ and double functions.
+ (isfinite, isinf, isnormal): Add macros.
+ (isgreater, isless, isgreaterequal, islessequal,islessgreater):
+ Add macros.
+ (rint, rintf, round, roundf, trunc. truncf, fmax, fmaxf,
+ fmin, fminf, fma, fmaf, log2, log2f): Add prototypes.
+ (copysign, logb, nextafter, scalb): Add prototypes and
+ inline stubs for underscored versions in msvcrt.dll.
+ * include/inttypes.h: New file.
+ * include/fenv.h: New file
+
+ Add new mingwex subdir and files.
+ * mingwex: New directory.
+ * mingwex/Makefile.in: New file.
+ * mingwex/configure.in: New file.
+ * mingwex/configure: Generate.
+ * mingwex/dirent.c: Moved here from parent dir.
+ * mingwex/atoll.c: New file.
+ * mingwex/feclearexcept.c: New file.
+ * mingwex/fegetenv.c: New file.
+ * mingwex/fegetexceptflag.c: New file.
+ * mingwex/fegetround.c: New file.
+ * mingwex/feholdexcept.c: New file.
+ * mingwex/feraiseexcept.c: New file.
+ * mingwex/fesetenv.c: New file.
+ * mingwex/fesetexceptflag.c: New file.
+ * mingwex/fesetround.o: New file.
+ * mingwex/fetestexcept.c: New file.
+ * mingwex/feupdateenv.c: New file.
+ * mingwex/fma.S: New file.
+ * mingwex/fmaf.S: New file.
+ * mingwex/fmax.c: New file.
+ * mingwex/fmaxf.c: New file.
+ * mingwex/fmin.c: New file.
+ * mingwex/fminf.c: New file.
+ * mingwex/fp_consts.c: New file.
+ * mingwex/fpclassify.c: New file.
+ * mingwex/fucom.c: New file.
+ * mingwex/fwide.c: New file.
+ * mingwex/imaxabs.c: New file.
+ * mingwex/imaxdiv.c: New file.
+ * mingwex/isnan.c: New file.
+ * mingwex/isnanf.c: New file.
+ * mingwex/lltoa.c: New file.
+ * mingwex/lltow.c: New file.
+ * mingwex/log2.c: New file.
+ * mingwex/log2f.c: New file.
+ * mingwex/math_stubs.c: New file.
+ * mingwex/mbsinit.c: New file.
+ * mingwex/rint.c: New file.
+ * mingwex/round.c: New file.
+ * mingwex/signbit.c: New file.
+ * mingwex/sitest.c: New file.
+ * mingwex/strtof.c: New file.
+ * mingwex/strtoimax.c: New file.
+ * mingwex/strtoumax.c: New file.
+ * mingwex/testwmem.c: New file.
+ * mingwex/trunc.c: New file.
+ * mingwex/ulltoa.c: New file.
+ * mingwex/ulltow.c: New file.
+ * mingwex/wcstof.c: New file.
+ * mingwex/wcstoimax.c: New file.
+ * mingwex/wcstoumax.c: New file.
+ * mingwex/wmemchr.c: New file.
+ * mingwex/wmemcmp.c: New file.
+ * mingwex/wmemcpy.c: New file.
+ * mingwex/wmemmove.c: New file.
+ * mingwex/wmemset.c: New file.
+ * mingwex/wtoll.c: New file.
+
+2002-04-20 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/mbstring.h: New file.
+ * include/mbctype.h: New file.
+
+2002-04-20 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/tchar.h (__TEXT): Make same as define in
+ w32api/include/winnt.h.
+
+2002-04-20 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/tchar.h (_tputenv): Add UNICODE mappings.
+ (_tsearchenv): Likewise.
+ (_tmakepath): Likewise.
+ (_tsplitpath): Likewise.
+ (_tfullpath): Likewise.
+
+2002-04-18 Pascal Obry <obry@gnat.com>
+
+ * dirent.c (opendir): Convert given pathname to
+ absolute pathname.
+
+2002-04-09 Earnie Boyd <earnie@users.sf.net>
+
+ * include/_mingw.h: Increment version.
+ * Makefile.in: Ditto.
+
+2002-04-09 Earnie Boyd <earnie@users.sf.net>
+
+ * moldname-crtdll.def: Remove CR from end of line.
+ * moldname-msvcrt.def: Ditto.
+ * Makefile.in: Use bzip2 compression for Cygwin target.
+
+2002-04-04 Danny Smith <dannysmith@sourceforge.users.net>
+
+ * include/math.h (DOMAIN, SING, OVERFLOW, UNDERFLOW,
+ TLOSS, PLOSS): Move oldname defines back, following
+ the underscored names.
+
+2002-03-29 Danny Smith <dannysmith@sourceforge.users.net>
+
+ * include/stdio.h (_snwprintf): Correct spelling.
+ (_vsnwprintf): Likewise.
+ * include/wchar.h (_snwprintf): Correct spelling.
+ (_vsnwprintf): Likewise.
+
+2002-03-26 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * moldname.def.in (__MSVCRT__): Replace with !(__CRTDLL__).
+ (wpopen): Add if !(__CRTDLL__).
+ * Makefile.in (moldname-msvcrt.def rule): Use -C, not -c to
+ preserve comments.
+ (moldname-crtdll.def rule): Likewise.
+ * moldname-msvcrt.def: Regenerate.
+ * moldname-crtdll.def: Regenerate.
+ * include/stdio.h (wpopen):Use prototype, not a define.
+ (_swnprintf): Add prototype.
+ (_vswnprintf): Likewise.
+ Tidy up whitespace.
+ * include/wchar.h (_swnprintf): Add prototype.
+ (_vswnprintf): Likewise.
+ Tidy up whitespace.
+
+2002-01-28 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/malloc.h (_heapinfo): Correct structure definition.
+ (_USEDENTRY,_FREEENTRY): Add defines.
+ Add comment on platform support for _heap* functions.
+ (_get_sbh_threshold): Add prototype.
+ (_set_sbh_threshold): Likewise.
+ (_expand): Likewise.
+
+2002-01-25 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * profile/profil.c: Update copyright info.
+ * profile/profil.h: Likewise.
+ * profile/gcrt0.c: Likewise.
+
+2002-01-25 Pascal Obry <obry@gnat.com>
+
+ * profile/profil.h (PROFADDR): Cast idx to unsigned long long to
+ avoid overflow.
+ * profile/gmon.c: Define bzero as memset if mingw32.
+ (monstartup): Use it.
+
+2002-01-25 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/tchar.h (_TCHAR): Add missing ;.
+
+2002-01-25 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/tchar.h (_TCHAR): Add typedefs.
+
+2002-01-16 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/stdlib.h (_onexit_t): Add typedef.
+ (_onexit): Add prototype.
+
+2002-01-12 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * msvcrt.def: Revert accidental change.
+ * include/stdlib.h: Ditto.
+
+2001-12-07 Earnie Boyd <earnie@users.sf.net>
+
+ * Makefile.in: Increment VERSION.
+ * include/_mingw.h: Ditto.
+
+2001-12-05 Earnie Boyd <earnie@users.sf.net>
+
+ * include/strings.h: New File.
+
+2001-12-02 Danny Smith <dannysmith@users.sourceforge.net>
+
+ Apply patches from:
+ 2001-06-21 Mumit Khan <khan@nanotech.wisc.edu>
+
+ * include/math.h (_FPCLASS* ): Add defines from float.h.
+ (IEEE recommended functions): Add declarations from float.h.
+ * include/float.h (_FPCLASS* ): Protect against redefinition.
+
+2001-11-29 Wu Yongwei <adah@netstd.com>
+
+ * include/_mingw.h,assert.h,conio.h,ctype.h,dir.h,direct.h
+ dirent.h,dos.h,errno.h,excpt.h,fcntl.h,float.h,io.h,
+ limits.h,locale.h,malloc.h,math.h,process.h,setjmp.h,
+ share.h,signal.h,stdarg.h,stddef.h,stdint.h,stdio.h,
+ stdlib.h,string.h,tchar.h,time.h,varargs.h,wchar.h,
+ wctype.h,sys/stat.h,sys/timeb.h,sys/types.h,sys/utime.h:
+ Correct spelling of "disclaimed" in comments.
+ * include/excpt.h: Another spelling correction.
+
+2001-11-08 Robert Collins <rbtcollins@hotmail.com>
+
+ * include/errno.h: Fix "errno is not a prototype" warning.
+
+2001-11-07 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/ctype.h (tolower, toupper,_tolower,_toupper): Comment
+ differences between ANSI and non-ANSI versions.
+ (_ctype[],_pctype): Declare vars.
+ (__ISCTYPE): New helper macro using _pctype.
+ (is* ctype functions): Use __ISCTYPE to define inline versions.
+ (_toupper, _tolower, __isascii, __toascii, __iscsym, __iscsymf):
+ Inline definitions.
+ (isw* ctype functions): Inline definitions.
+ * include/wctype.h (_ctype[],_pctype): Declare vars.
+ (isw* ctype functions): Inline definitions.
+
+
+2001-11-06 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/float.h (_clearfp, _statusfp, _fpreset, fpreset,
+ __fpecode): Use __STDC__ prototypes.
+
+
+2001-11-06 Thomas Pfaff <tpfaff@gmx.net>
+
+ * mthr_stub.c (__mingwthr_remove_key_dtor) New.
+ * mthr_init.c (DllMain) Run dtors if a process terminates.
+ * mthr.c (__mingwthr_add_key_dtor) Removed.
+ (___mingwthr_add_key_dtor) New.
+ (___mingwthr_remove_key_dtor) New.
+ (__mingwthr_run_key_dtors) Complete rewrite.
+ (__mingwthr_remove_key_dtor) New.
+
+2001-11-05 Egor Duda <deo@logos-m.ru>
+
+ * Makefile.in: Delete unused executable after creating base-files.
+
+2001-11-06 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/errno.h (_errno): Use __STDC__ prototype.
+ Thanks to: Jim Barton.
+
+2001-11-04 "stefan" <stefan@lkcc.org>
+
+ * include/sys/locking.h (_LK_UNLCK, LK_UNLCK): Correct names.
+
+2001-10-30 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/io.h (_commit): Add declaration.
+ Thanks to: "stefan" <stefan@lkcc.org>
+
+2001-10-30 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/sys/stat.h: Make S_IS* macros safer.
+
+2001-10-27 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/stdlib.h (EXIT_FAILURE): Change value to 1.
+
+2001-10-12 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/stdlib.h (__p__environ, __p__wenviron): Use
+ __STDC__ prototypes.
+
+2001-09-19 Earnie Boyd <earnie@SF.net>
+
+ * Makefile.in: Remove the /usr from the install target.
+ (VERSION): Increment.
+ include/_mingw.h: Ditto.
+
+2001-09-17 Earnie Boyd <earnie@SF.net>
+
+ * Makefile.in: Increment version.
+ * include/_mingw.h: Ditto.
+
+2001-09-10 Earnie Boyd <earnie@SF.net>
+
+ * dossh: Remove inadvertantly imported file.
+
+2001-09-10 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * dirent.c (opendir): Use GetFileAttributes rather than stat
+ to determine if input arg is dir.
+
+2001-08-29 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/stdarg.h (va_list): Typedef as __builtin_va_list if
+ __GNUC__ >= 3.
+ * include/varargs.h (va_list): Ditto.
+ * include/stdio.h (va_list): Ditto.
+
+2001-08-01 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/stdlib.h (_wpgmptr): Don't declare ifndef __MSVCRT__.
+ * include/stdio.h (_IORW): Change constant to 0x0080.
+ (TMP_MAX): Add new define.
+ (_P_tmpdir): Ditto.
+ (_wP_tmpdir): Ditto.
+ (L_tmpnam): Change constant to 16.
+
+2001-06-28 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * include/malloc.h: Fix non-ANSI comment after #endif.
+
+2001-06-11 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+
+ * profile/configure.in: Make msvcrt.dll version default.
+ * profile/makefile.in: Build both gcrt1.o and gcrt2.o.
+ * provile/configure: Regenerate.
+
+2001-06-11 Mattia Barbon <mbarbon@dsi.unive.it>
+
+ * include/stdio.h (swscanf): Make first arugument const.
+ * include/wchar.h (swscanf): Ditto.
+ * include/tchar.h (_tfopen): New _UNICODE define.
+ (_tgetenv): Ditto.
+ (_tsetlocale): Ditto.
+
+2001-06-04 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * profile/Makefile.in (mkinstalldirs): Correct relative path.
+
+2001-06-04 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/_mingw.h: Change version to 1.0.
+ Makefile.in: Ditto.
+
+2000-02-21 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/tchar.h: (__TEXT): Remove undef.
+ (_TEXT): Ditto.
+ (_T): Ditto.
+
+Fri Feb 2 10:34:07 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/tchar.h: (__TEXT): Add private macro.
+ (_TEXT): Modify definition to use __TEXT.
+ (_T): Ditto.
+ This change allows the passing of a MACRO as an argument and have that
+ MACRO resolved first.
+ Thanks to: Eric PAIRE <eric.paire@ri.silicomp.com>
+
+Wed Jan 31 17:12:51 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * Makefile.in: Increment version to 0.5
+ * include/_mingw.h: Increment minor version
+
+Tue Jan 30 13:01:01 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/assert.h: (assert): Remove ; from end of definition
+ Thanks to: AJ Reins <tbisp@qwest.net>
+
+Tue Jan 30 07:31:22 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/time.h: (CLOCKS_PER_SEC): Type cast the constant.
+ Thanks to: Cosmin Truta <cosmin@cs.toronto.edu>
+
+Mon Jan 29 14:03:07 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * time.h: (CLOCKS_PER_SEC) Change from FP to integer constant.
+
+Sun Jan 28 13:01:08 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/wchar.h: The 2001.01.18 Change was incorrect. The functions
+ are actually C functions. These functions are resolved via the
+ -lmsvcp60 library and comments were placed in the header.
+
+2001-01-28 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+
+ *include/stdlib.h (__p__pgmptr): add prototype.
+ (__p__wpgmptr): likewise.
+ (_pgmptr_dll): move declaration from dos.h.
+ (_wpgmptr_dll): likewise.
+ (_pgmptr): conditional define (MSVCT/CRTDLL).
+ (_wpgmptr): likewise.
+ *include/dos.h (_base*_dll variables): declare only for CRTDLL.
+ (_os*_dll variables): likewise.
+ (_pgmptr_dll): remove declaration and associated defines to stdlib.h.
+ (_wpgmptr_dll): likewise.
+
+2001-01-22 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+
+ * include/stdint.h: New file.
+
+Thu Jan 18 10:33:01 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/wchar.h: Protect prototypes only declared in the C++ STL
+ from being declared unless __cplusplus is defined.
+
+Tue Jan 16 11:37:31 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/stdlib.h: Apply Danny Smith patch 102730
+ 2000-12-09 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+ (_wgetenv) Correction to return type.
+
+Tue Jan 16 09:41:41 2001 Earnie Boyd <earnie@users.sourceforge.net>
+
+ * include/locale.h: Apply Danny Smith patch 101834
+ 2000-11-23 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+ (LC_MIN) Add definition.
+ (LC_MAX) ditto.
+ (_wsetlocale) Add prototype.
+
+2000-11-29 Earnie Boyd <earnie_boyd@yahoo.com>
+
+ * Makefile.in: eliminate the need for RUNTIME and CRT_ID.
+ Always build crt1.o, dllcrt1.o, crt2.o and dllcrt2.o.
+ Create a libcoldname.a for the oldname library for CRTDLL.
+ Restrict libmoldname.a for the oldname library for MSVCRT.
+ * configure.in: eliminate setting RUNTIME and CRT_ID variables.
+ Restructure the $target_os case logic.
+ Always name the MinGW thread dll helper mingwm.
+ Change Cygwin's HEADER_SUBDIR value from mingw32 to mingw.
+ * configure: regenerate.
+
+2000-11-22 Earnie Boyd <earnie_boyd@yahoo.com>
+
+ * Makefile.in: Fix bindist target to distribute the correct files.
+ Remove the use of SNAPSHOT variable and test SNAPDATE instead.
+ Set SNAPDATE within the snapshot target on recursive call to $(MAKE).
+
+2000-11-21 Earnie Boyd <earnie_boyd@yahoo.com>
+
+ * Makefile.in: Add missing line continuation `\' for $(SUBDIRS) target.
+ Add variables and targets to control binary and source distributions.
+ Add variables and targets to control snapshot distribution.
+ * profile/gmon.h: Add missing #endif for #ifndef.
+ * profile/ChangeLog: Merge entries here and remove.
+ * profile/Makefile.in: Add variables and targets to control
+ distribution.
+ * README: Add.
+ * TODO: ditto.
+ * config.guess: ditto.
+ * config.sub: ditto.
+ * mkinstalldirs: ditto.
+ * install-sh: ditto.
+ * configure: regenerate.
+ * profile/configure: ditto.
+
+2000-11-20 Earnie Boyd <earnie_boyd@yahoo.com>
+
+ * Merge in changes from
+ 2000-10-23 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
+ * include/direct.h: add guard around MSVCRT-only prototytpes
+ * include/io.h: add __int64 struct definitions and function prototypes;
+ add guard for MSVCRT-only prototypes
+ * include/limits.h: add ISO C9x macros LLONG_MIN, LLONG_MAX, ULLONG_MAX
+ * include/stdio.h: add wchar function prototypes (__MSVCRT__);
+ put wchar functions together to make sync with wchar.h easier
+ * include/stdlib.h: add wide char functions (__MSVCRT__)
+ * include/string.h: add string collation functions ( __MSVCRT__)
+ * include/sys/stat.h: add __int64 struct and function ( __MSVCRT__)
+ * include/tchar.h: add macros and macro function definitions
+ * include/wchar.h: add wide char function prototypes ( __MSVCRT__ );
+ enclose more functions in __MSVCRT__ guard;
+ some oldname wide char function prototypes #if (0)'d
+ * profile/gmon.h: add guard around BSD-ish typedefs
+
+Mon Nov 20 18:58:12 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Use a different variable name for subdirectory since the
+ previous one was used by the top level make.
+
+Sun Nov 19 20:50:51 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Install mingw stuff in a subdirectory if building under
+ cygwin.
+
+Sat Jun 17 21:48:23 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in (subdirs): Eliminate for loop.
+
+Sat Jun 17 18:27:59 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in (subdirs): Previous change did not fix problem in
+ broken shells.
+
+Sat Jun 17 13:49:12 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * Makefile.in: Avoid installing dll if we're cross building and the
+ cross-host system isn't a Windows system.
+ * configure.in: Detect cross-hosting situation and set appropriate
+ variables in Makefile.in.
+ * configure: Regenerate.
+
+Wed Apr 19 13:10:54 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * configure.in: Change HEADER_SUBDIR to mingw32.
+ * configure: Regenerate.
+
+Mon Apr 10 17:24:28 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * include/string.h: Use proper prototype for _strerror.
+
+2000-03-30 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Makefile.in (subdirs): Workaround for broken shells.
+
+2000-02-03 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Snapshot 2000-02-03.
+
+ * include/{assert.h, conio.h, ctype.h, direct.h, dirent.h, fcntl.h,
+ float.h, io.h, locale.h, malloc.h, math.h, process.h, signal.h,
+ stdio.h, stdlib.h, string.h, time.h, wctype.h, sys/stat.h,
+ sys/timeb.h, sys/utime.h}: Remove parameter names to avoid namespace
+ pollution.
+
+ * Makefile.in (all): Build CRT0S first.
+ (libmingwthrd.a): Remove thread support DLL from dependency.
+
+2000-01-21 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Snapshot 2000-01-21.
+
+2000-01-20 Mumit Khan <khan@xraylith.wisc.edu>
+
+ Merge in changes from Cygwin:
+ * configure.in (HEADER_SUBDIRS): New variable. Substitute.
+ (SUBDIRS): Likewise.
+ * Makefile.in (HEADER_SUBDIRS): New variable.
+ (install): Use to install Mingw headers to a subdirectory if building
+ under Cygwin.
+ (DLL_CC_STUFF): Add DLL entry point.
+ * configure: Regenerate.
+
+2000-01-19 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/stdio.h (fsetpos): Fix prototype.
+ (fpos_t): Fix for MSVCRT.
+ * include/float.h (fpreset): Add prototype.
+ * include/limits.h: Define UINT_MAX, USHRT_MAX and ULONG_MAX with
+ constant values.
+ * include/time.h: Don't define tzname as a macro for CRTDLL, and
+ export using libmoldname.a.
+ * crtdll.def: Add DATA tags.
+ * msvcrt.def: Likewise.
+ * moldname.def.in: Likewise. Add fpreset. Export tzname for
+ both MSVCRT and CRTDLL.
+ * moldname-crtdll.def: Regenerate.
+ * moldname-msvcrt.def: Regenerate.
+
+Tue Dec 21 02:22:14 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Snapshot 1999-12-21.
+
+ * include/wctype.h: New file.
+ * include/ctype.h (MB_CUR_MAX): Define.
+ (wctype_t): Guard.
+ * include/stdlib.h (MB_CUR_MAX): Define.
+ * include/wchar.h: Define stat, _stat structures here as well.
+ * include/float.h: Add invalid subconditions (_SW) and floating
+ point error (_FPE) macros.
+ * include/time.h (_CLOCK_T): Rename macro to _CLOCK_T_DEFINED.
+ (_TIME_T): Rename macro to _TIME_T_DEFINED.
+ * include/sys/types.h: Likewise.
+
+Thu Nov 18 00:22:26 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * profile/profil.c (profile_on): Set the profiler thread priority to
+ be time critical. Thanks to Pascal Obry <pascal_obry@csi.com>.
+ * Snapshot 1999-11-18.
+
+Sun Nov 7 02:50:09 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ Released 1999-11-07.
+
+ * Makefile.in (CRT0S): Add crtst.o.
+ (install): Install in subdirs as well.
+ * dirent.h (struct _stat): Rename from struct stat.
+ * include/tchar.h: Add some new macros. Thanks to
+ Eric Kohl <ekohl@abo.rhein-zeitung.de>.
+ * profile/Makefile.in (install): Fix target.
+
+Thu Nov 4 14:32:58 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Makefile.in: Add support for profile directory.
+ * configure.in: Likewise.
+ * configure: Regenerate.
+
+ * profile: Imported profiling sources from winsup-19991026 snapshot.
+ * profile/Makefile.in: New file.
+ * profile/configure.in: New file.
+ * profile/configure: Generate.
+ * profile/gcrt0.c (u_char, u_short, u_int, u_long): typedef for Mingw.
+ * profile/gmon.h (u_char, u_short, u_int, u_long): Likewise.
+ * profile/gmon.c (unistd.h): Include conditionally.
+ (sys/param.h): Likewise.
+ * profile/mcount.c (sys/param.h): Likewise.
+ * profile/profil.c (profile_on): thread id is DWORD, not int.
+
+
+Wed Nov 3 16:26:44 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/stdlib.h: Add wide character version of argv/environ.
+ Formatting changes.
+ * include/wchar.h: More wide character prototypes.
+ * include/sys/stat.h: Likewise. Add struct stat as well as _stat.
+
+ * dllcrt1.c (init.c): Don't include.
+ (DllMainCRTStartup): Don't call _mingw32_init_mainargs().
+ * Makefile.in: Remove init.c from dllcrt{1,2}.c dependency lists.
+
+Sat Oct 30 03:06:26 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * moldname.def: Remove file.
+ * moldname.def.in: And add this.
+ * moldname-msvcrt.def: Generate from moldname.def.in.
+ * moldname-crtdll.def: Likewise.
+
+ * mthr.c: New file for -mthread (thread-safe C++ EH) support.
+ * mthr_init.c: New file for -mthread (thread-safe C++ EH) support.
+ * mthr_stub.c: New file for -mthread (thread-safe C++ EH) support.
+
+ * Makefile.in: Update.
+ * configure.in: Likewise. Also add *cygwin* target for building
+ under Cygwin winsup.
+ * configure: Regenerate.
+
+Fri Oct 1 11:10:30 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/_mingw.h: Add version macros.
+ * include/direct.h (_diskfree_t, getdiskfree, getdrives): Add.
+ Also add wide character versions shared with wchar.h.
+ * include/dos.h (_diskfree_t, getdiskfree, getdrives): Add.
+ * include/io.h (sopen, _sopen): Fix prototype.
+ Add wide character prototypes.
+ * include/wchar.h: Likewise.
+ * include/stdlib.h (beep, seterrormode, sleep): Remove non-
+ underscored versions. Potential incompatibility.
+ * include/time.h (daylight, timezone, tzname): Fix MSVCRT cases.
+ Add wide character prototypes.
+ * include/sys/timeb.h (struct _timeb): Don't use macro, but real
+ definition.
+
+Wed Aug 18 18:38:39 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * configure.in (RUNTIME, CRT_ID): Add to differentiate between
+ crtdll and msvcrt runtimes. Remove DLL_ENTRY and DEF_DLL_ENTRY
+ macros.
+ * configure: Rengerate.
+ * Makefile.in (RUNTIME, CRT_ID): Use to generate the correct
+ dll name and crt's. CRTDLL and MSVCRT are meant to created
+ separately, so remove all the *-msvcrt* targets.
+ (libmingwthr.a): New target. Dummy thread support archive.
+ (LIBS): Add libmingwthr.a.
+ (CRT0S): Use CRT_ID. Add crtmt.o.
+ (MINGW_OBJS): Add crtst.o.
+ * main.c (WinMain): Fix prototype.
+ * crtmt.c: New file.
+ * crtst.c: New file.
+
+ * include/process.h (_beginthreadex): Fix prototype.
+ * include/_mingw.h (__int64): Define for __GNUC__.
+ * include/tchar.h (_ttol): Add macro.
+ * include/stdlib.h (_wtoi, _wtol, _i64toa, _ui64toa, _atoi64,
+ _i64tow, _ui64tow, _wtoi64): Add prototypes.
+
+ Reported by Emanuele Aliberti <ea@iol.it>:
+ * include/tchar.h (_ttoi): Add macro.
+
+ Reported by Ulf Moeller <3umoelle@informatik.uni-hamburg.de>:
+ * include/stdio.h (_snprintf): Add prototype.
+ (_vsnprintf): Likewise.
+
+Sat Aug 7 18:00:00 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ Reported by Tor Lillqvist <tml@iki.fi>:
+ * include/stdlib.h (__p___argv): Fix return type.
+
+Fri Jul 30 22:07:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ Add UWIN support.
+ * include/errno.h (errno): It's linked in from startup, not imported.
+ * include/stdlib.h (errno): Likewise.
+ * include/io.h: Guard against conflicting macros and prototypes in
+ system headers.
+ * include/stdlib.h: Likewise.
+ * include/string.h: Likewise.
+ * include/time.h: Likewise.
+
+Fri Jul 30 13:47:34 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/io.h (X_OK): Fix definition. Thanks to Jan Nijtmans.
+ * include/dos.h: Fix typo __MINGW_EXPORT->__MINGW_IMPORT.
+ * Makefile.in (INCLUDES): Remove old windows32 include directory.
+
+ * crt1.c (_gnu_exception_handler): Fix prototype.
+ (__mingw_CRTStartup): New function based on mainCRTStartup.
+ (mainCRTStartup): Set the app type for MSVCRT and call
+ __mingw_CRTStartup.
+ (WinMainCRTStartup): Likewise.
+ * init.c (_startupinfo): Define.
+ (_getmainargs): Add 5th parameter.
+ (_mingw32_init_mainargs): Use.
+
+ * ALL *.c files: Reformat according to GNU coding style.
+
+Fri Jul 16 00:46:04 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Makefile.in (INCLUDES): Add w32api include directory.
+
+ * include/_mingw.h: New file.
+ * include/{assert.h,conio.h,ctype.h,direct.h,dirent.h,dos.h,
+ errno.h,excpt.h,fcntl.h,float.h,io.h,limits.h,locale.h,malloc.h,
+ math.h,process.h,setjmp.h,share.h,signal.h,stdarg.h,stdio.h,
+ stdlib.h,string.h,tchar.h,time.h,varargs.h,sys/locking.h,
+ sys/stat.h,sys/timeb.h,sys/types.h,sys/utime.h}: Include and
+ use the macros __DECLSPEC_SUPPORTED and __MINGW_IMPORT.
+
+ * include/stdlib.h (atexit): Fix prototype.
+
+Mon Jun 14 18:38:49 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/stdio.h (_tempnam): Fix prototype.
+ (tempnam): Likewise.
+ * include/stdlib.h: Replace with GCC's version, and guard
+ with RC_INVOKED.
+
+ From Anders Norlander <anorland@hem2.passagen.se>:
+ * include/stdlib.h (__argc): Declare.
+ (__argv): Likewise.
+
+Mon Apr 5 13:49:17 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * crt1.c (_gnu_exception_handler): Acknowledge Jacob Navia's
+ contribution.
+ * Makefile.in (_libm_dummy.o): New target.
+ (libm.a): Use.
+
+Tue Mar 16 18:15:26 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Released 1999-03-16 along with egcs-1.1.2.
+
+Wed Feb 17 17:15:56 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Makefile.in (LIBS): Add libm.a.
+ (libm.a): Dummy libm.a.
+
+ * Makefile.in: Update from winsup 1999-02-08 snapshot.
+ Preserve local changes.
+ (mkinstalldirs): In ../, not ../../.
+ (INCLUDES): Point to local windows32api headers and use -nostdinc.
+ (LIBGCC): Delete.
+ (LIBS): Add libmoldname-msvc.a.
+ (libmoldname-msvc.a): Add target.
+ (distclean): Add target.
+
+Tue Feb 9 00:26:05 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/dir.h: Reintroduce as an obsolescent header.
+ * crt1.c (signal.h): Include.
+ (_gnu_exception_handler): New function to properly handle win32
+ asynchronous signals.
+ (mainCRTStartup): Use.
+
+Sun Jan 3 23:52:25 1999 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/direct.h: Include io.h instead of dir.h
+ * include/dirent.h: Likewise.
+ * include/dos.h: Likewise.
+ * include/stdio.h: Replace reference to dir.h with io.h.
+
+Thu Dec 31 16:04:55 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * 1999-01-01 release bundled with egcs-1.1.1.
+
+ * include/io.h: Incorporate dir.h.
+ * include/dir.h: Remove.
+ * include/signal.h: Move RC_INVOKED up a bit.
+
+Tue Dec 29 15:04:38 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/signal.h (sig_atomic_t): Define.
+ (NSIG): Define.
+ * include/malloc.h: Import defs from deprecated alloc.h.
+ * include/alloc.h: Remove.
+
+ From "Daniel J. Rodriksson" <djr@dit.upm.es>:
+ * include/sys/types.h (_dev_t): Should be unsigned int for MSVCRT.
+ * include/sys/stat.h (struct stat): st_uid is of type short. Use
+ _off_t instead of long for st_size.
+
+Thu Sep 10 22:28:49 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/errno.h (sys_errlist, sys_nerr): Move from here ...
+ * include/stdlib.h: Here.
+
+ * include/netdb.h: Remove.
+ * include/arpa/inet.h: Remove.
+ * include/netinet/in.h: Remove.
+ * include/sys/socket.h: Remove.
+
+Fri Sep 4 15:09:11 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Release egcs-1.1.
+
+ * include/{ctype.h,dos.h,io.h,string.h,time.h,sys/types.h,
+ sys/utime.h}: Protect stddef.h in RC_INVOKED macro.
+
+Thu Sep 3 10:43:29 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * setjmp.h (_JBTYPE, _JBLEN): Define correctly.
+ (jmpbuf): typedef using above.
+ (setjmp, longjmp): Prototype using jmpbuf.
+
+ Merge with Colin Peters' 980701 snapshot. I've ignored changes to
+ obsolescent imported names, ie., from __imp__ to _imp___.
+
+ Also ignored empty include/sys/param.h and incorrect
+ include/sys/times.h.
+
+ * CRTinit.c: New file.
+ * include/{errno.h,fcntl.h,math.h,process.h} (__MSVCRT__): Use #ifdef
+ instead of #if.
+ * include/io.h (umask): Fix prototype.
+ * include/stdlib.h (OS constants): Replace with Colin's.
+ * include/time.h (tzset, daylight, timezone): Replace with Colin's.
+ * include/sys/state.h: Merge.
+
+Thu Sep 3 09:49:07 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/assert.h (assert): Lose the trailing semicolon.
+
+Thu Jul 30 21:18:49 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/math.h (matherr): Declare.
+ * include/stdio.h (fileno, _fileno): Declare.
+ * include/stdlib.h (environ, _environ): Fix to use runtime DLL.
+
+ From Earnie Boyd:
+ * include/stdio.h (fdopen, _fdopen): Add const.
+ (getw, putw): Declare.
+ * include/stdlib.h (MAX_{DRIVE,DIR,FNAME,EXT}): Fix.
+
+Sat Jun 13 18:19:41 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/time.h (_timezone): Undefine.
+ * include/sys/timeb.h (struct timeb): Rename _timezone to timezone.
+
+ * include/time.h (_daylight, _timezone, _tzname, _tzset): Remove
+ __cdecl for MSVCRT.
+ * include/stdlib.h (environ): Use DLL version.
+ * init.c (environ): Undefine it before use.
+
+Sun Mar 22 19:59:30 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Update to 980309 snapshot from Colin Peters.
+
+ * include/utime.h: remove
+ * include/stdlib.h (__imp__osver_dll, __imp__winver_dll,
+ __imp__winmajor_dll, __imp__winminor_dll): Apply Jan-Jaap's
+ patches to define these.
+ * include/time.h (CLK_TCK): Renamed from CLK_TICK.
+ (_daylight, _timezone, _tzname, _tzset): Define.
+
+ * include/netdb.h: Add from Colin's windows32api changes.
+ * include/sys/socket.h: Likewise.
+ * include/arpa/inet.h: Likewise.
+ * include/netinet/in.h: Likewise.
+
+Wed Feb 4 14:16:44 1998 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Update to 980128 snapshot from Colin Peters.
+
+Sat Dec 6 21:30:35 1997 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * configure.in (AC_INIT): Use dllmain.c instead of defunct
+ oldnames.c
+ * configure: Regenerate.
+
+Fri Dec 5 15:57:36 1997 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * Update to 971205 snapshot from Colin Peters. Lots of changes.
+ Files renamed and include hierarchy loses directories named
+ nonansi.
+
+ * include/dos.h: from Jan-Jaap.
+
+Thu Dec 4 21:48:13 1997 Mumit Khan <khan@xraylith.wisc.edu>
+
+ Changes to conform to FSF tree.
+
+ * crt1.c: Renamed from mcrt0.c.
+ * dllcrt1.c: Renamed from dllcrt0.c.
+ * Makefile.in: Update above. Also renamed libmoldnames.a to
+ libmoldname.a.
+
+Mon Dec 1 16:51:30 1997 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * crtdll.def: Export all functions but the ones with funny names.
+ * moldnames.def: Add fdopen since fileno is already there.
+ * include/nonansi/dos.h: New file from Jan-Jaap.
+ * include/errno.h: Add extern decl + various additions from JJ.
+ * include/stdio.h: Likewise.
+ * include/stdlib.h: Likewise.
+ * include/nonansi/io.h: Likewise.
+ * include/nonansi/process.h: Likewise.
+ * include/sys/types.h: Likewise.
+
+Tue Nov 4 14:51:01 1997 Mumit Khan <khan@xraylith.wisc.edu>
+
+ * include/time.h (CLK_TCK): Renamed from CLK_TICK.
+ (CLK_TICK): Delete.
+ * include/stdlib.h (free): Fix prototype to return void, not void*.
+ * include/nonansi/process.h: Add P_* and WAIT_* defs.
+
+ * dllcrt0.c: Delete now-unneeded '.section .idata$3' asm hack.
+ * mcrt0.c: Likewise.
+
+ * Makefile.in (LIBS): Delete moldnames.dll from target libs.
+ (libmoldnames.a): Add explicit rule to create it.
+
+Fri Aug 15 18:23:43 1997 Rob Savoye <rob@cygnus.com>
+
+ New directory for the minimalist cygwin environment.
+
+ * crtglob.c: New file. Turn on file globbing support.
+ * crt_noglob.c: New file. Turn off file globbing support.
+ * ctype_old.c: New file. Wrappers for functions that don't
+ have an underscore.
+ * dirent.c: New file. Directory routines readdir, opendir, closedir.
+ * dllcrt0.c: New file. Initialization code to use crtdll.dll.
+ * dllmain.c: New file. A stub DllMain function.
+ * hugeval.c: New file. A gross hack to define HUGE_VAL.
+ * init.c: New file. Common code to initialize standard file
+ handles and command line arguments.
+ * main.c: New file. A main for programs that only call WinMain.
+ * mcrt0.c: New file. Default crt0 for mingw32.
+ * oldnames.c: New File. Wrappers for functions that don't
+ have an underscore.
+ * string_old.c: New File.
+ * include/{assert.h,ctype.h,errno.h,float.h,limits.h,locale.h
+ math.h,nonansi,setjmp.h,signal.h,stdarg.h,stddef.h,stdio.h,stdlib.h
+ string.h,tchar.h,time.h,wchar.h}: New header files for mingw.
+ * include/sys/types.h: New header file for mingw.
+ * include/nonansi/{alloc.h,conio.h,dir.h,direct.h,dirent.h
+ fcntl.h,io.h,malloc.h,mem.h,memory.h,process.h,share.h,unistd.h
+ utime.h,values.h,varargs.h}: New header files for mingw.
+ * include/nonansi/sys/{fcntl.h,locking.h,stat.h,time.h
+ timeb.h,unistd.h}: New header files for mingw.
+ * Makefile.in,configure.in: Build and configure support.
+ * configure: Generated from autoconf 2.12 with Cygnus patches.
diff --git a/winsup/mingw/include/stdio.h b/winsup/mingw/include/stdio.h
new file mode 100644
index 00000000000..23b470b9e79
--- /dev/null
+++ b/winsup/mingw/include/stdio.h
@@ -0,0 +1,418 @@
+/*
+ * stdio.h
+ *
+ * Definitions of types and prototypes of functions for standard input and
+ * output.
+ *
+ * NOTE: The file manipulation functions provided by Microsoft seem to
+ * work with either slash (/) or backslash (\) as the directory separator.
+ *
+ * This file is part of the Mingw32 package.
+ *
+ * Contributors:
+ * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $Revision$
+ * $Author$
+ * $Date$
+ *
+ */
+
+#ifndef _STDIO_H_
+#define _STDIO_H_
+
+/* All the headers include this file. */
+#include <_mingw.h>
+
+#ifndef RC_INVOKED
+#define __need_size_t
+#define __need_NULL
+#define __need_wchar_t
+#define __need_wint_t
+#include <stddef.h>
+#define __need___va_list
+#include <stdarg.h>
+#endif /* Not RC_INVOKED */
+
+
+/* Flags for the iobuf structure */
+#define _IOREAD 1 /* currently reading */
+#define _IOWRT 2 /* currently writing */
+#define _IORW 0x0080 /* opened as "r+w" */
+
+
+/*
+ * The three standard file pointers provided by the run time library.
+ * NOTE: These will go to the bit-bucket silently in GUI applications!
+ */
+#define STDIN_FILENO 0
+#define STDOUT_FILENO 1
+#define STDERR_FILENO 2
+
+/* Returned by various functions on end of file condition or error. */
+#define EOF (-1)
+
+/*
+ * The maximum length of a file name. You should use GetVolumeInformation
+ * instead of this constant. But hey, this works.
+ *
+ * NOTE: This is used in the structure _finddata_t (see io.h) so changing it
+ * is probably not a good idea.
+ */
+#define FILENAME_MAX (260)
+
+/*
+ * The maximum number of files that may be open at once. I have set this to
+ * a conservative number. The actual value may be higher.
+ */
+#define FOPEN_MAX (20)
+
+/* After creating this many names, tmpnam and tmpfile return NULL */
+#define TMP_MAX 32767
+/*
+ * Tmpnam, tmpfile and, sometimes, _tempnam try to create
+ * temp files in the root directory of the current drive
+ * (not in pwd, as suggested by some older MS doc's).
+ * Redefining these macros does not effect the CRT functions.
+ */
+#define _P_tmpdir "\\"
+#define _wP_tmpdir L"\\"
+
+/*
+ * The maximum size of name (including NUL) that will be put in the user
+ * supplied buffer caName for tmpnam.
+ * Inferred from the size of the static buffer returned by tmpnam
+ * when passed a NULL argument. May actually be smaller.
+ */
+#define L_tmpnam (16)
+
+#define _IOFBF 0x0000 /* full buffered */
+#define _IOLBF 0x0040 /* line buffered */
+#define _IONBF 0x0004 /* not buffered */
+
+#define _IOMYBUF 0x0008 /* stdio malloc()'d buffer */
+#define _IOEOF 0x0010 /* EOF reached on read */
+#define _IOERR 0x0020 /* I/O error from system */
+#define _IOSTRG 0x0040 /* Strange or no file descriptor */
+#ifdef _POSIX_SOURCE
+# define _IOAPPEND 0x0200
+#endif
+/*
+ * The buffer size as used by setbuf such that it is equivalent to
+ * (void) setvbuf(fileSetBuffer, caBuffer, _IOFBF, BUFSIZ).
+ */
+#define BUFSIZ 512
+
+/* Constants for nOrigin indicating the position relative to which fseek
+ * sets the file position. Enclosed in ifdefs because io.h could also
+ * define them. (Though not anymore since io.h includes this file now.) */
+#ifndef SEEK_SET
+#define SEEK_SET (0)
+#endif
+
+#ifndef SEEK_CUR
+#define SEEK_CUR (1)
+#endif
+
+#ifndef SEEK_END
+#define SEEK_END (2)
+#endif
+
+
+#ifndef RC_INVOKED
+
+#ifdef __GNUC__
+#define __VALIST __gnuc_va_list
+#else
+#define __VALIST char*
+#endif
+
+/*
+ * The structure underlying the FILE type.
+ *
+ * I still believe that nobody in their right mind should make use of the
+ * internals of this structure. Provided by Pedro A. Aranda Gutiirrez
+ * <paag@tid.es>.
+ */
+#ifndef _FILE_DEFINED
+#define _FILE_DEFINED
+typedef struct _iobuf
+{
+ char* _ptr;
+ int _cnt;
+ char* _base;
+ int _flag;
+ int _file;
+ int _charbuf;
+ int _bufsiz;
+ char* _tmpfname;
+} FILE;
+#endif /* Not _FILE_DEFINED */
+
+
+/*
+ * The standard file handles
+ */
+#ifndef __DECLSPEC_SUPPORTED
+
+extern FILE (*_imp___iob)[]; /* A pointer to an array of FILE */
+
+#define _iob (*_imp___iob) /* An array of FILE */
+
+#else /* __DECLSPEC_SUPPORTED */
+
+__MINGW_IMPORT FILE _iob[]; /* An array of FILE imported from DLL. */
+
+#endif /* __DECLSPEC_SUPPORTED */
+
+#define stdin (&_iob[STDIN_FILENO])
+#define stdout (&_iob[STDOUT_FILENO])
+#define stderr (&_iob[STDERR_FILENO])
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * File Operations
+ */
+FILE* fopen (const char*, const char*);
+FILE* freopen (const char*, const char*, FILE*);
+int fflush (FILE*);
+int fclose (FILE*);
+/* MS puts remove & rename (but not wide versions) in io.h also */
+int remove (const char*);
+int rename (const char*, const char*);
+FILE* tmpfile (void);
+char* tmpnam (char*);
+char* _tempnam (const char*, const char*);
+
+#ifndef NO_OLDNAMES
+char* tempnam (const char*, const char*);
+#endif
+
+int setvbuf (FILE*, char*, int, size_t);
+
+void setbuf (FILE*, char*);
+
+/*
+ * Formatted Output
+ */
+
+int fprintf (FILE*, const char*, ...);
+int printf (const char*, ...);
+int sprintf (char*, const char*, ...);
+int _snprintf (char*, size_t, const char*, ...);
+int vfprintf (FILE*, const char*, __VALIST);
+int vprintf (const char*, __VALIST);
+int vsprintf (char*, const char*, __VALIST);
+int _vsnprintf (char*, size_t, const char*, __VALIST);
+
+#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
+int snprintf(char* s, size_t n, const char* format, ...);
+extern __inline__ int vsnprintf (char* s, size_t n, const char* format,
+ __VALIST arg)
+ { return _vsnprintf ( s, n, format, arg); }
+#endif
+
+/*
+ * Formatted Input
+ */
+
+int fscanf (FILE*, const char*, ...);
+int scanf (const char*, ...);
+int sscanf (const char*, const char*, ...);
+/*
+ * Character Input and Output Functions
+ */
+
+int fgetc (FILE*);
+char* fgets (char*, int, FILE*);
+int fputc (int, FILE*);
+int fputs (const char*, FILE*);
+int getc (FILE*);
+int getchar (void);
+char* gets (char*);
+int putc (int, FILE*);
+int putchar (int);
+int puts (const char*);
+int ungetc (int, FILE*);
+
+/*
+ * Direct Input and Output Functions
+ */
+
+size_t fread (void*, size_t, size_t, FILE*);
+size_t fwrite (const void*, size_t, size_t, FILE*);
+
+/*
+ * File Positioning Functions
+ */
+
+int fseek (FILE*, long, int);
+long ftell (FILE*);
+void rewind (FILE*);
+
+/*
+ * An opaque data type used for storing file positions... The contents of
+ * this type are unknown, but we (the compiler) need to know the size
+ * because the programmer using fgetpos and fsetpos will be setting aside
+ * storage for fpos_t structres. Actually I tested using a byte array and
+ * it is fairly evident that the fpos_t type is a long (in CRTDLL.DLL).
+ * Perhaps an unsigned long? TODO? It's definitely a 64-bit number in
+ * MSVCRT however, and for now `long long' will do.
+ */
+#ifdef __MSVCRT__
+typedef long long fpos_t;
+#else
+typedef long fpos_t;
+#endif
+
+int fgetpos (FILE*, fpos_t*);
+int fsetpos (FILE*, const fpos_t*);
+
+/*
+ * Error Functions
+ */
+
+void clearerr (FILE*);
+int feof (FILE*);
+int ferror (FILE*);
+void perror (const char*);
+
+
+#ifndef __STRICT_ANSI__
+/*
+ * Pipes
+ */
+FILE* _popen (const char*, const char*);
+int _pclose (FILE*);
+
+#ifndef NO_OLDNAMES
+FILE* popen (const char*, const char*);
+int pclose (FILE*);
+#endif
+
+/*
+ * Other Non ANSI functions
+ */
+int _flushall (void);
+int _fgetchar (void);
+int _fputchar (int);
+FILE* _fdopen (int, const char*);
+int _fileno (FILE*);
+int _fcloseall(void);
+
+#ifndef _NO_OLDNAMES
+int fgetchar (void);
+int fputchar (int);
+FILE* fdopen (int, const char*);
+int fileno (FILE*);
+#endif /* Not _NO_OLDNAMES */
+
+#endif /* Not __STRICT_ANSI__ */
+
+/* Wide versions */
+
+#ifndef _WSTDIO_DEFINED
+/* also in wchar.h - keep in sync */
+int fwprintf (FILE*, const wchar_t*, ...);
+int wprintf (const wchar_t*, ...);
+int swprintf (wchar_t*, const wchar_t*, ...);
+int _snwprintf (wchar_t*, size_t, const wchar_t*, ...);
+int vfwprintf (FILE*, const wchar_t*, __VALIST);
+int vwprintf (const wchar_t*, __VALIST);
+int vswprintf (wchar_t*, const wchar_t*, __VALIST);
+int _vsnwprintf (wchar_t*, size_t, const wchar_t*, __VALIST);
+int fwscanf (FILE*, const wchar_t*, ...);
+int wscanf (const wchar_t*, ...);
+int swscanf (const wchar_t*, const wchar_t*, ...);
+wint_t fgetwc (FILE*);
+wint_t fputwc (wchar_t, FILE*);
+wint_t ungetwc (wchar_t, FILE*);
+#ifdef __MSVCRT__
+wchar_t* fgetws (wchar_t*, int, FILE*);
+int fputws (const wchar_t*, FILE*);
+wint_t getwc (FILE*);
+wint_t getwchar (void);
+wint_t putwc (wint_t, FILE*);
+wint_t putwchar (wint_t);
+
+#ifndef __STRICT_ANSI__
+wchar_t* _getws (wchar_t*);
+int _putws (const wchar_t*);
+FILE* _wfdopen(int, wchar_t *);
+FILE* _wfopen (const wchar_t*, const wchar_t*);
+FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
+FILE* _wfsopen (const wchar_t*, const wchar_t*, int);
+wchar_t* _wtmpnam (wchar_t*);
+wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
+int _wrename (const wchar_t*, const wchar_t*);
+int _wremove (const wchar_t*);
+void _wperror (const wchar_t*);
+FILE* _wpopen (const wchar_t*, const wchar_t*);
+#endif /* Not __STRICT_ANSI__ */
+#endif /* __MSVCRT__ */
+
+#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
+int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...);
+extern __inline__ int
+vsnwprintf (wchar_t* s, size_t n, const wchar_t* format, __VALIST arg)
+ { return _vsnwprintf ( s, n, format, arg);}
+#endif
+
+#define _WSTDIO_DEFINED
+#endif /* _WSTDIO_DEFINED */
+
+#ifndef __STRICT_ANSI__
+#ifdef __MSVCRT__
+#ifndef NO_OLDNAMES
+FILE* wpopen (const wchar_t*, const wchar_t*);
+#endif /* not NO_OLDNAMES */
+#endif /* MSVCRT runtime */
+
+/*
+ * Other Non ANSI wide functions
+ */
+wint_t _fgetwchar (void);
+wint_t _fputwchar (wint_t);
+int _getw (FILE*);
+int _putw (int, FILE*);
+
+#ifndef _NO_OLDNAMES
+wint_t fgetwchar (void);
+wint_t fputwchar (wint_t);
+int getw (FILE*);
+int putw (int, FILE*);
+#endif /* Not _NO_OLDNAMES */
+
+#ifdef __USE_MINGW_FSEEK /* These are in libmingwex.a */
+/*
+ * Workaround for limitations on win9x where a file contents are
+ * not zero'd out if you seek past the end and then write.
+ */
+int __mingw_fseek (FILE *, long, int);
+int __mingw_fwrite (const void*, size_t, size_t, FILE*);
+#define fseek(fp, offset, whence) __mingw_fseek(fp, offset, whence)
+#define fwrite(buffer, size, count, fp) __mingw_fwrite(buffer, size, count, fp)
+#endif /* __USE_MINGW_FSEEK */
+
+#endif /* __STRICT_ANSI */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* Not RC_INVOKED */
+
+#endif /* _STDIO_H_ */
diff --git a/winsup/mingw/include/wchar.h b/winsup/mingw/include/wchar.h
new file mode 100644
index 00000000000..e67ecb65181
--- /dev/null
+++ b/winsup/mingw/include/wchar.h
@@ -0,0 +1,325 @@
+/*
+ * wchar.h
+ *
+ * Defines of all functions for supporting wide characters. Actually it
+ * just includes all those headers, which is not a good thing to do from a
+ * processing time point of view, but it does mean that everything will be
+ * in sync.
+ *
+ * This file is part of the Mingw32 package.
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $Revision$
+ * $Author$
+ * $Date$
+ *
+ */
+
+#ifndef _WCHAR_H_
+#define _WCHAR_H_
+
+/* All the headers include this file. */
+#include <_mingw.h>
+
+#include <ctype.h>
+#include <stdio.h> /* for FILE, FILENAME_MAX */
+#include <time.h> /* for struct tm */
+
+#define __need_size_t
+#define __need_wint_t
+#define __need_wchar_t
+#define __need_NULL
+#ifndef RC_INVOKED
+#include <stddef.h>
+#endif /* Not RC_INVOKED */
+
+#define WCHAR_MIN 0
+#define WCHAR_MAX ((wchar_t)-1)
+
+#ifndef RC_INVOKED
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef __STRICT_ANSI__
+
+#ifndef _FSIZE_T_DEFINED
+typedef unsigned long _fsize_t;
+#define _FSIZE_T_DEFINED
+#endif
+
+#ifndef _WFINDDATA_T_DEFINED
+struct _wfinddata_t {
+ unsigned attrib;
+ time_t time_create; /* -1 for FAT file systems */
+ time_t time_access; /* -1 for FAT file systems */
+ time_t time_write;
+ _fsize_t size;
+ wchar_t name[FILENAME_MAX]; /* may include spaces. */
+};
+struct _wfinddatai64_t {
+ unsigned attrib;
+ time_t time_create;
+ time_t time_access;
+ time_t time_write;
+ __int64 size;
+ wchar_t name[FILENAME_MAX];
+};
+#define _WFINDDATA_T_DEFINED
+#endif
+
+/* Wide character versions. Also defined in io.h. */
+/* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also
+ applies to other wide character versions? */
+#if !defined (_WIO_DEFINED)
+#if defined (__MSVCRT__)
+int _waccess (const wchar_t*, int);
+int _wchmod (const wchar_t*, int);
+int _wcreat (const wchar_t*, int);
+long _wfindfirst (const wchar_t*, struct _wfinddata_t *);
+int _wfindnext (long, struct _wfinddata_t *);
+int _wunlink (const wchar_t*);
+int _wopen (const wchar_t*, int, ...);
+int _wsopen (const wchar_t*, int, int, ...);
+wchar_t* _wmktemp (wchar_t*);
+long _wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*);
+int _wfindnexti64 (long, struct _wfinddatai64_t*);
+#endif /* defined (__MSVCRT__) */
+#define _WIO_DEFINED
+#endif /* _WIO_DEFINED */
+#endif /* __STRICT_ANSI__ */
+
+#ifndef _WSTDIO_DEFINED
+/* also in stdio.h - keep in sync */
+int fwprintf (FILE*, const wchar_t*, ...);
+int wprintf (const wchar_t*, ...);
+int swprintf (wchar_t*, const wchar_t*, ...);
+int _snwprintf (wchar_t*, size_t, const wchar_t*, ...);
+int vfwprintf (FILE*, const wchar_t*, va_list);
+int vwprintf (const wchar_t*, va_list);
+int vswprintf (wchar_t*, const wchar_t*, va_list);
+int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list);
+int fwscanf (FILE*, const wchar_t*, ...);
+int wscanf (const wchar_t*, ...);
+int swscanf (const wchar_t*, const wchar_t*, ...);
+wint_t fgetwc (FILE*);
+wint_t fputwc (wchar_t, FILE*);
+wint_t ungetwc (wchar_t, FILE*);
+
+#ifndef __NO_ISOCEXT /* externs in libmingwex.a */
+int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...);
+extern __inline__ int vsnwprintf (wchar_t* s, size_t n, const wchar_t* format,
+ va_list arg)
+ { return _vsnwprintf ( s, n, format, arg); }
+#endif
+
+#ifdef __MSVCRT__
+wchar_t* fgetws (wchar_t*, int, FILE*);
+int fputws (const wchar_t*, FILE*);
+wint_t getwc (FILE*);
+wint_t getwchar (void);
+wint_t putwc (wint_t, FILE*);
+wint_t putwchar (wint_t);
+
+#ifndef __STRICT_ANSI__
+wchar_t* _getws (wchar_t*);
+int _putws (const wchar_t*);
+FILE* _wfdopen(int, wchar_t *);
+FILE* _wfopen (const wchar_t*, const wchar_t*);
+FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
+FILE* _wfsopen (const wchar_t*, const wchar_t*, int);
+wchar_t* _wtmpnam (wchar_t*);
+wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
+int _wrename (const wchar_t*, const wchar_t*);
+int _wremove (const wchar_t*)
+FILE* _wpopen (const wchar_t*, const wchar_t*)
+void _wperror (const wchar_t*);
+#endif /* __STRICT_ANSI__ */
+#endif /* __MSVCRT__ */
+#define _WSTDIO_DEFINED
+#endif /* _WSTDIO_DEFINED */
+
+#ifndef __STRICT_ANSI__
+#ifndef _WDIRECT_DEFINED
+/* Also in direct.h */
+#ifdef __MSVCRT__
+int _wchdir (const wchar_t*);
+wchar_t* _wgetcwd (wchar_t*, int);
+wchar_t* _wgetdcwd (int, wchar_t*, int);
+int _wmkdir (const wchar_t*);
+int _wrmdir (const wchar_t*);
+#endif /* __MSVCRT__ */
+#define _WDIRECT_DEFINED
+#endif /* _WDIRECT_DEFINED */
+
+#ifndef _STAT_DEFINED
+/*
+ * The structure manipulated and returned by stat and fstat.
+ *
+ * NOTE: If called on a directory the values in the time fields are not only
+ * invalid, they will cause localtime et. al. to return NULL. And calling
+ * asctime with a NULL pointer causes an Invalid Page Fault. So watch it!
+ */
+struct _stat
+{
+ _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
+ _ino_t st_ino; /* Always zero ? */
+ _mode_t st_mode; /* See above constants */
+ short st_nlink; /* Number of links. */
+ short st_uid; /* User: Maybe significant on NT ? */
+ short st_gid; /* Group: Ditto */
+ _dev_t st_rdev; /* Seems useless (not even filled in) */
+ _off_t st_size; /* File size in bytes */
+ time_t st_atime; /* Accessed date (always 00:00 hrs local
+ * on FAT) */
+ time_t st_mtime; /* Modified time */
+ time_t st_ctime; /* Creation time */
+};
+
+struct stat
+{
+ _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
+ _ino_t st_ino; /* Always zero ? */
+ _mode_t st_mode; /* See above constants */
+ short st_nlink; /* Number of links. */
+ short st_uid; /* User: Maybe significant on NT ? */
+ short st_gid; /* Group: Ditto */
+ _dev_t st_rdev; /* Seems useless (not even filled in) */
+ _off_t st_size; /* File size in bytes */
+ time_t st_atime; /* Accessed date (always 00:00 hrs local
+ * on FAT) */
+ time_t st_mtime; /* Modified time */
+ time_t st_ctime; /* Creation time */
+};
+#if defined (__MSVCRT__)
+struct _stati64 {
+ _dev_t st_dev;
+ _ino_t st_ino;
+ unsigned short st_mode;
+ short st_nlink;
+ short st_uid;
+ short st_gid;
+ _dev_t st_rdev;
+ __int64 st_size;
+ time_t st_atime;
+ time_t st_mtime;
+ time_t st_ctime;
+ };
+#endif /* __MSVCRT__ */
+
+#define _STAT_DEFINED
+#endif /* _STAT_DEFINED */
+
+#if !defined ( _WSTAT_DEFINED)
+/* also declared in sys/stat.h */
+#if defined __MSVCRT__
+int _wstat (const wchar_t*, struct _stat*);
+int _wstati64 (const wchar_t*, struct _stati64*);
+#endif /* __MSVCRT__ */
+#define _WSTAT_DEFINED
+#endif /* ! _WSTAT_DEFIND */
+
+#endif /* __STRICT_ANSI__ */
+
+#ifndef _WTIME_DEFINED
+#ifdef __MSVCRT__
+#ifndef __STRICT_ANSI__
+/* wide function prototypes, also declared in time.h */
+wchar_t* _wasctime (const struct tm*);
+wchar_t* _wctime (const time_t*);
+wchar_t* _wstrdate (wchar_t*);
+wchar_t* _wstrtime (wchar_t*);
+#endif /* __MSVCRT__ */
+#endif /* __STRICT_ANSI__ */
+size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
+#define _WTIME_DEFINED
+#endif /* _WTIME_DEFINED */
+
+#ifndef __STRICT_ANSI__
+#ifndef _WLOCALE_DEFINED /* also declared in locale.h */
+wchar_t* _wsetlocale (int, const wchar_t*);
+#define _WLOCALE_DEFINED
+#endif
+#endif /* __STRICT_ANSI__ */
+
+#ifndef _WSTDLIB_DEFINED /* also declared in stdlib.h */
+long wcstol (const wchar_t*, wchar_t**, int);
+unsigned long wcstoul (const wchar_t*, wchar_t**, int);
+double wcstod (const wchar_t*, wchar_t**);
+#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
+extern __inline__ float wcstof( const wchar_t *nptr, wchar_t **endptr)
+{ return (wcstod(nptr, endptr)); }
+#endif /* __NO_ISOCEXT */
+#define _WSTDLIB_DEFINED
+#endif
+
+#ifndef __STRICT_ANSI__
+#ifndef _NO_OLDNAMES
+
+/* Wide character versions. Also declared in io.h. */
+/* CHECK: Are these in the oldnames??? NO! */
+#if (0)
+int waccess (const wchar_t *, int);
+int wchmod (const wchar_t *, int);
+int wcreat (const wchar_t *, int);
+long wfindfirst (wchar_t *, struct _wfinddata_t *);
+int wfindnext (long, struct _wfinddata_t *);
+int wunlink (const wchar_t *);
+int wrename (const wchar_t *, const wchar_t *);
+int wremove (const wchar_t *);
+int wopen (const wchar_t *, int, ...);
+int wsopen (const wchar_t *, int, int, ...);
+wchar_t* wmktemp (wchar_t *);
+#endif
+#endif /* _NO_OLDNAMES */
+#endif /* not __STRICT_ANSI__ */
+
+/* These are resolved by -lmsvcp60 */
+/* If you don't have msvcp60.dll in your windows system directory, you can
+ easily obtain it with a search from your favorite search engine. */
+typedef int mbstate_t;
+typedef wchar_t _Wint_t;
+
+wint_t btowc(int);
+size_t mbrlen(const char *, size_t, mbstate_t *);
+size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
+size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
+
+size_t wcrtomb(char *, wchar_t, mbstate_t *);
+size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
+int wctob(wint_t);
+
+#ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */
+extern __inline__ int fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */
+extern __inline__ int mbsinit(const mbstate_t* ps) {return 1;}
+wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);
+wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);
+int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n);
+wchar_t* wmemcpy(wchar_t* __restrict__ s1, const wchar_t* __restrict__ s2,
+ size_t n);
+wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);
+long long wcstoll(const wchar_t* __restrict__ nptr,
+ wchar_t** __restrict__ endptr, int base);
+unsigned long long wcstoull(const wchar_t* __restrict__ nptr,
+ wchar_t ** __restrict__ endptr, int base);
+
+#endif /* __NO_ISOCEXT */
+
+#ifdef __cplusplus
+} /* end of extern "C" */
+#endif
+
+#endif /* Not RC_INVOKED */
+
+#endif /* not _WCHAR_H_ */
+