> > Is there a document or standard (or group of standards) that define the > collective ABIs of GNU/Linux systems using ELF binary formats of various > CPU architectures, including at least: > IA32 (i386/i686/AMD64/EMT64/etc...) > ARM (v5, v5t, v7, etc...)
x86_64 ABI is at www.x86-64.org/documentation/abi.pdf You can find similar processor supplements for other architectures. > My concern comes from what looks to be non-backwards compatible changes > being made by the MeeGo distribution of Linux. Specifically the > enablement of SSSE3 IA32 instructions for "general purpose code > generation", one possible motive for this is that a particular hardware GCC has -march switch specifying what ISA you want to generate for. By default, GCC won't use SSSE3 or other extensions on i386 nor x86_64 target, but distribution, at its own choice, might change the default. When configured to use extended ISA, GCC is trying to autogenerate new instructions in generic code. It naturally depends on type of instructions: many of new SSE instructions are very exotic and not fitting generic codegen and are available only via special builtins. Honza