On Thu, 2009-07-02 at 03:01 +0400, Bulat Ziganshin wrote: > Hello Duncan, > > Thursday, July 2, 2009, 2:57:29 AM, you wrote: > > > You don't need it to be the same between Windows and Unix, it just has > > to be standard on each platform, which it is. There are really only two > > ABIs in common use on x86, the System V ABI and the MS one (which apart > > from the stdcall calling convention only differs in the bitfield layout > > iirc). > > you mean that on windows gcc, msvc and all other C compilers use the > same ABI for passing and packing structs?
When using the gcc option -mms-bitfields then yes, gcc and msvc use the same ABI for packing structs. As the name suggests, the only difference otherwise is that MSVC uses a non-standard layout for bitfields, but since it's the de-facto native compiler it kind of defines the native C ABI. So as it happens this isn't relevant for the FFI because it does not support bitfields. Duncan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe