#1655: Cannot compile on Mac OS ----------------------+----------------------------------------------------- Reporter: hinder | Owner: Type: defect | Status: new Priority: critical | Milestone: ET_2014_11 Component: Cactus | Version: development version Keywords: MPI | ----------------------+----------------------------------------------------- I tried to compile the ET on Mac OS using a fresh checkout from yesterday, and got linker errors.
{{{ Undefined symbols for architecture x86_64: "_MPI_Abort", referenced from: _CactusDefaultAbort in libthorn_Cactus.a(CactusDefaultComm.c.o) MPI::Comm::Abort(int) in libthorn_PeriodicCarpet.a(periodic.cc.o) MPI::Comm::Abort(int) in libthorn_Carpet.a(helpers.cc.o) MPI::Comm::Abort(int) in libthorn_CarpetEvolutionMask.a(evolution_mask.cc.o) MPI::Comm::Abort(int) in libthorn_CarpetIOASCII.a(ioascii.cc.o) MPI::Comm::Abort(int) in libthorn_CarpetIOBasic.a(iobasic.cc.o) MPI::Comm::Abort(int) in libthorn_CarpetIOHDF5.a(Input.cc.o) }}}
This used to work before the recent rewrite of the MPI configure script. I am using the simfactory optionlist osx-mountain-lion-macports-gcc.cfg and OpenMPI from MacPorts. The auto-detection logic in the MPI thorn won't work, as MacPorts uses nonstandard names for the compilation wrappers (mpicc-openmpi-mp mpicxx-openmpi-mp mpiexec-openmpi-mp mpif77-openmpi-mp mpif90-openmpi-mp). However, the optionlist specifies the library locations explicitly, and for some reason this is not working:
MPI_DIR = NO_BUILD MPI_INC_DIRS = /opt/local/include/openmpi-mp MPI_LIB_DIRS = /opt/local/lib/openmpi-mp
While it would be good for the script to be updated to find the configuration scripts that OpenMPI in MacPorts provides, we should also fix whatever is stopping the explicit settings from working. It should always be possible to configure using the explicit settings; this is more important than having the auto-detection working.