在本发行版中,指定 32 位或 64 位二进制的编译的方式已更改。A.2.107 –xarch=isa 选项不再采取隐式内存模式(32 位 ILP32 或 64 位 LP64,使用其各自定义),现在仅用于指定目标处理器的指令集。
请使用新的A.2.50 -m32|-m64选项来指定目标编译的内存模型。
ILP32 模型指定 C 语言的 int、long 和指针数据类型的宽度都是 32 位。LP64 模型指定 long 和指针数据类型的宽度都是 64 位。Solaris 和 Linux OS 还支持 LP64 内存模型下的大型文件和大型数组。
如果使用 -m64 编译,则生成的可执行文件仅能在运行 64 位内核的 Solaris OS 或 Linux OS 下的 64 位 UltraSPARC(R) 或 x86 处理器上运行。64 位对象的编译、链接和执行只能在支持 64 位执行的 Solaris 或 Linux OS 上进行。