IBM C compilers

This section describes the various IBM C compilers for AIX. The details provided are limited to compatibility issues of the various compilers with the different versions of the AIX operating system. This information can help in deciding which version of a compiler product should be used in a given situation, based on the version of AIX that will be used. The information can also help avoid problems when upgrading a compiler product to a newer version.

AIX Version 3.2 included a bundled C compiler as part of the operating system. This compiler was known as XL C Version 1.3. When AIX Version 4.1 was introduced, the compiler product was unbundled from the operating system and offered for sale as a separately orderable product. This appendix covers the C and C++ compiler products prior to C for AIX Version 6.0.

IBM XL C Version 3

The IBM XL C Version 3 product was the first C compiler product from IBM for AIX Version 4.1. The Version 3 in the name of the product specifies the version number of the compiler product rather than the version of the AIX operating system the compiler is compatible with.

Initially released as Version 3.1.0, this compiler evolved over time with the addition of Program Temporary Fixes (PTFs) to become XL C Version 3.1.4, which was supported on AIX Version 4.1 and AIX Version 4.2. This compiler was not supported on AIX Version 3.2 and is not supported on AIX Version 4.3.

C programs written using C Set++ Version 2 and XL C Version 1.3 on AIX Version 3.2 are source compatible with XL C Version 3, with some exceptions in detecting invalid programs or areas where results are undefined. These exceptions are documented in the product README file.

The compiler product itself is installed in /usr/lpp/xlC, and symbolic links are created in /usr/bin for the command line driver programs, for example, /usr/bin/cc and /usr/bin/c89. The default PATH environment variable means that most users need only type cc on the command line to invoke the /usr/bin/cc driver program, which, in turn, is a symbolic link to the driver /usr/lpp/xlC/bin/xlC. The compiler configuration file is /etc/xlC.cfg.

The XL C Version 3 compiler product uses the Net/LS licensing system to control usage of the product.

This product has been withdrawn from marketing and is no longer available for purchase. Support for this product has also been discontinued. Current users of this product are encouraged to upgrade to the IBM C for AIX Version 6.0 compiler product.

IBM C for AIX Version 4.1

A new version of the C compiler product was introduced with AIX Version 4.3.0. The compiler product, IBM C for AIX Version 4.1, had a number of new features, including new optimization routines for improved execution performance, new inter-procedural analysis tools, precompiled headers for improved compiler performance, improved memory management, and improved prototyping of programs. This version of the compiler was supported on AIX Version 4.1.4, AIX Version 4.2, and AIX Version 4.3.

C programs written using either Version 2 or 3 of IBM C Set ++ for AIX Version 3 of IBM XL C, or the XL C compiler component of AIX Version 3.2 are source compatible with C for AIX Version 4.1, with some exceptions to detect invalid programs or areas where results are undefined.

Two important configuration differences introduced with this version of the compiler are:

  1. The compiler product is now installed under /usr/vac rather than /usr/lpp/xlC.

  2. The installation process does not create symbolic links to the driver programs from the /usr/bin directory. This is because the C compiler has been designed to co-exist on a system that already has the previous version of the C compiler or a version of the C Set ++ compiler installed.

If the system does not have another version of the compiler installed, the symbolic links in the /usr/bin directory can be created by invoking the /usr/vac/bin/replaceCSET command, which, as the name implies, replaces the symbolic links to the C Set driver programs.

The compiler product also includes the /usr/vac/bin/restoreCSET command, which can be used to reverse the actions of the replaceCSET command.

Alternatively, if multiple versions of the compiler exist, or if the user does not want to create symbolic links in /usr/bin, the setting of the PATH environment variable can be used to determine which compiler product is used.

For example, setting the PATH environment variable as follows:

PATH=/usr/vac/bin:$PATH; export PATH

will result in the C for AIX Version 4.1 compiler being used when the cc command is invoked.

The compiler configuration file is /etc/vac.cfg.

The C for AIX Version 4.1 compiler uses the License Use Management (LUM) licensing system to control usage of the product. Refer to 1.4, “Activating the compilers” on page 23 for information on configuring the licence system.

This product has been withdrawn from marketing and is no longer available for purchase. Support for this product has also been discontinued. Current users of this product are encouraged to upgrade to the IBM C for AIX Version 6.0 compiler product.

IBM C for AIX Version 4.3

