Nikos Mavrogiannopoulos n.mavrogiannopoulos@gmail.com writes:
I think one should have the possibility to choose between fat and non-fat builds, with the same ABI. There's going to be a small extra call overhead in the fat case.
Disabling the optional architectures would be possible but reducing the call overhead in the "thin" case would require a lot of ifdefs. It would keep the external api intact, but the internals would look ugly.
Even if fat is default on x86, the non-fat case is important for other architectures. I think the complexity will be manageable, and most of it will be in the configure script and assembly code, not in the C files.
This is not guaranteed. For example AES-NI and padlock require the AES key to be aligned to 16-byte boundaries, something that the current structures do not offer.
At least that's an ABI change which is harmless for other implementations. A different question is how to portably tell the C compiler that a certain structure must be 16-byte aligned.
In any case, I just noticed that for the x86-64 you don't really need to detect SSE2, it is just there by default.
That's my understanding as well. You can test for it, but it's present in all existing x86_64 cpus.
/nisse