2010-09-20  Pawel Sikora  <pawel.sikora@agmk.net>

	* eh.h (_is_exception_typeof): Use std::type_info.

2010-09-16  Jonathan Yong  <jon_y@users.sourceforge.net>

	* malloc.h (__mingw_aligned_malloc): Declare prototype.
	(__mingw_aligned_free): Likewise.
	(__mingw_aligned_offset_realloc): Likewise.
	(__mingw_aligned_realloc): Likewise.

2010-09-07  Ozkan Sezer  <sezeroz@gmail.com>

	* tchar.h (_tcsnlen): Remove the #if0 comment-out from the macro.

2010-09-06  Ozkan Sezer  <sezeroz@gmail.com>

	* string.h (strnlen): Remove the #if0 comment-out from the prototype.

2010-08-30  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw.h (__MINGW_MSC_PREREQ): Fix inverted logic.

	* dirent.h: Move the _mingw.h include after the header's include
	guard, move the packing pragmas after the RC_INVOKED guard.  Reformat
	for smaller diff output against mingw version.

2010-08-19  Mook  <mook.gcc@gmail.com>

	* _mingw.h (__MINGW_PRAGMA_PARAM): Define for MSVC.

2010-08-18  Ozkan Sezer  <sezeroz@gmail.com>

	From cygwin CVS 2010-08-17 by Keith Marshall:
	* limits.h (PATH_MAX): Make it agree with Microsoft's semantically
	identical MAX_PATH; correct value is 260.

2010-08-15  Ozkan Sezer  <sezeroz@gmail.com>

	* stdio.h (_vsnwprintf_l): Fix multiple declaration from rev. 1596.
	* wchar.h (_vsnwprintf_l): Likewise.
	(_swscanf_l): Likewise.

2010-08-14  Kai Tietz  <kai.tietz@onevision.com>

	* time.h: Adjust prototypes for c99.
	* intrin.h: Likewise.
	* conio.h: Likewise.
	* memory.h: Likewise.
	* string.h: Likewise.
	* stdlib.h: Likewise.
	* stdio.h: Likewise.
	* wchar.h: Likewise.

2010-08-12  Kai Tietz  <kai.tietz@onevision.com>

	* _mingw.h (__PRAGMA_PARAM): Renamed to __MINGW_PRAGMA_PARAM.
	(__BROKEN_INTERFACE): Renamed to __MINGW_BROKEN_INTERFACE.

2010-08-12  Jonathan Yong  <jon_y@users.sourceforge.net>

	* _mingw.h (__PRAGMA_PARAM): Define.
	(__BROKEN_INTERFACE): Likewise.

2010-08-02  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw.h (NONAMELESSUNION): If the compiler is MSVC and the MS
	extensions are disabled, define it.
	(DUMMYUNIONNAMEX): Remove, not used or needed.
	(DUMMYSTRUCTNAMEX): Likewise.
	(DUMMYUNIONNAME1): Add a note that only Wine uses this variant.
	(DUMMYSTRUCTNAME1): Likewise.
	(DUMMYUNIONNAME6): Define.
	(DUMMYUNIONNAME7): Define.
	(DUMMYUNIONNAME8): Define.
	(DUMMYUNIONNAME9): Define.

2010-07-31  Kai Tietz  <kai.tietz@onevision.com>

	* math.h (__mingw_raise_matherr): New prototype.

2010-07-30  Ozkan Sezer  <sezeroz@gmail.com>

	* errno.h (ENOFILE): New, define as ENOENT.

	* _mingw.h (NONAMELESSSTRUCT, NONAMELESSUNION): If one is defined
	make sure the other is defined, too. Fixes the mess caused by
	NONAMELESSSTRUCT which isn't used by any others, so just rely on
	NONAMELESSUNION.

2010-07-29  Ozkan Sezer  <sezeroz@gmail.com>

	Add mingw.org compatibility macros for anonymous unions:
	* _mingw.h (_ANONYMOUS_UNION): New.
	(_ANONYMOUS_STRUCT): New.
	(_UNION_NAME): New.
	(_STRUCT_NAME): New.
	(__ANONYMOUS_DEFINED): New, guarding the above.

