Hi, I am trying to compile siesta with cmake but I encounter issues with scalapack linking. I notice that the compilation process has changed compared to what I was used to.
Here is my cmake build command: $ cmake -S. -B_build -DCMAKE_INSTALL_PREFIX=/home/boubacart/SIESTA/siesta/bin -DSIESTA_WITH_MPI=ON -DSIESTA_WITH_ELPA=ON -DSIESTA_WITH_LIBXC=ON -DSCALAPACK_LIBRARY="-lscalapack-openmpi-devel" It fails at with a linking error as shown below: =================================== -- The Fortran compiler identification is GNU 4.8.5 -- The C compiler identification is GNU 4.8.5 -- Detecting Fortran compiler ABI info -- Detecting Fortran compiler ABI info - done -- Check for working Fortran compiler: /bin/f95 - skipped -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Check use of deprecated variables -- All Siesta variables/options are prefixed with SIESTA_, e.g. SIESTA_WITH_MPI -- Check use of deprecated variables - success -- Using GNU compiler -- Using toolchain: Config/cmake/toolchains/gnu.cmake -- No build type selected. SIESTA will default to 'Release'. To override pass -DCMAKE_BUILD_TYPE=<type> in order to configure SIESTA. Available options are: * -DCMAKE_BUILD_TYPE=Release - For an optimized build with no assertions or debug info. * -DCMAKE_BUILD_TYPE=Debug - For an unoptimized build with assertions and debug info. * -DCMAKE_BUILD_TYPE=Check - For an unoptimized build with assertions and debug info + code checks. * -DCMAKE_BUILD_TYPE=RelWithDebInfo - For an optimized build with no assertions but with debug info. * -DCMAKE_BUILD_TYPE=MinSizeRel - For a build optimized for size instead of speed. -- Flags for C-compiler (build type: Release): -O3 -march=native -- Flags for Fortran-compiler (build type: Release): -O3 -march=native -- Found PkgConfig: /bin/pkg-config (found version "0.27.1") -- Checking Siesta version -- SIESTA_VERSION: 5.1-MaX-28-gf3224d62e (err=3) -- WARNING: This is *not* an official SIESTA release. WARNING: WARNING: Unless you are trying a feature or fix that has not WARNING: been released yet, we strongly recommend the use of WARNING: official releases of SIESTA, which can be downloaded from WARNING: https://urldefense.com/v3/__https://gitlab.com/siesta-project/siesta/-/releases__;!!D9dNQwwGXtA!Rmpg9p8UKPCW6cyz-pqv17rbWkCKGs1uYvlQr27gN9ZwXYYwmNCOwy9r86NqoSZLMHQWF3Yg0VdJhClvy0M$ -- Checking Siesta version - found development version -- Parsing BLAS options -- Locating BLAS library -- Looking for Fortran sgemm -- Looking for Fortran sgemm - not found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Looking for Fortran sgemm -- Looking for Fortran sgemm - found -- Found BLAS: /usr/lib64/libblas.so -- Found CustomBlas: /usr/lib64/libblas.so -- Locating BLAS library - found -- BLAS library: /usr/lib64/libblas.so -- BLAS link flags: -- Parsing LAPACK options -- Locating LAPACK library -- Looking for Fortran cheev -- Looking for Fortran cheev - not found -- Looking for Fortran cheev -- Looking for Fortran cheev - found -- Found LAPACK: /usr/lib64/liblapack.so;/usr/lib64/libblas.so -- Found CustomLapack: /usr/lib64/liblapack.so;/usr/lib64/libblas.so -- Locating LAPACK library - found -- LAPACK library: /usr/lib64/liblapack.so;/usr/lib64/libblas.so -- LAPACK link flags: -- Found MPI_C: /usr/lib64/openmpi/lib/libmpi.so (found version "3.0") -- Found MPI_Fortran: /usr/lib64/openmpi/lib/libmpi_usempi.so (found version "3.0") -- Found MPI: TRUE (found version "3.0") found components: Fortran C -- Parsing ScaLAPACK options -- Locating ScaLAPACK library -- Using user-defined variables -- Found CustomScalapack: -lscalapack-openmpi-devel -- Locating ScaLAPACK library - found -- ScaLAPACK library: -lscalapack-openmpi-devel -- ScaLAPACK link flags: -- Checking that BLAS library works... -- Performing Test blas_has_sgemm -- Performing Test blas_has_sgemm - Success -- Performing Test blas_cdotu_return_convention -- Performing Test blas_cdotu_return_convention - Success -- Checking that LAPACK library works... -- Performing Test lapack_has_dsysv -- Performing Test lapack_has_dsysv - Success -- Checking that ScaLAPACK library works... -- Performing Test scalapack_has_blacs_gridinit -- Performing Test scalapack_has_blacs_gridinit - Failed CMake Warning at Config/cmake/SiestaCheckLinalg.cmake:125 (message): --------------------------------------------- ScaLAPACK library cannot link properly Please check the library linking string found or used by CMake--------------------------------------------- Call Stack (most recent call first): CMakeLists.txt:189 (include) CMake Error at Config/cmake/SiestaCheckLinalg.cmake:130 (message): *** ScaLAPACK library does not link properly Call Stack (most recent call first): CMakeLists.txt:189 (include) -- Configuring incomplete, errors occurred! =================================== Can anyone help me solve this issue? I tried but I so far did not find a solution. Thanks, Boubacar
-- SIESTA is supported by the Spanish Research Agency (AEI) and by the European H2020 MaX Centre of Excellence (http://www.max-centre.eu/)