[...]
===================================================================
]])
whatis("cray-mpich - Cray MPICH Message Passing Interface")
setenv("CRAY_MPICH_VER","8.1.4")
setenv("CRAY_MPICH_VERSION","8.1.4")
setenv("CRAY_MPICH_ROOTDIR","/opt/cray/pe/mpich/8.1.4")
setenv("CRAY_MPICH_BASEDIR","/opt/cray/pe/mpich/8.1.4/ofi")
setenv("PE_MPICH_MODULE_NAME","cray-mpich")
setenv("CRAY_MPICH_DIR","/opt/cray/pe/mpich/8.1.4/ofi/aocc/2.2")
setenv("CRAY_MPICH_PREFIX","/opt/cray/pe/mpich/8.1.4/ofi/aocc/2.2")
setenv("MPICH_DIR","/opt/cray/pe/mpich/8.1.4/ofi/aocc/2.2")
setenv("PE_MPICH_PKGCONFIG_VARIABLES","PE_MPICH_GTL_DIR_@accelerator@:PE_MPICH_GTL_LIBS_@accelerator@")
setenv("PE_MPICH_GTL_DIR_gfx906","-L/opt/cray/pe/mpich/8.1.4/gtl/lib")
setenv("PE_MPICH_GTL_DIR_gfx908","-L/opt/cray/pe/mpich/8.1.4/gtl/lib")
setenv("PE_MPICH_GTL_DIR_nvidia70","-L/opt/cray/pe/mpich/8.1.4/gtl/lib")
setenv("PE_MPICH_GTL_DIR_nvidia80","-L/opt/cray/pe/mpich/8.1.4/gtl/lib")
setenv("PE_MPICH_GTL_LIBS_gfx906","-lmpi_gtl_hsa")
setenv("PE_MPICH_GTL_LIBS_gfx908","-lmpi_gtl_hsa")
setenv("PE_MPICH_GTL_LIBS_nvidia70","-lmpi_gtl_cuda")
setenv("PE_MPICH_GTL_LIBS_nvidia80","-lmpi_gtl_cuda")
prepend_path("PE_MPICH_GENCOMPILERS_AOCC","2.2")
prepend_path("PE_MPICH_FIXED_PRGENV","AOCC")
prepend_path("PE_AOCC_FIXED_PKGCONFIG_PATH","/opt/cray/pe/mpich/8.1.4/ofi/aocc/2.2/lib/pkgconfig")
prepend_path("PE_PKGCONFIG_PRODUCTS","PE_MPICH")
prepend_path("PE_MPICH_PKGCONFIG_LIBS","mpich")
prepend_path("PE_MPICH_FORTRAN_PKGCONFIG_LIBS","mpichf90")
prepend_path("PE_PKGCONFIG_LIBS","mpich")
prepend_path("PE_FORTRAN_PKGCONFIG_LIBS","mpichf90")
setenv("PE_PERFTOOLS_MPICH_LIBDIR","/opt/cray/pe/mpich/8.1.4/ofi/aocc/2.2/lib")
prepend_path("MANPATH","/opt/cray/pe/mpich/8.1.4/man/mpich")
prepend_path("MANPATH","/opt/cray/pe/mpich/8.1.4/ofi/man")
prepend_path("PATH","/opt/cray/pe/mpich/8.1.4/ofi/aocc/2.2/bin")
prepend_path("CRAY_LD_LIBRARY_PATH","/opt/cray/pe/mpich/8.1.4/ofi/aocc/2.2/lib")
setenv("CRAY_LMOD_MPI","cray-mpich/8.0")
prepend_path("MODULEPATH","/opt/cray/pe/lmod/modulefiles/mpi/aocc/2.2/ofi/1.0/cray-mpich/8.0")
prepend_path("MODULEPATH","/opt/cray/pe/lmod/modulefiles/cncm/aocc/2.2/ofi/1.0/x86-rome/1.0/cray-mpich/8.0")
$ spack install cp2k@master%aocc +libvori +spglib ^cray-fftw ^cray-mpich ^cray-libsci+mpi+openmp
[...]
==> Warning: Extracted path from module does not exist [module=cray-mpich/8.1.4, path=/opt/cray/pe/mpich/8.1.4/gtl/lib")]
[...]
==> Error: NoLibrariesError: Unable to recursively locate cray-mpich libraries in /opt/cray/pe/mpich/8.1.4/gtl/lib")
/scratch/e1000/timuel/spack/var/spack/repos/builtin/packages/cp2k/package.py:363, in edit:
360 ldflags.append(scalapack.search_flags)
361
362 libs.extend(scalapack)
>> 363 libs.extend(spec['mpi:cxx'].libs)
364 libs.extend(self.compiler.stdcxx_libs)
365
366 if 'wannier90' in spec:
See build log for details:
/tmp/timuel/spack-stage/spack-stage-cp2k-master-wphctyex27pnp4cgstki3n6syqrcormm/spack-build-out.txt
Given the following output of
module show cray-mpich:and the
packages.yaml:one gets when trying to install a package:
The problem here is twofold:
the matcher function
match_flag_and_stripdoes not strip the trailing")of the path found by matching-L, hence the invalid path:spack/lib/spack/spack/util/module_cmd.py
Lines 195 to 204 in 4f7bd11
the module specifies additional library directories only needed under specific circumstances with different env vars, making them come out on top here, so, broken heuristics:
spack/lib/spack/spack/util/module_cmd.py
Lines 238 to 239 in 4f7bd11
Other possible improvements for this function:
-Lmatchre.compilesince the regexes are used quiet a lotcontinueafter a successful match