Problems compiling plumed 2.7.1 after patching INDUS

77 views
Skip to first unread message

Mayank Vats

unread,
Aug 17, 2021, 11:31:32 AM8/17/21
to INDUS Users Forum

I am trying to compile Plumed 2.7.1 and Indus for patching into gromacs 2021.2.
I had to make some changes to the plumed configure.ac (some assumptions in there were not working out on my hardware/software configuration) to compile it for my machine. This is on a POWER9 system with RHEL8 and GCC 8.4.1 and IBM Spectrum-mpi compiler.
Those changes to Plumed configure.ac were:

1. Replacing

```
# first look for blas
if test "$external_blas" == true ; then
  AC_MSG_CHECKING([whether dgemv can be linked with no library])
  AC_LINK_IFELSE([AC_LANG_CALL([], [dgemv])],[
      AC_MSG_RESULT([yes])
      blas_found=nounderscore
      ],[
     AC_MSG_RESULT([no])
     AC_MSG_CHECKING([whether dgemv_ can be linked with no library])
     AC_LINK_IFELSE([AC_LANG_CALL([], [dgemv_])],[
       AC_MSG_RESULT([yes])
        blas_found=underscore
      ],[
        AC_MSG_RESULT([no])
        PLUMED_SEARCH_LIBS([dgemv],[blas],[blas_found=nounderscore],[
        PLUMED_SEARCH_LIBS([dgemv_],[blas],[blas_found=underscore])
      ])
    ])
  ])
fi
```
with 
```
# first look for blas 
PLUMED_SEARCH_LIBS([dgemv_],[blas],[blas_found=underscore])
```
2. Removing
```
"$($CXX --print-prog-name=ar) cr"
```
and 
```
"$($CXX --print-prog-name=ld) -r -o"
```
These are necessary because Plumed is finding sdot from the compiler wrapper but the rest isn't supplied by the wrapper... It should be using the the _ variant which is found the in the libraries but it doesn't have the logic for that.
With these changes, Plumed compiles successfully.
Now that Plumed is compiled, I want to do another installation with INDUS patched into it (as recommended). I run the patching script and configure. However, on doing make for the plumed recompile, I get the following error:
```
../orderparameters/Indus.o:(.toc+0x8): undefined reference to `OrderParameter::X_DIM'
../orderparameters/Indus.o:(.toc+0x10): undefined reference to `OrderParameter::Y_DIM'
../orderparameters/Indus.o:(.toc+0x18): undefined reference to `OrderParameter::Z_DIM'
../orderparameters/OrderParametersInterface.o:(.toc+0x20): undefined reference to `PLMD::colvar::OrderParametersInterface::X_DIM'
../orderparameters/OrderParametersInterface.o:(.toc+0x28): undefined reference to `PLMD::colvar::OrderParametersInterface::Y_DIM'
../orderparameters/OrderParametersInterface.o:(.toc+0x30): undefined reference to `PLMD::colvar::OrderParametersInterface::Z_DIM'
make[4]: *** [Makefile:484: plumed-static] Error 1
make[4]: *** Waiting for unfinished jobs....
```
What changes are required to make this patched version work?
Apologies if this is more of a Plumed question than an INDUS question.


Reply all
Reply to author
Forward
0 new messages