Problem: Legacy i686 code is incompatible with SSE instructions Fix By: Compile with -mstackrealign Waive If: The application is not going run in a 32-bit x86 environment Waive If: The application will not use SSE (or later) instructions Example: FAIL: stack-realign test because -mstack-realign not enabled Example: FAIL: stack-realign test because stack realign support is mandatory
On the Intel 32-bit i686 architecture most instructions work with 4-byte aligned addresses. The SSE extension (and later) however need 16-byte aligned addresses. This causes problems for data that is held on the stack, if the stack pointer is not aligned to a 16-byte address. The -mstackrealign gcc command line option tells the compiler to generate extra code at function entry which ensures that 16-byte alignment is maintained.
This test checks to make sure that this option has been used when compiling i686 binaries.
If necessary the test can be disabled via the --skip-stack-realign option and re-enabled via the --test-stack-realign option.