Hello Mono Developers,<br><br>I'm working on cross compiling mono in cygwin with the mingw compiler (the one provided by cygwin not the native one).<br><br>I tried something like:<br>git clone git://<a href="http://github.com/mono/mono.git">github.com/mono/mono.git</a><br>

cd mono<br>./build-mingw32.sh <br>as stated in <a href="http://www.mono-project.com/Cross-compiling_Mono_for_Windows">http://www.mono-project.com/Cross-compiling_Mono_for_Windows</a><br><br>this always failed with something like (i tried some other commands, for example ./configure --host=.. --build=.. --target=... --prefix=...)<br>

checking for clang "error: cannot run test program while cross compiling"<br><br>after some digging I identified the breaking change as the added mono_cv_clang check, i think i found the solution:<br>I did the same as somebody did for "linux-android" and set the variables to prevent the check in my situation.<br>

Note: you have to change mono_cv_clang to yes instead of the no from android (see diff) or the make will fail.<br><br>After i fixed this I got basically this:<br><a href="http://osdir.com/ml/general/2012-02/msg07752.html">http://osdir.com/ml/general/2012-02/msg07752.html</a><br>

configure: error: /bin/bash ../config.sub dist-bzip2 failed<br>the link indicates that this will also happen in other cross compile situations (if not all)<br><br>As I found no solution on the mailinglist/web I startet digging again and found the solution (build-mingw32.sh reads some value from <a href="http://configure.in">configure.in</a> via grep and <a href="http://configure.in">configure.in</a> was changed in the meantime)<br>

<br>This is where I stopped for now... Just want to contribute what I found.<br>
I hope the changes (attached as diff files) are helping somebody out there.<br><br>
I don't know how and I don't want to checkin directly as I do not have 
enough experience with the whole unix build process (started just a few 
days ago with cygwin, mono, makefiles, configure and so on...)<br>
<br>Its a little bit sad that the mono project has some pretty decent documentation on building and embedding, but it fails in practice, hope this patches help there!<br><br>(For me Mono is not compiling as i would expect)<br>

Note: I testet these fixes with the 2.11.1 tar but I'm pretty sure this will also work on the master branch.<br><br>Some thing are left to say:<br>
- There should be some kind on testcase for crosscompiling, to prevent future breaking changes.<br>- Where is the best place to add the <code>-static-libgcc</code> and <code>-static-libstdc++</code> compiler flags?<br>  So that mono.exe can run without <code>libgcc_s_dw2-1.dll</code>?<br>

- When this all works shouldn't it be better to throw away the current recommended way of building for windows<br> (with the -mno-cygwin flag) in favor of this one<br> * the -mno-cygwin flag is obsolete<br> * the recommended way of compiling for mingw in cygwin is now the usual cross compiling<br>

 * the normal cygwin build would then depend on <span class="st">cygwin1.dll (as it is expected)<br> * the mingwbuild is the cross-compile build from above<br> * We could use the newest compiler version (gcc4 indead of gcc3) for linux and windows (so basically drop support if needed).<br>

   I think it should actually be possible to build the current gcc 4.7 for cygwin with mingw target and then build mono with this (not tested).<br></span><br>Hope this is the right place to post this kind of message.<br>
<br>
have a nice weekend,<br>Matthias<br><br><br>