xlC / VisualAge C/C++ installation and customization

[ General | 1.3 | 2.1.x | 3.1.4 | 3.6.6 | 4.1 | 4.4 | 6.0 | 8.0 | 9.0 | 11.1 | 12.1 ]

General remarks


Over the years the AIX compilers came with varying license managers.
The early ones came with NetLS/iforLS and need a specific license key bound to a license server machine (via the CPU planar ID).
From approx V3.6 onwards License Usage Management LUM took over. This mechanism allows to bypass strict license management via the -qnolm option. Just append -qnolm to the configuration file's common option definitions after the DEFLT: label, e.g.:
      options   = ...other options...,-qnolm


The vac type compilers need to be added to the command path:
   export    PATH=/usr/vac/bin:/usr/vacpp/bin:$PATH
   export MANPATH=/usr/vac/man/en_US:$MANPATH


At the time of this writing (April 2011), patches are still freely available @IBM

Hints for Programmers

Additional IBM C and C++ Compilers Predefined Macros

Macro Name Compiler Version Macro Value Remarks
__xlC__ C++
3.6.6 0x0306
6.0 0x0600
__xlc__ C
3.6.6 0x0403
6.0 0x0600
__IBMCPP__ C++
3.6.6 366
6.0 600
__IBMC__ C
3.6.6 436
6.0 600

xlc 1.3

Vanilla C compiler, comes native with the OS (3.2), but can also be found packaged in some ftp archives. Configuration file is /etc/xlc.cfg.
Appendix _r indicates threadsafe version, which e.g. defines -D_THREAD_SAFE. Used in conjunction with DCE threads.

CSet++ 2.1.x

Straightforward, but needs license key. Configuration file is /etc/xlC.cfg.
Once I observed that after installation
   ln -s /usr/lpp/xlC/lib/libC.a /usr/lib/libC.a
is necessary to "publicize" the C++ runtime library.


Straightforward, but needs license key ?. Configuration file is /etc/xlC.cfg.


If not limited in space (i.e. for system disks >> 1 GB) install just everything. One may omit IBM Open Class samples and sources (this will save several 100MB of disk space), as well as Japanese and Chinese help text.
For filesets with explicit AIX level dependencies select the common version plus the one pertinent to the used AIX level. Do not include filesets which explicitly refer to AIX levels other than the one your using.
For system disks approximately 1GB or below omit IBM Open Class stuff, install only common HTML docs.
If available, apply patches
  1. The configuration file is /etc/ibmcxx.cfg
  2. The documentation can be found at /usr/ibmcxx/html/en_US/doc/index.html
  3. With IBM C/C++ there's a shell script to set the proper links:
    which should be used to override settings by the previous C Set compiler and/or to define the cc command.
  4. Check licensing issues
Note : For a pristine AIX 4.1 it seems to be necessary to explicitly select the
xlC.rte  C Set ++ for AIX Application Runtime
fileset, which overrides the 3.1.x runtime. Otherwise the compiler won't install.


Straightforward, but needs license. Configuration file is /etc/vac.cfg.


Straightforward. Configuration file is: /etc/vac.cfg


(AIX 4.3, 5.x)
Installation with smitty is not quite straightforward as usual. Here's the procedure I found to work best.
  1. Install from the VAC++ CDs
  2. When filesets come in common and versions for various AIX levels, choose only the version specific for your level. Do not include SW which refers to AIX levels < the one you're using.
  3. To make the cforaixhelp script work, the httpdlite daemon must run (see /etc/inittab). Its config file /etc/IMNSearch/httpdlite/httpdlite.conf should contain the entries
    HostName localhost
    Port   49213
  4. Add /usr/vac/bin to your PATH
Configuration file is: /etc/vac.cfg


(AIX 5.1,5.2,5.3)
Use smitty to install straightforward from CD.
Unlike earlier versions XL C/C++ 8 does not seem to enforce license management.


(AIX 6.1)
Use smitty to install straightforward from CD. Install only filesets belonging to the version of AIX you are running on.
Unlike earlier versions XL C/C++ 9 does not seem to enforce license management.

In order to run XL C 9 on AIX 6.1 a PTF (oct2007) has to be applied. Browse

IBM Support - Download - Software
Category: Other Software
Subcategory: XL C/C++
and download. If the transmission is bad, command line download may be used:
wget -e robots=off ftp://ftp.software.ibm.com/aix/products/ccpp/ptfs/vac.90.aix61.oct2007.ptf.tar.Z
Unpack and update via smitty. Configuration file for AIX 6.1:
ln -s /etc/vac.cfg.61 /etc/vac.cfg   
XL C 9 comes with a web information server, to be controlled via
/usr/xlhelp/bin/xlhelp      # start eclipse server, in /etc/rc.local  
/usr/xlhelp/bin/xlhelp_end  # stop  eclipse server
Clients may access it via
/usr/vac/bin/xlchelp                    # client command, requires Mozilla
http://localhost:9011/help/index.jsp    # URL on local machine
http://server_name:9011/help/index.jsp  # URL on remote machine
PDF docs are found in /usr/vac/doc/en_US/pdf/


Straightforward from CD. No adaption of config file necessary.
Note however, that by the time of this writing (July 2011) patches are necessary to run the compiler (date: 2010) on AIX 7.1.


Straightforward from CD, just stay away from filesets explicitly meant for an AIX release other than the one you are installing to. No adaption of config file necessary.
Supported by AIX 5.3TL7 through 7.1.
Last update: 26-Apr-2013, M.Kraemer