[m-rev.] for review: Document experience on AIX.

Peter Wang novalazy at gmail.com
Fri Jul 11 17:08:19 AEST 2014


Mercury was tested on AIX in 2014.

    * AIX 7.1 on POWER7 processor
    * using IBM C compiler (xlc)
    * in hlc.gc grade
    * in none.gc grade

You must have GNU make, flex and bison.  RPMS are available from:


libatomic_ops does not build correctly.  One workaround is to set
AO_USE_PTHREAD_DEFS by modifying boehm_gc/build_atomic_ops.sh:

    ./configure --prefix=$P --libdir=$P/lib "$@"

It is not recommended to use parallel Mercury grades in this configuration,
if they even build.  They currently do not.

You may need to use the IBM C compiler instead of gcc.  Pass "--with-cc=xlc"
when configuring the Mercury installation, and use high-level C grades
for better performance.

We encountered these problems when trying to use gcc:

  * gcc crashed on long function names (over 288 characters), which the
    Mercury compiler generates an abundance of.

  * By default, we pass `-ansi' to gcc.  This causes problems with non-ANSI
    symbols in header files where they should not appear, and which were not
    flagged on our usual development platforms (Linux).

We encountered these problems when using the none.gc grade:

  * overflowing the default TOC data structure due to too many global symbols.
    To use a large TOC, you can pass the option `-qpic=large' to the
    C compiler and the linker, or the option `-bbigtoc' to the linker.


More information about the reviews mailing list