Restrictions for AIX binary compatibility

Applications must use only portable programming techniques for binary compatibility on any platform.

If you create the binary code on a release of the AIX operation system, you cannot run the same binary code on an earlier version of the AIX operation system. For example, if you created the binary code on AIX® Version 7.1, you cannot run the same binary code on AIX Version 6.1.

Non-portable programming techniques

The following examples of non-portable programming techniques might affect binary compatibility:
  • Applications that are compiled by using a processor-specific compiler option but are run on models other than that processor
  • Legacy security library interfaces in which long user names are enabled
  • Non-shared compiles of AIX-shared libraries
  • X11R5 Server Extensions
  • Locales based on IBM-850 code sets

Applications with long user names enabled

AIX Version 5.3, AIX Version 6.1, and AIX Version 7.1 can be configured to accommodate user names and group names that exceed 8 characters. These versions of the AIX operating system should not be configured for long user names if the systems are running applications that use security library interfaces unless the applications have been tested for long user name support.

Applications might not work correctly on systems that are enabled for long user names and long group names under the following conditions:
  • Applications that are not specifically structured to handle long user and group names.
  • Applications that use legacy security library interfaces with 8-character name limits.
  • Applications that depend on user names and group names not exceeding 8 characters in length.
The following table displays legacy security library interfaces and user name enabled alternatives:
Table 1. User name enabled alternatives
Legacy security library interface long User name enabled alternative
ckuserID() authenticatex()
cuserid() getpwuid()
getuinfo() getuinfox()
getuinfo_r() getuinfox()
getuserpw() getuserpwx()
newpass() newpassx()
putuserpw() putuserpwx()
putuserwhist() putuserpwxhist()

X11R5/X11R6 compatibility issues on AIX Version 7.1

The AIX Version 7.1 X-server uses the X-Consortium release 6 of X (commonly known as X11R6). The libraries that are included by IBM with X11R6 are backwards compatible and the client applications that access these libraries can be used on AIX Version 4, AIX 5L, and AIX Version 6.1. On these versions of AIX, IBM® also includes X11R3, X11R4, and X11R5 compatibility installation options for maximum flexibility.

Most of X-server applications do not cause any problems. However, a few X-server applications use the loadable extension that is provided by the X-server. New functions can be added to the X-server by using extensions. For each extension operation, part of the extension is loaded into the X-server application before the extension can be run. X11R6 modifies how the extension works in the course of improvements to the X-server. The extension modification must be made compatible with X11R6 to run correctly. All extensions that are provided by IBM are compatible. The following extension examples are not compatible with X11R6:
  • Sample extensions that are downloaded from the X-Consortium FTP site
  • User developed extension
  • Third-party extension
In this scenario, the extension needs to be made compatible with X11R6 before the extension can run correctly. User developed extensions and sample X consortium extensions must be recompiled with the X11R6 environment. For third-party extensions, contact the vendor for a X11R6-compatible update.

If you are using non-IBM display adapters, you might also be using vendor supplied software specific to those devices that uses X11R6 server capabilities. In this scenario, the software must be compatible with X11R6 to operate properly. Contact the vendor of the display adapter for the software.

32-bit device drivers and kernel extensions

In AIX Version 6.1, or later, the AIX operating system simplified the kernel environment by providing only the 64-bit kernel. The AIX operating system maintains application binary compatibility with previous versions of the AIX operating system, but device drivers and kernel extensions that are only 32-bit are not supported on AIX Version 6.1 and AIX Version 7.1.

Dual-mode (32-bit/64 bit) kernel extensions that are built on AIX 5L can run only in 64-bit mode on AIX Version 6.1, and AIX Version 7.1.