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.
So I can do that, but what should -malign-double do?
- Control double but not long long; add -malign-long-long (at least if
somebody asks for it; probably it wouldn't be used)
- Have flags work as now: -malign-double makes both 8,
-mno-align-double
makes both 4. Problem with that is the default is neither of these,
and
this doesn't fit neatly into gcc's model of two-valued flags; it's
also a bit
tricky to implement for the same reason.
- something else?
thanks.