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 7.3, you cannot run the same binary code on AIX Version 7.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.
  • Applications that use AIX APIs or data structures that are not documented in the IBM® Documentation for AIX.
  • 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

Components that are ported to the AIX operating system based on open source technologies

IBM might choose to update components based on open source technologies with newer versions from the community throughout the life of an AIX release. The AIX is unable to guarantee binary compatibility between versions of components based on open source technologies. IBM might choose to remove components based on open source technologies during the life of the AIX release.

Some examples of components in the AIX operating system that are ported based on open source technologies:
  • Python
  • Perl
  • Bash

Applications with long user names enabled

AIX Versions 7.1, 7.2, and 7.3 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 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. Username 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.3

The AIX Version 7. X Window System libraries, headers, and some apps were updated to X-Consortium release 7.1 version of X (X11R7.1), which is considered binary compatible to X11R5 and X11R6. Therefore, any applications that could run on X11R5/X11R6 must run on X11R7.1, with no problems.

For existing applications that do not run on the X11R7.1 libraries, IBM ships the AIX windows Compatibility Libraries for X11R3, X11R4, X11R5, and X11R6 in the following filesets:
  • X11.compat.lib.X11R5
  • X11.compat.lib.X11R3
  • X11.compat.lib.X11R4
  • X11.compat.lib.X11R6

The AIX X server uses the X Consortium release 6 version of X (X11R6).

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.

For more detailed information about the AIX Windows runtime environment, refer to the /usr/lpp/X11/README, file that is installed by X11.base.rte fileset.

32-bit device drivers and kernel extensions

Beginning with AIX Version 6.1, 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 AIX versions, with the following exceptions:
  • Device drivers and kernel extensions that are only 32-bit are not supported on AIX Versions 7.1, 7.2, and 7.3.
  • Dual-mode (32-bit and 64 bit) kernel extensions that are built on AIX 5L can run only in 64-bit mode on AIX Versions 7.1, 7.2, and 7.3.