On 12/08/2011, David Allsopp <[email protected]> wrote: > Matthieu Dubuget wrote: >> From: David Allsopp <[email protected]> wrote: >> > Good to know that 64-bit MinGW is working - that said, I thought the >> MinGW port was broken in 3.12.1 or is that not affected with the 64-bit >> compiler? Could you share details on how you configured OCaml? >> >> This is not 64 bits. i686-w64-mingw32 is 32 bits. > > Ah, my bad - I mistakenly thought the mingw32 was the project and w64 the > architecture! > > I'm probably being low, but is the main benefit of using mingw-w64-mingw32 > over the version shipped with Cygwin (-mno-cygwin) simply that the latter > isn't working with 3.12.1 or is there another reason for using it?
Well, first and as far as I know, cygwin has had a package for the *-w64-mingw32 for some time now. They are maintained by someone active within the mingw-w64 project. The reason to use one or another is to know which tools you are going to use. Compiling from cygwin to windows without cygwin (what you call -mno-cygwin) is actually cross-compilation! Using mingw* from cmd.exe means you don't have a shell interpreter or most of the posix tools. Using it from msys (which is an ancient fork from cygwin which requires a fork from gcc-2.96) means you have a mutant environment which is trying to both please posix and windows. I'd call msys "mostly unreliable crap". It's pretty light, it looks and feels native but it's a weird mix and _you_ should absolutely never link against the msys dll. Cygwin simply lets you use more tools and have them working better usually. Cygwin is also way slower (I still remember simple ./configure scripts taking 15 minutes to run, and networking has a higher latency too). Of course, you can also cross-compile from linux or any other posixy OS. All of them have advantages and issues. One issue of msys is having even more headaches when doing stuff on windows by the way. As for -mno-cygwin, I saw mentions of it on IRC quite recently and found out that it was on its way out. Actually that it was already removed. See: "PING: Deprecation of -mno-cygwin" http://cygwin.com/ml/cygwin/2009-03/threads.html#00766 It has been deprecated since 2009 and your GCC documentation should actually reflect that. I think it was only removed very recently which means it won't disappear until the next release at least but it's probably already subbject to bitrot. As far as I know (haven't looked at that), the right way is simply to cross-compile. Instead of passing -mno-cygwin as a CFLAG, use --host=x86_64-w64-mingw32 when calling configure. -- Adrien Nader -- Caml-list mailing list. Subscription management and archives: https://sympa-roc.inria.fr/wws/info/caml-list Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
