mpich
mpich copied to clipboard
problems with MPI_CXX_DOUBLE_COMPLEX etc when they are MPI_DATATYPE_NULL
I configured like this:
../configure CC=/opt/llvm/latest/bin/clang FC=/opt/llvm/latest/bin/flang-new CXX=/opt/llvm/latest/bin/clang++ --enable-fortran=all --prefix=/opt/mpich/flang CFLAGS="-w"
using this compiler:
% /opt/llvm/latest/bin/clang -v
clang version 19.0.0git (https://github.com/llvm/llvm-project.git 105dcc882cf0152baeaa02ac0e50e2527b6940db)
Target: arm64-apple-darwin22.6.0
Thread model: posix
InstalledDir: /opt/llvm/latest/bin
It fails here:
libtool: compile: /opt/llvm/latest/bin/clang -DHAVE_CONFIG_H -I. -I.. -I./src/include -I../src/include -I../src/util -I../src/mpi/coll/allreduce_group/ -I../src/mpi/coll/transports/gentran -I../src/mpi/coll/transports -I../src/mpi/coll/algorithms/treealgo -I../src/mpi/coll/algorithms/recexchalgo -I../src/mpi/coll/algorithms/stubalgo -I../src/mpi/coll/algorithms/common -I../src/mpi/coll/include/ -I../src/mpi/datatype/typerep/src -I../src/mpi/init -I../src/mpi/spawn -I./src/binding/cxx -Isrc/binding/fortran/use_mpi -I../src/mpid/include -I../src/mpid/ch4/include -I./src/mpid/ch4/include -I../src/mpid/ch4/src -I../src/mpid/ch4/netmod/include -I../src/mpid/ch4/netmod/ofi -I../src/mpid/ch4/shm/include -I../src/mpid/ch4/shm/posix -I../src/mpid/ch4/shm/src -I../src/mpid/ch4/shm/posix/release_gather -I../src/mpid/ch4/shm/posix/eager/include -I./src/mpid/ch4/shm/posix/eager/include -I../src/mpid/ch4/shm/ipc/src -I../src/mpid/common/sched -I../src/mpid/common/thread -I../src/mpid/common/timers -I../src/mpid/common/shm -I../src/mpid/common/bc -I../src/mpid/common/genq -I../src/mpid/common/stream_workq -I../src/mpi_t -DNETMOD_INLINE=__netmod_inline_ofi__ -I/Users/jhammond/Work/MPI/mpich/build/src/mpl/include -I/Users/jhammond/Work/MPI/mpich/src/mpl/include -I/Users/jhammond/Work/MPI/mpich/modules/json-c -I/Users/jhammond/Work/MPI/mpich/build/modules/json-c -I/Users/jhammond/Work/MPI/mpich/modules/hwloc/include -I/Users/jhammond/Work/MPI/mpich/build/modules/hwloc/include -D_REENTRANT -I/Users/jhammond/Work/MPI/mpich/build/src/mpi/romio/include -I/Users/jhammond/Work/MPI/mpich/src/pmi/include -I/Users/jhammond/Work/MPI/mpich/build/src/pmi/include -I/Users/jhammond/Work/MPI/mpich/build/modules/libfabric/include -I/Users/jhammond/Work/MPI/mpich/modules/libfabric/include -I/Users/jhammond/Work/MPI/mpich/build/modules/yaksa/src/frontend/include -I/Users/jhammond/Work/MPI/mpich/modules/yaksa/src/frontend/include -w -fno-common -O2 -MT src/mpi/datatype/typerep/src/typerep_ext32.lo -MD -MP -MF src/mpi/datatype/typerep/src/.deps/typerep_ext32.Tpo -c ../src/mpi/datatype/typerep/src/typerep_ext32.c -o src/mpi/datatype/typerep/src/typerep_ext32.o
../src/mpi/datatype/typerep/src/typerep_ext32.c:111:14: error: duplicate case value '201326592'
111 | case MPI_CXX_FLOAT_COMPLEX:
| ^
./src/include/mpi.h:253:37: note: expanded from macro 'MPI_CXX_FLOAT_COMPLEX'
253 | #define MPI_CXX_FLOAT_COMPLEX ((MPI_Datatype)MPI_DATATYPE_NULL)
| ^
../src/mpi/datatype/typerep/src/typerep_ext32.c:108:14: note: previous case defined here
108 | case MPI_COMPLEX32:
| ^
./src/include/mpi.h:220:31: note: expanded from macro 'MPI_COMPLEX32'
220 | #define MPI_COMPLEX32 ((MPI_Datatype)MPI_DATATYPE_NULL)
| ^
../src/mpi/datatype/typerep/src/typerep_ext32.c:112:14: error: duplicate case value '201326592'
112 | case MPI_CXX_DOUBLE_COMPLEX:
| ^
./src/include/mpi.h:254:37: note: expanded from macro 'MPI_CXX_DOUBLE_COMPLEX'
254 | #define MPI_CXX_DOUBLE_COMPLEX ((MPI_Datatype)MPI_DATATYPE_NULL)
| ^
../src/mpi/datatype/typerep/src/typerep_ext32.c:111:14: note: previous case defined here
111 | case MPI_CXX_FLOAT_COMPLEX:
| ^
./src/include/mpi.h:253:37: note: expanded from macro 'MPI_CXX_FLOAT_COMPLEX'
253 | #define MPI_CXX_FLOAT_COMPLEX ((MPI_Datatype)MPI_DATATYPE_NULL)
| ^
../src/mpi/datatype/typerep/src/typerep_ext32.c:113:14: error: duplicate case value '201326592'
113 | case MPI_CXX_LONG_DOUBLE_COMPLEX:
| ^
./src/include/mpi.h:255:37: note: expanded from macro 'MPI_CXX_LONG_DOUBLE_COMPLEX'
255 | #define MPI_CXX_LONG_DOUBLE_COMPLEX ((MPI_Datatype)MPI_DATATYPE_NULL)
| ^
../src/mpi/datatype/typerep/src/typerep_ext32.c:112:14: note: previous case defined here
112 | case MPI_CXX_DOUBLE_COMPLEX:
| ^
./src/include/mpi.h:254:37: note: expanded from macro 'MPI_CXX_DOUBLE_COMPLEX'
254 | #define MPI_CXX_DOUBLE_COMPLEX ((MPI_Datatype)MPI_DATATYPE_NULL)
| ^
3 errors generated.
make[2]: *** [src/mpi/datatype/typerep/src/typerep_ext32.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
I haven't fixed it yet but I'll try tomorrow.
I'm also seeing this under macOS 14.7 (Sonoma) on x86_64 with the default Apple compiler:
% /usr/bin/clang --version
Apple clang version 16.0.0 (clang-1600.0.26.4)
Target: x86_64-apple-darwin23.6.0
It looks like this issue is fixed in mpich version 4.3.0. Works for me:
macOS 14.6.1 Sonoma
> mpicc-mpich-mp --version
Apple clang version 16.0.0 (clang-1600.0.26.6)
Target: x86_64-apple-darwin23.6.0
Please confirm and close this ticket.