2010-07-29  Kai Tietz  <kai.tietz@onevision.com>

	* sys/types.h (_sigset_t): New.

	* math.h (fabs): Provide inline version.
	(__fpclassify): Likewise.
	(__fpclassifyf): Likewise.

2010-07-27  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw.h (__CRT_UNALIGNED): Remove.
	(UNALIGNED): Define properly against __unaligned for better
	compatibility with r/os.

2010-07-27  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw.h (_CRT_ALIGN): Add an MSVC version.
	(__unaligned): Remove irrelevant comments. See the documentation
	at http://msdn.microsoft.com/en-us/library/ms253978(VS.80).aspx

2010-07-23  Kai Tietz  <kai.tietz@onevision.com>

	* _mingw_float.h: Removed.
	* float.h: Old copy of _mingw_float.h.

2010-07-23  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw_stdarg.h (va_copy): Add missing parens.
	* _mingw.h: Add extern to __forceinline definition.

2010-07-22  Ozkan Sezer  <sezeroz@gmail.com>

	Varargs & related cleanups and updates:

	* stdio.h: Remove the vadefs.h include, it is already included
	through _mingw.h.
	* wchar.h: Remove the vadefs.h include, it is already included
	through _mingw.h. Remove the __gnuc_va_list and va_list type
	definitions, already done in vadefs.h (included via _mingw.h.)
	* stdarg.h: Guard the whole header with __GNUC__ ifdefs.
	* _mingw_stdarg.h: Use _crt_va_copy invented in vadefs.h (see
	below) for the __va_copy definition. Move va_copy definition with
	ifdefs from vadefs.h to here.
	* _mingw.h: Move the #pragma pack(push,_CRT_PACKING) below vadefs.h
	inclusion and remove the comment about duplication. Remove the
	__gnuc_va_list and va_list type definitions, already done in the
	included vadefs.h.
	* vadefs.h: Remove _CRT_PACKING definition, already defined in
	_mingw.h. Remove _UINTPTR_T_DEFINED & co, already defined in _mingw.h.
	Guard __gnuc_va_list type definition with __GNUC__ ifdefs.  Add
	MSVC version of va_list type definition and guard the gcc version
	properly.  Restrict some of the macros to MSVC only, apparently
	used only by that compiler.  Guard the gcc versions of _crt_va_*
	macros properly, add MSVC-x86 versions of them from r/os, add
	MSVC-AMD64 defs from r/os svn repo ros-amd64-bringup branch and
	#error for other cpus and compilers.  Invent _crt_va_copy by analogy
	to other _crt_va_* macros for use in stdarg.h.

2010-07-22  Amine Khaldi  <amine.khaldi@reactos.org>

	Several patches for MSC/non-GCC:
	* _mingw.h (__MINGW_MSC_PREREQ): Define for MSC by analogy to the
	existing __MINGW_GNUC_PREREQ.
	(__CRT_INLINE): Define as __inline for MSC.
	(__restrict__): Define as __restrict for MSC, or as empty for anything
	other than GCC.
	(__MINGW_ATTRIB_NORETURN): Define as __declspec(noreturn) for MSC.
	(__MINGW_ATTRIB_MALLOC): Define as __declspec(noalias) __declspec(restrict)
	for MSC.
	(__MINGW_ATTRIB_PURE): Define as empty for MSC.
	(__MINGW_ATTRIB_USED): Ditto.
	(__MINGW_ATTRIB_CONST): Ditto.
	(__MINGW_ATTRIB_DEPRECATE): Define as __declspec(deprecated) for MSC.
	(__MINGW_NOTHROW): Define as __declspec(nothrow) for MSC && __cplusplus.
	* setjmp.h: Include crtdefs.h instead of _mingw.h which will be included
	as a result.

2010-07-21  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw.h (__MINGW_ATTRIB_UNUSED): Define as __attribute__((unused))
	for gcc.
	(__MINGW_ATTRIB_USED): Define as __attribute__((used)) for gcc, or as
	__MINGW_ATTRIB_UNUSED where it is not supported ie. gcc < 3.1 or !gcc.

2010-07-18  Ozkan Sezer  <sezeroz@gmail.com>

	* assert.h (assert): Check against both _UNICODE and UNICODE.
	Reword and reformat a few places.

