This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: boost program_options library with cygwin

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.


Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]