64-bit object capability

The 64-bit object capability of the IBM® Open XL C/C++ compiler addresses increasing demand for larger storage requirements and greater processing power.

The AIX® operating system provides an environment that allows you to develop and execute programs that exploit 64-bit processors through the use of 64-bit address spaces.

To support larger executables that can fit within a 64-bit address space, a separate 64-bit object format is used. The binder binds these objects to create 64-bit executables. Objects that are bound together must all be of the same object format. The following scenarios are not permitted and will fail to link, load, or execute:
  • A 64-bit object or executable that has references to symbols from a 32-bit library or shared library
  • A 32-bit object or executable that has references to symbols from a 64-bit library or shared library
  • A 64-bit executable that explicitly attempts to load a 32-bit module
  • A 32-bit executable that explicitly attempts to load a 64-bit module
  • Attempts to run 64-bit applications on 32-bit platforms
On both 64-bit and 32-bit platforms, 32-bit executables will continue to run as they currently do on a 32-bit platform.

IBM Open XL C/C++ supports 64-bit mode mainly through the use of the -m64 and -mcpu compiler options. This combination determines the bit mode and instruction set for the target architecture.

For more information, see Using 32-bit and 64-bit modes in the IBM Open XL C/C++ Migration Guide.