LLNL/Caliper

MPICXX not linked for internal binaries

Closed this issue · 1 comments

Hi,

I think since the latest commit, there's a link issue

 FAILED: subprojects/caliper/src/tools/cali-query/cali-query
13:25:13   : && /usr/bin/c++ -g3 -O3 -march=native -mtune=native -DPHARE_DIAG_DOUBLES=1 -O3 -DNDEBUG -Wl,-rpath -Wl,/usr/lib64/openmpi/lib -Wl,--enable-new-dtags subprojects/caliper/src/tools/cali-query/CMakeFiles/query-common.dir/query_common.cpp.o subprojects/caliper/src/tools/cali-query/CMakeFiles/cali-query.dir/AttributeExtract.cpp.o subprojects/caliper/src/tools/cali-query/CMakeFiles/cali-query.dir/cali-query.cpp.o -o subprojects/caliper/src/tools/cali-query/cali-query  -Wl,-rpath,/opt/buildagent/work/3bd323ee5a73a841/build/subprojects/samrai/lib:/usr/lib64/openmpi/lib:  subprojects/samrai/lib/libcaliper-tools-util.so.2.11.0-dev  subprojects/samrai/lib/libcaliper.so.2.11.0-dev  /usr/lib64/openmpi/lib/libmpi.so && :
13:25:13   /usr/bin/ld: subprojects/samrai/lib/libcaliper.so.2.11.0-dev: undefined reference to `ompi_mpi_cxx_op_intercept'
13:25:13   /usr/bin/ld: subprojects/samrai/lib/libcaliper.so.2.11.0-dev: undefined reference to `MPI::Datatype::Free()'
13:25:13   /usr/bin/ld: subprojects/samrai/lib/libcaliper.so.2.11.0-dev: undefined reference to `MPI::Comm::Comm()'
13:25:13   /usr/bin/ld: subprojects/samrai/lib/libcaliper.so.2.11.0-dev: undefined reference to `MPI::Win::Free()'
13:25:13   collect2: error: ld returned 1 exit status
13:25:13   [536/762] Building CXX object subprojects/samrai/source/SAMRAI/pdat/CMakeFiles/SAMRAI_pdat.dir/SideGeometry.cpp.o
13:25:14   [537/762] Linking CXX executable subprojects/caliper/src/tools/mpi-caliquery/mpi-caliquery
13:25:14   [538/762] Linking CXX executable subprojects/caliper/src/tools/cali-stat/cali-stat
13:25:14   FAILED: subprojects/caliper/src/tools/cali-stat/cali-stat
13:25:14   : && /usr/bin/c++ -g3 -O3 -march=native -mtune=native -DPHARE_DIAG_DOUBLES=1 -O3 -DNDEBUG -Wl,-rpath -Wl,/usr/lib64/openmpi/lib -Wl,--enable-new-dtags subprojects/caliper/src/tools/cali-stat/CMakeFiles/cali-stat.dir/cali-stat.cpp.o -o subprojects/caliper/src/tools/cali-stat/cali-stat  -Wl,-rpath,/opt/buildagent/work/3bd323ee5a73a841/build/subprojects/samrai/lib:/usr/lib64/openmpi/lib:  subprojects/samrai/lib/libcaliper-tools-util.so.2.11.0-dev  subprojects/samrai/lib/libcaliper.so.2.11.0-dev  /usr/lib64/openmpi/lib/libmpi.so && :
13:25:14   /usr/bin/ld: subprojects/samrai/lib/libcaliper.so.2.11.0-dev: undefined reference to `ompi_mpi_cxx_op_intercept'
13:25:14   /usr/bin/ld: subprojects/samrai/lib/libcaliper.so.2.11.0-dev: undefined reference to `MPI::Datatype::Free()'
13:25:14   /usr/bin/ld: subprojects/samrai/lib/libcaliper.so.2.11.0-dev: undefined reference to `MPI::Comm::Comm()'
13:25:14   /usr/bin/ld: subprojects/samrai/lib/libcaliper.so.2.11.0-dev: undefined reference to `MPI::Win::Free()'
13:25:14   collect2: error: ld returned 1 exit status

Hm, I see. Looks like the MPI::MPI_C target isn't enough for OpenMPI in your case, though it worked for me. I'll revert it back to ${MPI_CXX_LIBRARIES}, hopefully that fixes it - please let me know if it doesn't. MPI::MPI_CXX doesn't work for CMake projects that don't have the CXX language enabled. Thanks again for the report!