How can I tell if my system is running the 32-bit or the 64-bit version of the operating system?
You can determine what applications the operating system can run using the isainfo -v command. It displays the set of applications supported by the operating system. See the isainfo(1) man page for more information.
Can I run the 64-bit version of the operating system on 32-bit hardware?
No. It is not possible to run the 64-bit operating system on 32-bit hardware. The 64-bit operating system requires 64-bit MMU and CPU hardware.
Do I need to change my 32-bit application if I plan to run that application on a system with a 32-bit operating system?
No. Your application does not require changes or recompilation if it is being executed only on a system running the 32-bit operating system.
Do I need to change my 32-bit application if I plan to run that application on a system with the 64-bit operating system?
Most applications can remain 32-bit and still execute on a system running the 64-bit operating system without requiring code changes or recompilation. Those 32-bit applications not requiring 64-bit capabilities can remain 32-bit to maximize portability.
If your application uses libkvm(3LIB) , it must be recompiled as 64-bit, to execute on a system running the 64-bit operating system. If your application uses /proc, it might need to be recompiled as 64-bit; otherwise it cannot understand a 64-bit process. This is because the existing interfaces and data structures that describe the process are not large enough to contain the 64-bit quantities involved.
What program do I need to invoke in order to get the 64-bit capabilities?
No program is available that specifically invokes 64-bit capabilities. In order to take advantage of the 64-bit capabilities of your system running the 64-bit version of the operating system, you need to rebuild your application.
Can I build a 32-bit application on a system running the 64-bit operating system?
Yes. Both native and cross-compilation modes are supported. The default compilation mode is 32-bit, whether on a system running the 32-bit or 64-bit version of the operating system.
Can I build a 64-bit application on a system running the 32-bit operating system?
Yes, provided you have the system headers and 64–bit libraries installed. However, it is not possible to run the 64-bit application on a system running the 32-bit operating system.
Can I combine 32-bit libraries and 64-bit libraries when building and linking applications?
No. 32-bit applications must link with 32-bit libraries and 64-bit applications with 64-bit libraries. Attempts to build or link with the wrong version of a library will result in an error.
What are the sizes of floating point data types in the 64-bit implementation?
The only types that have changed are long and pointer. See Table 4-1.
What about time_t?
The time_t type remains a long quantity. In the 64-bit environment, this grows to a 64-bit quantity. Thus, 64-bit applications will be year 2038 safe.
What is the value of uname(1) on a machine running the 64-bit Solaris operating environment?
The output of the uname -p command is unchanged.
Can I create 64–bit XView or OLIT Applications?
No. These libraries are already obsolete for the 32–bit environment and will not be carried forward to the 64–bit environment.
Why is there a 64–bit version of ls in /usr/bin/sparcv9/ls?
In normal operation, there is no need for a 64–bit version of ls. However, since it is possible to create file system objects in /tmp and /proc that are “too large” for 32–bit ls to understand, the 64–bit version of ls allows users to examine those objects.