SUMMARY I get these errors in the build: Making all in mpi make[2]: Entering directory '/gpfs/fs1/SHARE/Utils/Valgrind/3.15.0/GCC-7.4.0_OpenMPI-4.0.2/distro/mpi' /gpfs/fs1/SHARE/Utils/OpenMPI/4.0.2/GCC-7.4.0_CUDA-10.1.243.0_418.87.00_UCX-2019-10-19_HWLoc-2.1.0_ZLib-1.2.11_NUMActl-2.0.13/bin/mpicc -I../include -g -O -fno-omit-frame- pointer -Wall -fpic -m64 -Wno-deprecated-declarations -MT libmpiwrap_amd64_linux_so-libmpiwrap.o -MD -MP -MF .deps/libmpiwrap_amd64_linux_so-libmpiwrap.Tpo -c -o libmpiwrap_a md64_linux_so-libmpiwrap.o `test -f 'libmpiwrap.c' || echo './'`libmpiwrap.c In file included from libmpiwrap.c:116:0: libmpiwrap.c: In function ‘showTy’: libmpiwrap.c:281:19: error: expected expression before ‘_Static_assert’ else if (ty == MPI_UB) fprintf(f,"UB"); ^ libmpiwrap.c:282:19: error: expected expression before ‘_Static_assert’ else if (ty == MPI_LB) fprintf(f,"LB"); ^ libmpiwrap.c: In function ‘showCombiner’: libmpiwrap.c:354:12: error: expected expression before ‘_Static_assert’ case MPI_COMBINER_HVECTOR_INTEGER: fprintf(f, "HVECTOR_INTEGER"); break; ^ libmpiwrap.c:354:12: error: expected expression before ‘_Static_assert’ libmpiwrap.c:354:40: error: expected expression before ‘:’ token case MPI_COMBINER_HVECTOR_INTEGER: fprintf(f, "HVECTOR_INTEGER"); break; ^ In file included from libmpiwrap.c:116:0: libmpiwrap.c:359:12: error: expected expression before ‘_Static_assert’ case MPI_COMBINER_HINDEXED_INTEGER: fprintf(f, "HINDEXED_INTEGER"); break; ^ libmpiwrap.c:359:12: error: expected expression before ‘_Static_assert’ libmpiwrap.c:359:41: error: expected expression before ‘:’ token case MPI_COMBINER_HINDEXED_INTEGER: fprintf(f, "HINDEXED_INTEGER"); break; ^ In file included from libmpiwrap.c:116:0: libmpiwrap.c:366:12: error: expected expression before ‘_Static_assert’ case MPI_COMBINER_STRUCT_INTEGER: fprintf(f, "STRUCT_INTEGER"); break; ^ In file included from libmpiwrap.c:116:0: libmpiwrap.c:366:12: error: expected expression before ‘_Static_assert’ case MPI_COMBINER_STRUCT_INTEGER: fprintf(f, "STRUCT_INTEGER"); break; ^ libmpiwrap.c:366:12: error: expected expression before ‘_Static_assert’ libmpiwrap.c:366:39: error: expected expression before ‘:’ token case MPI_COMBINER_STRUCT_INTEGER: fprintf(f, "STRUCT_INTEGER"); break; ^ libmpiwrap.c: In function ‘extentOfTy’: libmpiwrap.c:462:8: warning: implicit declaration of function ‘PMPI_Type_extent’; did you mean ‘MPI_Type_extent’? [-Wimplicit-function-declaration] r = PMPI_Type_extent(ty, &n); ^~~~~~~~~~~~~~~~ MPI_Type_extent In file included from libmpiwrap.c:116:0: libmpiwrap.c: In function ‘walk_type’: libmpiwrap.c:736:17: error: expected expression before ‘_Static_assert’ if (ty == MPI_LB || ty == MPI_UB) ^ Makefile:645: recipe for target 'libmpiwrap_amd64_linux_so-libmpiwrap.o' failed make[2]: *** [libmpiwrap_amd64_linux_so-libmpiwrap.o] Error 1 make[2]: Leaving directory '/gpfs/fs1/SHARE/Utils/Valgrind/3.15.0/GCC-7.4.0_OpenMPI-4.0.2/distro/mpi' Makefile:841: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/gpfs/fs1/SHARE/Utils/Valgrind/3.15.0/GCC-7.4.0_OpenMPI-4.0.2/distro' Makefile:710: recipe for target 'all' failed make: *** [all] Error 2 STEPS TO REPRODUCE I'm using these configuration parameters + ./configure --with-mpicc=/gpfs/fs1/SHARE/Utils/OpenMPI/4.0.2/GCC-7.4.0_CUDA-10.1.243.0_418.87.00_UCX-2019-10-19_HWLoc-2.1.0_ZLib-1.2.11_NUMActl-2.0.13/bin/mpicc --prefix=/gpfs/fs1/SHARE/Utils/Valgrind/3.15.0/GCC-7.4.0_OpenMPI-4.0.2 SOFTWARE/OS VERSIONS Linux/KDE Plasma: Ubuntu 18,04 OpenMPI: 4.0.2 ADDITIONAL INFORMATION I believe the list of constants has changed between OpenMPI 4.0.1 & 4.0.2. I'm seeing similar breakages building the latest PNetCDF. I'm thinking there may be a flag to get around this though.
This is the 3.15.0 release, not just a circa-3.15 snapshot from the SVN repository. Shouldn't you update the Version list?
Building OpenMPI with --enable-mpi1-compatibility" appears to solve the problem for both Valgrind and PNetCDF. I'm going to close this issue now. It looks like OpenMPI broke compatibility going from 4.0.1 -> 4.0.2. Can anyone comment on the Valgrind dependency though?
Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone!
(I had put this into "NEEDSINFO" state, but evidently that means "NEEDSINFO" from me not you!) I'm going to hold this open because the MPI 1 support might not always be available for OpenMPI, and you ought to consider adjusting your interface for future use.
Carl, how hard would it be for you to make a patch to fix this properly on the Valgrind side?
I wouldn't have a clue how.
Hey Folks, I came also across this error and manually altered the valgrind-3.16.1/mpi/libmpiwrap.c file in lines 281f., 385ff., and 765f. according to the replacements of the deprecated datatypes: https://www.open-mpi.org/faq/?category=mpi-removed I filed an attachment for the corresponding file.
Created attachment 134278 [details] Avoid usage of deprecated MPI Datatypes See my comment in the discussion.