superlu_dist
superlu_dist copied to clipboard
openmpi 4.0 drops support for MPI1
Build fails with openmpi 4.0:
mpicc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8 -O3 -DNDEBUG -DUSE_VENDOR_BLAS -DDEBUGlevel=0 -DPRNTlevel=0 -fopenmp -std=c99 -DUSE_VENDOR_BLAS -fPIC -O3 -DNDEBUG -DUSE_VENDOR_BLAS -DDEBUGlevel=0 -DPRNTlevel=0 -fopenmp -std=c99 -DUSE_VENDOR_BLAS -fPIC -DUSE_VENDOR_BLAS -I /builddir/build/BUILD/SuperLU_DIST_6.0.0/SRC -c sp_ienv.c
mpicxx -Wl,-z,relro -fopenmp pddrive.o dcreate_matrix.o sp_ienv.o /builddir/build/BUILD/SuperLU_DIST_6.0.0/SRC/libsuperlu_dist.a -lptscotchparmetis -lmetis -lscotch -lptscotch -lptscotcherr -lptscotcherrexit -lopenblas -lm -o pddrive
BUILDSTDERR: /builddir/build/BUILD/SuperLU_DIST_6.0.0/SRC/libsuperlu_dist.a(pdgstrf.o): In function `pdgstrf':
BUILDSTDERR: /builddir/build/BUILD/SuperLU_DIST_6.0.0/SRC/pdgstrf.c:430: undefined reference to `MPI_Attr_get'
BUILDSTDERR: collect2: error: ld returned 1 exit status
Docs: https://www.open-mpi.org/doc/v4.0/man3/MPI_Attr_get.3.php
Simply replace with MPI_Comm_get_Attr
For future reference, one should simply configure OpenMPI 4.X with --enable-mpi1-compatibility
and problem could also be solved (for older versions of SuperLU-dist)