You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description
Compiling libsc with openMPI using the CMake build system does not find MPI_COMM_TYPE_SHARED. Down the line, on t8code, this causes issues DLR-AMR/t8code#1109 with shared memory usage.
To Reproduce
cmake .. -Dmpi=ON
Additional information
The issue stems from the fact that MPI_COMM_TYPE_SHARED is defined as part of an anonymous enum on openMPI's mpi.h header file (instead of a macro definition), and the CMake function check_symbol_exists only checks for macro definition. A easy solution would be to use check_c_source_compiles instead. I would be glad to provide a pull request if this issue is considered.
The text was updated successfully, but these errors were encountered:
We had this type of error before on a different matter. @tim-griesbach, do you see a solution to this issue?
I think that @maelk3's proposal of creating a PR to use check_c_source_compiles instead of check_symbol_exists is a good solution. It is also aligned with the recommendation of the CMake documentation for checking enums.
Please go for it @maelk3. This will be good to fix! Compile-link-checking is sensible for all MPI functionalities that presently use symbol_exists, as well as for qsort_r: The latter has two different conventions flying around, one from BSD and one GNU. Please see the autoconf code in config/sc_qsort.m4 in case you like to address the latter as well.
Description
Compiling libsc with openMPI using the CMake build system does not find
MPI_COMM_TYPE_SHARED
. Down the line, on t8code, this causes issues DLR-AMR/t8code#1109 with shared memory usage.To Reproduce
Additional information
The issue stems from the fact that
MPI_COMM_TYPE_SHARED
is defined as part of an anonymous enum on openMPI'smpi.h
header file (instead of a macro definition), and the CMake functioncheck_symbol_exists
only checks for macro definition. A easy solution would be to usecheck_c_source_compiles
instead. I would be glad to provide a pull request if this issue is considered.The text was updated successfully, but these errors were encountered: