------- Comment #6 from ronis at ronispc dot chem dot mcgill dot ca 2008-11-24 19:29 ------- It works without -malign-double, but has worked with it for years. I understand that all modules (even thouse in MY libraries) have to be compiled with the same flags, but nothing seems to imply that the compiler's libraries have to have it too. Something has changed recently. From the info page:
Control whether GCC aligns `double', `long double', and `long long' variables on a two word boundary or a one word boundary. Aligning `double' variables on a two word boundary will produce code that runs somewhat faster on a `Pentium' at the expense of more memory. On x86-64, `-malign-double' is enabled by default. *Warning:* if you use the `-malign-double' switch, structures containing the above types will be aligned differently than the published application binary interface specifications for the 386 and will not be binary compatible with structures in code compiled without that switch. This is the same as what it's been for some time. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38249