2010-07-18  Kai Tietz  <kai.tietz@onevision.com>

	PR/3031224
	* assert.h (assert): Allow for ISO-C99 that assert gets
	redefined according state of NDEBUG.

2010-07-18  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw_mac.h (__GNU_EXTENSION): Define as __MINGW_EXTENSION

2010-07-17  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw_unicode.h (__MINGW_TYPEDEF_UAW): New helper macro.

2010-07-15  Kai Tietz  <kai.tietz@onevision.com>

	* process.h (_Exit): Fix missing declaration.
	* stdlib.h (_Exit): Unify code block.
	* assert.h (_Exit): Likewise.

2010-07-13  Kai Tietz  <kai.tietz@onevision.com>

	PR/3028674
	* intrin.h (_m_pextrw): Make sure gcc's intrinsic do not
	do havoc.

2010-07-10  Ramiro Polla  <ramiro.polla@gmail.com>

	* stdlib.h (strtod): For ISO-C99 use posix version __strtod.

2010-06-26  Doug Semler  <dougsemler@gmail.com>

	* complex.h (cabs, cabsf, cabsl): New inlines to match new complex.
	  (carg, cargl, cargf): Make the inlines match the new complex library.

2010-06-18  Doug Semler  <dougsemler@gmail.com>

	* _mingw_mac.h: Move Unicode macro definitions to _mingw_unicode.h
	* _mingw_unicode.h: New file.

2010-06-17  Kai Tietz  <kai.tietz@onevision.com>

	* _mingw_mac (__MINGW_PROCNAMEEXT_AW): New define.

2010-06-15  Ozkan Sezer  <sezeroz@gmail.com>

	* _bsd_types.h: Moved from include/mingw_inc/_bsd_types.h.
	Changed its include guard to _BSDTYPES_DEFINED.

2010-06-12  Kai Tietz  <kai.tietz@onevision.com>

	* _mingw_mac.h (__MINGW_STRING_AW): New helper macro.

2010-06-12  Ozkan Sezer  <sezeroz@gmail.com>

	Kill definitions of I_X86_ macro and adjust places it was used:
	* sec_api/stralign_s.h: Replace checks against I_X86_ by checks
	against _X86_.

2010-05-24  Ozkan Sezer  <sezeroz@gmail.com>

	* mem.h: A little syncing with mingw32 (remove the unnecessary
	__STRICT_ANSI__ guards.)
	* sys/fcntl.h: Likewise.
	* sys/file.h: Likewise.
	* sys/param.h: Likewise.
	* sys/time.h: Likewise.
	* sys/unistd.h: Likewise.
	* time.h: Likewise.
	* unistd.h: A little syncing with mingw32 (remove the no longer
	used __UNISTD_GETOPT__ macro.) Whitespace tidy-up.

2010-05-22  Ozkan Sezer  <sezeroz@gmail.com>

	* _timeval.h: New.
	* time.h: Include _timeval.h. Move struct timeval, timerisset,
	timercmp and timerclear to _timeval.h.
	* sys/time.h: Likewise.

2010-05-21  Doug Semler  <dougsemler@gmail.com>

	* process.h (_endthread): Add noreturn attribute.
	(_endthreadex): Likewise.

2010-05-13  Ozkan Sezer  <sezeroz@gmail.com>

	* time.h (asctime_r): Do not bother zeroing the result buffer upon
	failure.
	(ctime_r): Likewise.
	(gmtime_r): Likewise.
	(localtime_r): Likewise.

2010-05-12  Ozkan Sezer  <sezeroz@gmail.com>

	* time.h (asctime_r): New macro.
	(ctime_r): Fix the gcc extension macro to return the correct pointer.
	(gmtime_r): Likewise.
	(localtime_r): Likewise.

2010-04-27  Ozkan Sezer  <sezeroz@gmail.com>

	* dirent.h (DIR): Change dd_handle from long to intptr_t type for win64
	compatibility.
	(_WDIR): Likewise.

