Use the —m32 option to compile for the ILP32 32–bit model. Use the —m64 option to compile for the LP64 64–bit model.
The ILP32 model specifies that C++-language int, long, and pointer data types are all 32 bits wide. The LP64 model specifies that long and pointer data types are all 64-bits wide. The Oracle Solaris OS and Linux OS also support large files and large arrays under the LP64 memory model.
When you compile with -m64, the resulting executable works only on 64-bit UltraSPARC or x86 processors under the Oracle Solaris OS or Linux OS running a 64-bit kernel. Compilation, linking, and execution of 64-bit objects can only take place in an Oracle Solaris OS or Linux OS that supports 64-bit execution.