Thomas Porschberg wrote: > This is of course nice but can someone give an explanation ?
What do you want an explantion of? The fact that you can't mix and match Cygwin and non-Cygwin objects in an executable? That's because mingw and Cygwin use different C runtimes. It boils down to the fact that you're compiling objects against one CRT's headers but at link time trying to link them to a different CRT's library. This is bad news, because the two CRTs are certainly not ABI compatible, so function arguments will be all kinds of messed up, leading to SEGV crashes. And that's if you even get it to link, which is exceedingly rare. Most of the time you won't, because you will have accidently used a function somewhere that exists in one CRT but not the other. Or because the two CRTs used different and incompatible #defines internally to implement things like 'assert' or 'environ', or whatever. The take-away is that -mno-cygwin is not a magic bullet that just somehow magically makes objects that don't depend on Cygwin but otherwise leaves everything the same. It switches the build environment to something completely different. Brian -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/