2010-04-18  Ozkan Sezer  <sezeroz@gmail.com>

	* stdio.h: push/pop possible [v]snprintf and [v]snwprintf macros.
	For the problem report about these macros in libxml2, see:
	http://sourceforge.net/projects/mingw-w64/forums/forum/723797/topic/3482477/

2010-04-17  Kai Tietz  <kai.tietz@onevision.com>

	* malloc.h, stdlib.h: Improve declaration of _aligned_malloc
	and _aligned_free for not collide by xmmintrin.h/mm_malloc.h
	provided by gcc.

2010-04-08  Kai Tietz  <kai.tietz@onevision.com>

	* wchar.h (iswblank): Add missing prototype.

2010-03-31  Kai Tietz  <kai.tietz@onevision.com>

	* assert.h (assert): Add default ASCII version.

2010-03-14  Jonathan Yong  <jon_y@users.sourceforge.net>

	* math.h (frexp): Remove pure attribute.
	(modf): ditto.
	(sincos): ditto.
	(sincosl): ditto.
	(sincosf): ditto.
	(frexpf): ditto.
	(frexpl): ditto.

2010-02-02  Ozkan Sezer  <sezeroz@gmail.com>

	* profile.h: Remove advertising clause of copyright. For reference, see:
	ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
	Closes our bug #2939623.

2010-02-01  Ozkan Sezer  <sezeroz@gmail.com>

	* _mingw_print_pop.h: Don't undefine/redifine the inttypes.h
	SCN* macros, because we don't have a __mingw_scanf() family
	implementation yet. Ifdef'ed the relevant portions by the yet
	non-defined HAVE_MINGW_SCANF_IMPL macro.
	* _mingw_print_push.h: Likewise.

2010-01-29  Ozkan Sezer  <sezeroz@gmail.com>

	* stdarg.h: Separate our stdarg.h into two, one which is the gcc-
	provided header and the other as _mingw_stdarg.h. Make stdarg.h include
	_mingw_stdarg.h.
	* float.h: Separate our float.h into two, one which is the gcc-
	provided header and the other as _mingw_float.h. Make float.h include
	_mingw_float.h. Fix confused license.
	* _mingw_float.h: New.
	* _mingw_stdarg.h: New.

2010-01-29  Ozkan Sezer  <sezeroz@gmail.com>

	* stdarg.h: Sync with the gcc PR c++/36799 fix from
	gcc trunk 2009-03-27/r145106.

2010-01-26  Jonathan Yong  <jon_y@users.sourceforge.net>

	* getopt.h: Sync with mingw.org, it is also now PD
	instead of BSD 4 clause.

2010-01-23  Kai Tietz  <kai.tietz@onevision.com>

	* crt/_mingw.h: Add SDK include of sdks/_mingw_ddk.h.

2010-01-14  Kai Tietz  <kai.tietz@onevision.com>

	* tchar.h (PTCHAR, TBYTE, PTBYTE): Added.

