Microsoft Windows (Cygwin)
Building LAM/MPI as shared libraries is not well tested with the
xlc compiler suite, and is not supported. With more recent
releases of AIX and the compiler suite, it may be possible to build
correct shared libraries on AIX. There have been reports of linker
errors similar to those of Mac OS X when building with
--disable-static --enable-shared. LAM will build
properly but fail with strange errors from the LAM daemon involving
To build LAM/MPI in 64-bit mode with the
xlc/xlC/xlf compilers, it is recommended that the
OBJECT_MODE be set to 64
before running LAM's configure script. Building 64-bit mode
with the GNU compiler is not tested, but should be possible.
Finally, there have been repeatable problems with AIX's make
when building ROMIO. This does not appear to
be ROMIO's fault -- it appears to be a bug in AIX's make. The
LAM Team suggests that you use GNU make when building if you
see failures when using AIX's make to avoid these problems.
It appears that the default C++ compiler on HP-UX (CC) is a pre-ANSI
standard C++ compiler. As such, it will not build the C++ bindings
package. The C++ compiler aCC should be used instead.
Parts of LAM/MPI use the C++ Standard Template Library (STL). The
IRIX Workshop compilers require an additional flag to compile STL code
properly. The following flag must be added to the CXXFLAGS
environment variable before running LAM's configure script:
Note that setting CXXFLAGS will override any automatic
selection of optimization flags. Hence, if you want the C++ code in
LAM to be compiled with optimization, you will need to set both -LANG:std and any optimization flags in CXXFLAGS.
shell$ CXXFLAGS="-LANG:std -O3"
shell$ export CXXFLAGS
shell$ ./configure ...
LAM/MPI is frequently used on Linux-based machines (IA-32 and
otherwise). Although LAM/MPI is generally tested on Red Hat and
Mandrake Linux systems using recent kernel versions, it should work on
other Linux distributions as well.
There appears to be an error in the
awk shipped with
Red Hat 7.2 for IA-64, which will cause strange failures in the LAM
test suite. Rather than using
make check, we recommend
specifying the available RPIs manually: make check MODES="usysv
sysv tcp", replacing the list with whatever RPIs are available
in your installation.
The Portland Group compiler suite requires special flags to build
shared libraries which Libtool does not properly provide. It does not
appear possible to build shared libraries using the Portland group
Using the Intel compiler suite with unsupported versions of glibc
may result in strange errors while building LAM. This is a problem
with the compiler-supplied header files, not LAM. For more
information, see either the LAM mail archives or the Intel support
Note that kernel versions 2.2.0 through 2.2.9 had some TCP/IP
performance problems. It seems that version 2.2.10 fixed these
problems; if you are using a Linux version between 2.2.0 and 2.2.9,
LAM may exhibit poor TCP performance due to the Linux TCP/IP kernel
bugs. We recommend that you upgrade to 2.2.10 (or the latest
version). See our Linux
notes for a full discussion of the problem.
The Apple developer's CD does not include a Fortran compiler. If
you do not wish to use Fortran, you need to tell LAM not to build the
Fortran bindings. The
without-fc flag to LAM's configure
script will tell LAM to skip building the Fortran MPI bindings.
The Apple dynamic linker works slightly differently than most Unix
linkers. Due to a difference in symbol resolution when using the
shared libraries, it is not possible to build only shared libraries.
It is possible to build LAM/MPI with both shared and static libraries;
the build system will automatically statically link the binaries that
can not be dynamically linked.
In previous versions of LAM, it was necessary to pass the argument
--with-romio-flags=-DNO_AIO to the ROMIO build system in
order to properly compile. This is no longer needed; LAM will pass
the correct flags to ROMIO automatically.
The make on some versions of OpenBSD requires the -i option for the
make -i clean.
To build LAM/MPI in 64-bit mode with the Sun Forte compilers, it is
recommended that the compiler option
Building shared libraries in 64-bit mode with the Sun Forte
compilers is not possible due to a bug in the GNU Libtool package.
Specifically, Libtool does not pass CFLAGS to the linker, which causes
the linker to attempt to build a 64-bit shared object. One possible
workaround (which has not been tested by the LAM development team) is
to write a ``wrapper'' ld script that inserts the proper flags and
then calls the Solaris ld.
TotalView support on Solaris may require special compiler flags --
in particular, for some versions of the Forte compilers, you may have
to use the configure option
-W0,-y-s" to work around a bug in the Forte compiler suite.
LAM has been lightly tested on Cygwin platforms. The general
consensus is that LAM will not work properly under Cygwin because of
some outstanding portability issues that have not yet been solved.
The most difficult of which is file descriptor passing, which is
currently not available under the Cygwin environment.