Oracle® Solaris Studio 12.4: C++ User's Guide

Exit Print View

Updated: March 2015
 
 

1.4 Binary Compatibility Verification

On Oracle Solaris systems, program binaries compiled with the Oracle Solaris Studio compilers are marked with architecture hardware flags indicating the instruction sets assumed by the compiled binary. At runtime these marker flags are checked to verify that the binary can run on the hardware it is attempting to execute on.

If a program does not contain these architecture hardware flags, or if the platform does not enable the appropriate features or instruction set extensions, running the program could result in segmentation faults or incorrect results without any explicit warning messages.

On Linux, however, there is no such verification check. Running binary objects compiled by Oracle Solaris Studio compilers on older hardware platforms could result in runtime failures; on Linux it is the user's responsibility to deploy these binaries on suitable hardware platforms.

This warning extends also to programs that employ .il inline assembly language functions or __asm() assembler code that utilize SSE, SSE2, SSE2a, and SSE3 and newer instructions and extensions.