- removed comment
If I build a Cactus configuration with a thornlist containing just the MPI thorn (i.e no driver or any other thorns), the compilation fails with
COMPILING /Users/ian/Cactus/EinsteinToolkit/src/comm/CactusDefaultComm.c
In file included from /Users/ian/Cactus/EinsteinToolkit/configs/mpitest/build/Cactus/comm/CactusDefaultComm.c:33:
/opt/local/include/openmpi/mpi.h:367: error: wrong number of arguments specified for ‘__deprecated__’ attribute
Building the flesh without the MPI thorn works OK. This is on Mac OS with MPI from MacPorts.
Keyword:
What version of OS X is this? What compiler and compiler version are you using? Which version of OpenMPI is this?
It seems that the compiler cannot handle the OpenMPI include file mpi.h. The reason for this is likely that OpenMPI expects to be built with a particular compiler (then one that would be chosen by mpicc), but you are now using a different one, maybe a newer one.
A likely work-around is to use
-D__deprecated__=__deprecated_DISABLED. This should avoid this error, but would also disable all warnings about deprecated features.Another solution may to be update your OpenMPI version.
On the Cactus side, we could automatically enable the -D work-around above if a simple MPI program cannot be built without it, but can be built with it.