
quoth Richard A. O'Keefe, ...
(This actually strikes me as a flaw in Mac OS X: `typedef unsigned long tcflag_t;' should have been `typedef uint32_t tcflag_t;' because there's no _reason_ for the field size to change this way.)
True, it's crazy to have structures changing size like that when the effective size of each field is fixed per standard.
The fact that the sizes of things can vary between compilation environments on the same host is one of the reasons tools like hsc2hs are hard.
I have to confess that this was to some degree my error as well - I was looking at a somewhat elderly hsc2hs output that probably predated the current architecture and platform level, and when I run it now, hsc2hs does assign the appropriate size foreign type and the right offsets. Donn