2010-01-07  Jonathan Yong  <jon_y@users.sourceforge.net>

	* math.h (sin): Add GCC pure attribute.
	(cos): Ditto.
	(tan): Ditto.
	(sinh): Ditto.
	(cosh): Ditto.
	(tanh): Ditto.
	(asin): Ditto.
	(acos): Ditto.
	(atan): Ditto.
	(atan2): Ditto.
	(exp): Ditto.
	(log): Ditto.
	(log2): Ditto.
	(pow): Ditto.
	(sqrt): Ditto.
	(ceil): Ditto.
	(floor): Ditto.
	(fabs): Ditto.
	(ldexp): Ditto.
	(frexp): Ditto.
	(modf): Ditto.
	(fmod): Ditto.
	(_cabs): Ditto.
	(_hypot): Ditto.
	(_j0): Ditto.
	(_j1): Ditto.
	(_jn): Ditto.
	(_y0): Ditto.
	(_y1): Ditto.
	(_yn): Ditto.
	(j0): Ditto.
	(j1): Ditto.
	(jn): Ditto.
	(y1): Ditto.
	(y2): Ditto.
	(yn): Ditto.
	(finite): Ditto.
	(fpclass): Ditto.
	(__fpclassifyl): Ditto.
	(__fpclassifyf): Ditto.
	(__fpclassify): Ditto.
	(__isnan): Ditto.
	(__isnanf): Ditto.
	(__isnanl): Ditto.
	(__signbit): Ditto.
	(__signbitf): Ditto.
	(__signbitl): Ditto.
	(sinf): Ditto.
	(sinl): Ditto.
	(cosf): Ditto.
	(cosl): Ditto.
	(tanf): Ditto.
	(tanl): Ditto.
	(asinf): Ditto.
	(asinl): Ditto.
	(acosf): Ditto.
	(acosl): Ditto.
	(atanf): Ditto.
	(atanl): Ditto.
	(atan2f): Ditto.
	(atan2l): Ditto.
	(sinhf): Ditto.
	(sinhl): Ditto.
	(coshf): Ditto.
	(coshl): Ditto.
	(tanhf): Ditto.
	(tanhl): Ditto.
	(acosh): Ditto.
	(acoshf): Ditto.
	(acoshl): Ditto.
	(asinh): Ditto.
	(asinhf): Ditto.
	(asinhl): Ditto.
	(atanh): Ditto.
	(atanhf): Ditto.
	(atanhl): Ditto.
	(expf): Ditto.
	(expl): Ditto.
	(exp2): Ditto.
	(exp2f): Ditto.
	(exp2l): Ditto.
	(expm1): Ditto.
	(expm1f): Ditto.
	(expm1l): Ditto.
	(frexpf): Ditto.
	(frexpl): Ditto.
	(ilogb): Ditto.
	(ilogbf): Ditto.
	(ilogbl): Ditto.
	(ldexpf): Ditto.
	(ldexpl): Ditto.
	(logf): Ditto.
	(logl): Ditto.
	(log10f): Ditto.
	(log10l): Ditto.
	(log1p): Ditto.
	(log1pf): Ditto.
	(log1pl): Ditto.
	(log2): Ditto.
	(log2f): Ditto.
	(log2l): Ditto.
	(logb): Ditto.
	(logbf): Ditto.
	(logbl): Ditto.
	(hypot): Ditto.
	(hypotf): Ditto.
	(hypotl): Ditto.
	(powf): Ditto.
	(powl): Ditto.
	(sqrtf): Ditto.
	(sqrtl): Ditto.
	(erf): Ditto.
	(erff): Ditto.
	(erfl): Ditto.
	(erfc): Ditto.
	(erfcf): Ditto.
	(erfcl): Ditto.
	(lgamma): Ditto.
	(lgammaf): Ditto.
	(lgammal): Ditto.
	(lgamma): Ditto.
	(lgammaf): Ditto.
	(lgammal): Ditto.
	(ceilf): Ditto.
	(ceill): Ditto.
	(floorf): Ditto.
	(floorl): Ditto.
	(nearbyint): Ditto.
	(nearbyintf): Ditto.
	(nearbyintl): Ditto.
	(round): Ditto.
	(roundf): Ditto.
	(roundl): Ditto.
	(lround): Ditto.
	(lroundf): Ditto.
	(lroundl): Ditto.
	(llround): Ditto.
	(llroundf): Ditto.
	(llroundl): Ditto.
	(trunc): Ditto.
	(truncf): Ditto.
	(truncl): Ditto.
	(fmodf): Ditto.
	(fmodl): Ditto.
	(remainder): Ditto.
	(remainderf): Ditto.
	(remainderl): Ditto.
	(remquo): Ditto.
	(remquof): Ditto.
	(remquol): Ditto.
	(copysign): Ditto.
	(copysignf): Ditto.
	(copysignl): Ditto.
	(fdim): Ditto.
	(fdimf): Ditto.
	(fdiml): Ditto.
	(fmax): Ditto.
	(fmaxf): Ditto.
	(fmaxl): Ditto.
	(fmin): Ditto.
	(fminf): Ditto.
	(fminl): Ditto.
	(fma): Ditto.
	(fmaf): Ditto.
	(fmal): Ditto.
	(_hypotf): Ditto.
	(_copysignf): Ditto.
	(_chgsignf): Ditto.
	(_logbf): Ditto.
	(_nextafterf): Ditto.
	(_finitef): Ditto.
	(_isnanf): Ditto.
	(_fpclassf): Ditto.
