Overview – For application developers who are converting 32-bit applications to 64-bit and developing 64-bit applications on Oracle Solaris. It describes the 32-bit and 64-bit application environments and describes some of the utilities and commands available for developing 64-bit applications.
Oracle Solaris 11.3 is a 64-bit only operating system and provides an environment to build and run 64-bit applications that can use large files and large virtual address spaces. At the same time, to maintain backward compatibility, this release supports 32-bit applications.
The Oracle Solaris OS supports systems that use the SPARC and x86 families of processor architectures: UltraSPARC, SPARC64, AMD64, Pentium, and Xeon EM64T. For a list of all the supported systems, see Oracle Solaris Hardware Compatibility List.
The major differences between the 32-bit and the 64-bit application development environments are as follows.
32-bit applications are based on the ILP32 data model, where int, long, and pointers are 32-bit.
64-bit applications are based on the LP64 data model, where long and pointers are 64 bits and the other fundamental types are the same as in ILP32 data model.
In a 64-bit development environment, the large file interface is no longer required. The large file interface enables 32-bit programs to handle files that are larger than 2GB.
32-bit time_t can only handle dates up to January 2038. However 64-bit time_t can handle dates for billion years into the future.
You might want to convert your application from 32-bit to 64-bit if your application has one or more of the following requirements:
Needs more than 4 gigabytes of virtual address space
Reads and interprets kernel memory through use of the libkvm library, and /dev/mem, or /dev/kmem files
Uses the /proc interface to debug 64-bit processes
Uses a library that has only a 64-bit version
Needs full 64-bit registers to do efficient 64-bit arithmetic
Use dates beyond January 2038
Specific interoperability issues can also require code changes. For example, if your application uses files that are larger than 2 gigabytes, you might want to convert the application to 64-bit.
In some cases, you might want to convert applications to 64-bit for performance reasons. For example, you might need the 64-bit registers to do efficient 64-bit arithmetic or you might want to take advantage of other performance improvements that a 64-bit instruction set provides.
Audience – Application developers who intend to convert 32-bit applications to 64-bit applications and develop 64-bit applications on Oracle Solaris 11 and later versions.
Required knowledge – Experience in developing applications in C and an understanding of the 32-bit and the 64-bit architectures.
Documentation and resources for this product and related products are available at http://www.oracle.com/pls/topic/lookup?ctx=E53394-01.
Provide feedback about this documentation at http://www.oracle.com/goto/docfeedback.