[Mono-dev] Cross-compilation on OS X host to Windows target

Josh DuBois duboisj at codeweavers.com
Tue Feb 12 18:10:51 UTC 2013


Hi all,

   I can't quite tell what the preferred method for patches is for new 
contributors: I take it that not every single patch is emailed here to 
mono-devel first, but I'm new so I figured I'd ping.

   I'm trying to cross-compile a Windows version of mono using mingw-w64 
from an OS X host, but I get failures with undefined __int64.  (My 
reason for compiling in such an odd fashion is a desire to build the 
wine-mono project on my Mac).

   Including <stdint.h> allows me to build without issue.  It looks like 
doing this causes mingw to define __int64.

   I see mono has a build test server which tests on supported 
platforms, but it looks to me like that's post-commit.  Is there a way 
for me to submit the patch to the build test to ensure it doesn't break 
on other supported platforms?

   Do people think there's a better way to solve the problem?

   I submitted a pull request from my fork here: 
https://github.com/mono/mono/pull/560

   My patch is attached as a diff in case people want to kibbitz.

   Cheers,

            Josh.
-------------- next part --------------
diff --git a/libgc/include/gc.h b/libgc/include/gc.h
index 7e5fd2e..a84636a 100644
--- a/libgc/include/gc.h
+++ b/libgc/include/gc.h
@@ -61,6 +61,7 @@
   /* Win64 isn't really supported yet, but this is the first step. And	*/
   /* it might cause error messages to show up in more plausible places.	*/
   /* This needs basetsd.h, which is included by windows.h.	 	*/
+  #include <stdint.h>
   typedef unsigned __int64 GC_word;
   typedef __int64 GC_signed_word;
 #endif
diff --git a/mono/tests/mixed-mode/MixedModeLibrary/NativeApp.cpp b/mono/tests/mixed-mode/MixedModeLibrary/NativeApp.cpp
index b17ffb7..ff97a7e 100644
--- a/mono/tests/mixed-mode/MixedModeLibrary/NativeApp.cpp
+++ b/mono/tests/mixed-mode/MixedModeLibrary/NativeApp.cpp
@@ -7,6 +7,7 @@ typedef HRESULT (STDAPICALLTYPE *MONOFIXUPCOREE) (HMODULE);
 typedef void (__stdcall *WRITESTRING) (const wchar_t*);
 
 #ifdef _WIN64
+#include <stdint.h>
 extern "C" void __security_check_cookie(unsigned __int64 value)
 {
 }


More information about the Mono-devel-list mailing list