Mercurial > projects > ldc
changeset 1393:04177061f98d
Patch to allow compiling LDC with MinGW, by `mp4 / [1]jaffa` (slightly edited).
Closes #300.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Mon, 18 May 2009 14:02:50 +0200 |
parents | 336faed34424 |
children | 193ab3969920 |
files | dmd/mtype.c dmd/root/port.c |
diffstat | 2 files changed, 16 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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 <math.h> #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; }