# HG changeset patch # User Frits van Bommel # Date 1242648170 -7200 # Node ID 04177061f98d8841327d0352d8149ff5dbd19d62 # Parent 336faed34424ad72e2c14287859be118db222386 Patch to allow compiling LDC with MinGW, by `mp4 / [1]jaffa` (slightly edited). Closes #300. diff -r 336faed34424 -r 04177061f98d dmd/mtype.c --- a/dmd/mtype.c Sun May 17 23:33:35 2009 +0200 +++ b/dmd/mtype.c Mon May 18 14:02:50 2009 +0200 @@ -94,7 +94,7 @@ int Tsize_t = Tuns32; int Tptrdiff_t = Tint32; -#if _WIN32 +#if _WIN32 && !defined __MINGW32__ static double zero = 0; double Port::nan = NAN; double Port::infinity = 1/zero; diff -r 336faed34424 -r 04177061f98d dmd/root/port.c --- a/dmd/root/port.c Sun May 17 23:33:35 2009 +0200 +++ b/dmd/root/port.c Mon May 18 14:02:50 2009 +0200 @@ -315,7 +315,7 @@ #endif -#if linux || __APPLE__ || __FreeBSD__ +#if linux || __APPLE__ || __FreeBSD__ || __MINGW32__ #include #if linux @@ -363,11 +363,15 @@ #endif } +#ifndef __MINGW32__ #undef isnan +#endif int Port::isNan(double r) { #if __APPLE__ return __inline_isnan(r); +#elif defined __MINGW32__ + return isnan(r); #else return ::isnan(r); #endif @@ -377,6 +381,8 @@ { #if __APPLE__ return __inline_isnan(r); +#elif defined __MINGW32__ + return isnan(r); #else return ::isnan(r); #endif @@ -404,11 +410,15 @@ return ::finite(r); } +#ifndef __MINGW32__ #undef isinf +#endif int Port::isInfinity(double r) { #if __APPLE__ return fpclassify(r) == FP_INFINITE; +#elif defined __MINGW32__ + return isinf(r); #else return ::isinf(r); #endif @@ -443,7 +453,11 @@ wchar_t *Port::ull_to_string(wchar_t *buffer, ulonglong ull) { +#ifndef __MINGW32__ swprintf(buffer, sizeof(ulonglong) * 3 + 1, L"%llu", ull); +#else + _snwprintf(buffer, sizeof(ulonglong) * 3 + 1, L"%llu", ull); +#endif return buffer; }