changeset 1860:02a23143334c

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.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 01 Mar 2013 13:01:59 +0000
parents b02aa3947562
children c836603d3f14
files dwcompat.c dwcompat.h
diffstat 2 files changed, 13 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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};
--- 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);