Dear all,
I am trying to compile the Einstein Toolkit on SuperMUC-NG and I get the following error at the very end of the compilation: -------------------------------------------------------------------- ld: warning: libpsm_infinipath.so.1, needed by /usr/lib64/libfabric.so.1, not found (try using -rpath or -rpath-link) fatal: bad revision 'HEAD' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_ep_num_devunits' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_init' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_ep_connect' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_epaddr_getctxt' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_error_get_string' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_send' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_am_get_parameters' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_cancel' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_finalize' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_test' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_finalize' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_epaddr_setctxt' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_init' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_ipeek' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_irecv' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_ep_open' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_am_request_short' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_error_register_handler' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_ep_epid_lookup' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_ep_open_opts_get_defaults' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_am_reply_short' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_ep_close' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_iprobe' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_mq_isend' ld: /usr/lib64/libfabric.so.1: undefined reference to `psm_am_register_handlers' make[1]: *** [/dss/dsshome1/00/di39wog2/EinsteinToolkit/Cactus/exe/cactus_ET_SUPERMUC_NG] Error 1 make: *** [ET_SUPERMUC_NG] Error 2 ------------------------------------------------------------------------- I have tried to link this library using its path on the cluster in the configuration script as: ———————————————————————— LDFLAGS = -rdynamic -xCORE-AVX2 -Wl,--rpath,-L/usr/lib64/psm2-compat/libpsm_infinipath.so.1 ———————————————————————— Unfortunately I have not much experience in linking libraries so I hope someone can help me with this. I attach log files and configurations script so you can cross-check.
Regards, Giuseppe
Hello Giuseppe,
LDFLAGS = -rdynamic -xCORE-AVX2 -Wl,--rpath,-L/usr/lib64/psm2-compat/libpsm_infinipath.so.1
You need to instead use:
LDFLAGS = ... -Wl,--rpath,/usr/lib64/psm2-compat/
ie specify the directory not the file.
Alternatively (and maybe better) you can try and set (or add to) the MPI variables instead like so:
MPI_LIB_DIRS = /usr/lib64/psm2-compat
which will also create a --rpath option eventually and also ensure that the library is found a link time by adding a -L option. This may however force you to also set MPI_INC_DIRS and MPI_LIBS.
You should be able to get information on what to put there from eg the old supermuc option list simfactory2/mdb/optionlists/supermuc-intelmpi.cfg and / or the information provided on https://docs.einsteintoolkit.org/et-docs/Configuring_a_new_machine
Yours, Roland
users@lists.einsteintoolkit.org