An executable that is compiled in this manner results in the creation of a process that is restricted to a 32-bit address space. When -xaddr32=no is specified a usual 64 bit binary is produced. If the -xaddr32 option is not specified, -xaddr32=no is assumed. If only -xaddr32 is specified -xaddr32=yes is assumed.
This option is only applicable to -m64 compilations and only on Solaris platforms supporting SF1_SUNW_ADDR32 software capability. Since Linux kernel does not support address space limitation this option is not available on Linux. The -xaddr32 option is ignored on Linux.
When linking, if a single object file was compiled with -xaddr32=yes the whole output file is assumed to be compiled with -xaddr32=yes. A shared object that is restricted to a 32-bit address space must be loaded by a process that executes within a restricted 32-bit mode address space. For more information refer to the SF1_SUNW_ADDR32 software capabilities definition, described in the Linker and Libraries Guide.