Solaris 64-bit Developer's Guide

Interoperability Issues

The interoperability issues that require an application to be made 64-bit safe or changed to interoperate with both 32-bit or 64-bit programs can include:

Kernel Memory Readers

Because the kernel is an LP64 object that uses 64-bit data structures internally, existing 32-bit applications that use libkvm, /dev/mem, or /dev/kmem do not work properly and must be converted to 64-bit programs.

/proc Restrictions

A 32-bit program that uses /proc is able to look at 32-bit processes, but is not able to understand all attributes of a 64-bit process; the existing interfaces and data structures that describe the process are not large enough to contain the 64-bit quantities involved. Such programs need to be recompiled as 64-bit programs in order to work with both 32-bit and 64-bit processes. This is most typically a problem for debuggers.

64-bit Libraries

32-bit applications are required to link with 32-bit libraries, and 64-bit applications are required to link with 64-bit libraries. With the exception of those that have become obsolete, all of the system libraries are provided in both 32-bit and 64-bit versions, though no 64-bit libraries are provided in static form.