Mercury’s use of GNU C extensions can cause problems with some versions of GCC, notably versions 4.2 and 4.3. Either use a different version of GCC, or configure Mercury so that it does not require any GNU C extensions. The following describes how to do the latter.
For versions of Mercury after 0.13.1, invoke the configure script with the option ‘--with-llds-base-grade=none’. This will cause the compiler to be built in the ‘none.gc’ grade, which does not use any GNU C extensions.
The configure script for Mercury version 0.13.1 (and before) does not support the above option. Instead create a file in the top-level directory of the unpacked source tree named ‘Mmake.params’ containing the line ‘GRADE=none.gc’.
After running the configure script, do “make” and “make install” as normal.
Mercury supports many grades. A grade is a combination the target language and feature options. These features include garbage collection, debugging and profiling support. See “Grades and grade components” in the User’s Guide.
During the “make install” phase the newly built compiler is used to compile the standard library in each of the selected grades. The runtime system is also rebuilt for each grade.
To install fewer grades and reduce the time “make install” takes, see the configure script’s options, in particular ‘--disable-most-grades’. Alternatively, run ‘make install LIBGRADES=<grades>’ instead, where “<grades>” is a space-separated list of grades.
Users of Mac OS X should note that there appear to be performance problems with the linker on some versions of that operating system that can lead to excessive linking times with code generated by the Mercury compiler.