As mentioned above, Red Hat based systems typically use non-release versions of
the Gnu compilers (such as 2.96). You can test what version of compiler you
have by running gcc -v
. If it spits out a string containing 2.96 as the
version, we strongly recommend building a newer version of gcc for use with
Spheral++. The latest releases of gcc can be found at http://gcc.gnu.org.
Instructions for building gcc
can be found in the source and at the main
web site.
Once you have a reasonable version of the compiler, you must configure
Spheral++ to build with it. Additionally, on a distributed parallel Linux
cluster you want to make sure that mpicc
and mpiCC
are using the
correct compiler. On most Linux clusters mpicc/mpiCC
are simply scripts
from the MPICH distribution (http://www-unix.mcs.anl.gov/mpi/), in which
case it is possible to override the compilers they use with environment
variables. In the Spheral++ source we have examples of modified front-end
scripts (the spheral/src/helpers/mpicc and
spheral/src/helpers/mpiCC
files) set up to do just this, assuming the
compilers you want to run are called gcc-3.4.3
and g
+-3.4.3+.
These are appropriate for use on the LLNL Linux clusters, such as pengra and
mcr.
On intel Linux you can choose to use either the gnu
or intel
compiler sets, i.e.
./configure --with-compilers=intelor
./configure --with-compilers=gnu --with-opt=2 --with-dbc=noneYou can also override any of the individual compiler choices as needed,
./configure --with-compilers=gnu --with-opt=2 --with-dbc=none \ --with-CC=gcc-3.4.3 --with-CXX=g++-3.4.3 \ --with-MPICC=/home/username/Spheral++/spheral/src/helpers/mpicc \ --with-MPICXX=/home/username/Spheral++/spheral/src/helpers/mpiCC