The IBM C for AIX Version 4.3 compiler product was introduced shortly after the release of AIX Version 4.3.0 and the 64-bit hardware models of the RS/6000 family. This version of the compiler was similar to the IBM C for AIX Version 4.1 compiler, except that it added support for creating and debugging 64-bit application binaries for use on the 64-bit hardware. This version of the compiler is installed under /usr/vac, and uses the /etc/vac.cfg configuration file. If C for AIX Version 4.1 is already installed, installing C for AIX Version 4.3 will overwrite and upgrade the previous version.

The C for AIX Version 4.3 compiler uses the LUM licensing system to control usage of the product. Refer to 1.4, “Activating the compilers” on page 23 for information on configuring the licence system.

This product has been withdrawn from marketing and is no longer available for purchase. Support for this product has also been discontinued. Current users of this product are encouraged to upgrade to the IBM C for AIX Version 6 compiler product.

IBM C for AIX Version 4.4

The IBM C for AIX Version 4.4 compiler product was an improved version of the previously released C for AIX Version 4.3. The main enhancement was that this compiler was designed to exploit the RS/6000 Symmetric Multi-Processing (SMP) architecture. It supported automatic parallellization of a C program as well as explicit parallellization through a set of directives that enabled the user to parallelize selected sections of the application program. This version of the C compiler was supported only by AIX Version 4.2 and 4.3.

C programs written using either Version 2 or Version 3 of IBM C Set ++ for AIX, the XL C compiler component of AIX Version 3.2, or previous versions of the C for AIX Version 4.x compilers, are source compatible with C for AIX Version 4.4, with some exceptions to detect invalid programs or areas where results are undefined.

The compiler is installed under /usr/vac, and uses the /etc/vac.cfg configuration file. If a previous version of C for AIX 4.x is installed, installing C for AIX Version 4.4 will overwrite and upgrade the previous version.

The C for AIX Version 4.4 compiler uses the LUM licensing system to control usage of the product. Refer to 1.4, “Activating the compilers” on page 23 for information on configuring the licence system.

This product has been withdrawn from marketing and is no longer available for purchase. Support for this product has also been discontinued. Current users of this product are encouraged to upgrade to the IBM C for AIX Version 6.0 compiler product.

IBM C for AIX Version 5.0

The C for AIX Version 5.0 compiler extends the existing symmetric multi-processing (SMP) support available with C for AIX Version 4.4 by supporting the OpenMP industry specification. OpenMP provides a model for parallel programming that allows a program to be portable across shared memory architectures from different vendors by using a common set of application program interfaces. The compiler generates highly-optimized code for all RS/6000 processors and can provide run-time address checking to detect memory errors.

This compiler is supported only by IBM AIX Version 4.2.1 or later. Also, note that 64-bit applications will run only on AIX Version 4.3 and later when running on 64-bit hardware. C for AIX Version 5.0.2 adds support for AIX Version 5.1 and Version 5.2.

C programs written using Version 3 of XL C or Version 4 of IBM C for AIX are source compatible with IBM C for AIX Version 5.0. C programs written using either Version 2 or 3 of IBM Set ++ for AIX or the XL C compiler component of AIX Version 3.2 are source compatible with IBM C for AIX Version 5.0 with exceptions to detect invalid programs or areas where results are undefined.

This version of the compiler is installed under /usr/vac and uses the /etc/vac.cfg configuration file. If C for AIX Version 4.x is installed on a system, installing C for AIX Version 5.0 will overwrite and upgrade the previous version.

The C for AIX Version 5.0 compiler uses the LUM licensing system to control usage of the product. Refer to 1.4, “Activating the compilers” on page 23 for information on configuring the licence system.

C compiler summary

Table A-1 summarizes the various versions of IBM C compiler products for AIX.

Table A-1. IBM C compilers for AIX
CompilerInstallation directoryConfiguration fileSupported AIX levelsLicensing methodDrivers in /usr/bin
XL C Version 3/usr/lpp/xIC/etc/xIC.cfg4.1 and 4.2Net/LSYes
C for AIX Version 4.1/usr/vac/etc/vac.cfg4.1.4, 4.2, and 4.3iFOR/LSNo
C for AIX Version 4.3/usr/vac/etc/vac.cfg4.1.5, 4.2, and 4.3LUMNo
C for AIX Version 4.4/usr/vac/etc/vac.cfg4.2 and 4.3LUMNo
C for AIX Version 5.0/usr/vac/etc/vac.cfg4.2 and 4.3LUMNo

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset