Hello guys,
I'm about to jump in the middle of discussion. The problem is not only with the calling convention, but with the whole ABI rather. I've had GCC patched to use the MSVC x64 calling convention (without a switch though) for about a year now, but it doesn't solve the problem. There is much more ABI differences including the exception handling (and yes, I mean exception handling in C, not only C++) where MSVC generates special unwinding information for the functions. I'm not sure if it would be even possible to mix the ABI this way, but I'm open to hear some suggestions.
Regards, Filip
P.S. I'll try to publish the .diffs for GCC/binutils somewhere, but it's really not of much use.