From: Dale Johannesen <[EMAIL PROTECTED]> Date: Thu, 21 Jul 2005 16:56:01 -0700
On x86 currently the alignments of double and long long are linked: they are either 4 or 8 depending on whether -malign-double is set. This follows the documentation of -malign-double. But it's wrong for what we want the Darwin ABI to be: the default should be that double is 4 bytes and long long is 8 bytes. I have a strong suspicion there is a reason why the two are linked, and that that reason is FORTRAN. A lot of FORTRAN code assumes EQUIVALENCE of floating-point and integer types of equal size. Such code will in all likelyhood break if those types have different alignment. For x86 this means that int/float and long long/double will have to have the same alignment. If my suspicion is right, I hope this still can be changed. Otherwise I'm sure a lot of Apple's customers doing scientific computing will be rather pissed off. Mark