# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1362142919 0 # Node ID 02a23143334c675c846ee5c70f7ec95d2b177ffa # Parent b02aa3947562561fb9e8418221d9cd2679e8acb3 Apparently Visual C's "long double" type is "double" for gcc... So when building with MinGW, we need to compile as "double" instead of "long double" to maintain ABI compatibility with Visual C compiled applications. diff -r b02aa3947562 -r 02a23143334c dwcompat.c --- a/dwcompat.c Fri Mar 01 12:43:36 2013 +0000 +++ b/dwcompat.c Fri Mar 01 13:01:59 2013 +0000 @@ -94,7 +94,11 @@ } #endif +#ifdef __MINGW32__ +double API drivefree(int drive) +#else long double API drivefree(int drive) +#endif { #if defined(__EMX__) || defined(__OS2__) ULONG aulFSInfoBuf[40] = {0}; @@ -196,7 +200,11 @@ #endif } +#ifdef __MINGW32__ +double API drivesize(int drive) +#else long double API drivesize(int drive) +#endif { #if defined(__EMX__) || defined(__OS2__) ULONG aulFSInfoBuf[40] = {0}; diff -r b02aa3947562 -r 02a23143334c dwcompat.h --- a/dwcompat.h Fri Mar 01 12:43:36 2013 +0000 +++ b/dwcompat.h Fri Mar 01 13:01:59 2013 +0000 @@ -400,8 +400,13 @@ char * API vargs(char *buf, int len, char *format, ...); int API makedir(char *path); void API setfileinfo(char *filename, char *url, char *logfile); +#ifdef __MINGW32__ +double API drivesize(int drive); +double API drivefree(int drive); +#else long double API drivesize(int drive); long double API drivefree(int drive); +#endif int API isdrive(int drive); void API getfsname(int drive, char *buf, int len); FILE * API fsopen(char *path, char *modes);