[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:
<http://www.ibm.com/systems/power/software/aix/linux/>
libatomic_ops does not build correctly. One workaround is to set
AO_USE_PTHREAD_DEFS by modifying boehm_gc/build_atomic_ops.sh:
CFLAGS="-DAO_USE_PTHREAD_DEFS" \
./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