opm-simulators icon indicating copy to clipboard operation
opm-simulators copied to clipboard

Linker errors with shared libs: libmpi.so: error adding symbols: DSO missing from command line

Open blattms opened this issue 1 year ago • 0 comments

I am getting strange errors again with -DBUILD_SHARED_LIBS=ON not sure when this started):

make[2]: Verzeichnis „/home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel“ wird betreten
cd /home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/mblatt/src/dune/opm-2.9/opm-simulators /home/mblatt/src/dune/opm-2.9/opm-simulators /home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel /home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel /home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel/CMakeFiles/test_GroupState.dir/DependInfo.cmake --color=
Dependencies file "CMakeFiles/test_GroupState.dir/tests/test_GroupState.cpp.o.d" is newer than depends file "/home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel/CMakeFiles/test_GroupState.dir/compiler_depend.internal".
Consolidate compiler generated dependencies of target test_GroupState
make[2]: Verzeichnis „/home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel“ wird verlassen
make  -f CMakeFiles/test_GroupState.dir/build.make CMakeFiles/test_GroupState.dir/build
make[2]: Verzeichnis „/home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel“ wird betreten
[ 37%] Linking CXX executable bin/test_GroupState
/usr/bin/cmake -E cmake_link_script CMakeFiles/test_GroupState.dir/link.txt --verbose=1
/usr/bin/c++ -pipe -Wall -Wextra -Wshadow -fopenmp -pthread -O3 -DNDEBUG -mtune=native -UNDEBUG -Wl,--enable-new-dtags CMakeFiles/test_GroupState.dir/tests/test_GroupState.cpp.o -o bin/test_GroupState   -L/home/mblatt/src/dune/opm-2.9/opm-common/opm-parallel/lib  -L/home/mblatt/src/dune/opm-2.9/opm-grid/opm-parallel/lib  -Wl,-rpath,/home/mblatt/src/dune/opm-2.9/opm-common/opm-parallel/lib:/home/mblatt/src/dune/opm-2.9/opm-grid/opm-parallel/lib:/home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel/lib:/usr/lib/x86_64-linux-gnu/openmpi/lib:/usr/lib/x86_64-linux-gnu/hdf5/openmpi lib/libopmsimulators.so.2024.10 /usr/lib/x86_64-linux-gnu/libboost_date_time.so.1.74.0 /usr/lib/x86_64-linux-gnu/librocsparse.so.0.1 /home/mblatt/src/dune/opm-2.9/opm-grid/opm-parallel/lib/libopmgrid.so /usr/lib/x86_64-linux-gnu/libdunegrid.so.2.9.0 /usr/lib/x86_64-linux-gnu/libdunegeometry.so.2.9.0 /usr/lib/x86_64-linux-gnu/libalberta_1d.so /usr/lib/x86_64-linux-gnu/libalberta_2d.so /usr/lib/x86_64-linux-gnu/libalberta_3d.so /usr/lib/x86_64-linux-gnu/libalberta_utilities.so /usr/lib/x86_64-linux-gnu/libltdl.so /usr/lib/x86_64-linux-gnu/libdunecommon.so.2.9.0 /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi_cxx.so /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so /usr/lib/x86_64-linux-gnu/libsuperlu.so /usr/lib/x86_64-linux-gnu/libumfpack.so /usr/lib/x86_64-linux-gnu/libamd.so -lm -ldl /usr/lib/x86_64-linux-gnu/libopenblas.so /usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so -lrt /home/mblatt/src/dune/opm-2.9/opm-common/opm-parallel/lib/libopmcommon.so /usr/lib/x86_64-linux-gnu/libfmt.so.9.1.0 /usr/lib/x86_64-linux-gnu/libboost_system.so.1.74.0 /usr/lib/x86_64-linux-gnu/libcjson.so /home/mblatt/opt/zoltan/lib/libzoltan.a /usr/lib/x86_64-linux-gnu/hdf5/openmpi/libhdf5.so /usr/lib/x86_64-linux-gnu/libcrypto.so /usr/lib/x86_64-linux-gnu/libcurl.so /usr/lib/x86_64-linux-gnu/libsz.so /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libdl.a -lm /usr/lib/x86_64-linux-gnu/libboost_unit_test_framework.so.1.74.0 -lduneuggrid /usr/lib/x86_64-linux-gnu/liblapack.so /usr/lib/x86_64-linux-gnu/libblas.so /usr/lib/x86_64-linux-gnu/libf77blas.so /usr/lib/x86_64-linux-gnu/libatlas.so /usr/lib/gcc/x86_64-linux-gnu/12/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.a 
/usr/bin/ld: lib/libopmsimulators.so.2024.10: undefined reference to symbol 'MPI_Rsend'
/usr/bin/ld: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/test_GroupState.dir/build.make:135: bin/test_GroupState] Fehler 1
make[2]: Verzeichnis „/home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel“ wird verlassen
make[1]: *** [CMakeFiles/Makefile2:1817: CMakeFiles/test_GroupState.dir/all] Fehler 2
make[1]: Verzeichnis „/home/mblatt/src/dune/opm-2.9/opm-simulators/opm-parallel“ wird verlassen
make: *** [Makefile:146: all] Fehler 2

Seems like I can work around using -DCMAKE_EXE_LINKER_FLAGS:STRING="-Wl,--copy-dt-needed-entries"

Were there any build system changes lately?

blattms avatar May 15 '24 12:05 blattms