cray-libsci/cp2k: add constraints to get consistently linked executables (#29396)
* cray-libsci: only be a provider for scalapack with +mpi If a package explicitly links the scalapack provider we might otherwise end up with different variants of libsci being linked: the explicitly linked one and the one added by the Cray compiler wrappers. * cp2k: require cray-libsci+openmp with +openmp for consistency otherwise we might get 2 different libsci linked: one explicitly, the other one via the Cray compiler wrappers, leading at least to segfaults during cleanup * cp2k: depend on cray-fftw+openmp with +openmp
This commit is contained in:
parent
5bea24526f
commit
94ce7f5040
@ -83,7 +83,12 @@ class Cp2k(MakefilePackage, CudaPackage):
|
|||||||
with when('+openmp'):
|
with when('+openmp'):
|
||||||
depends_on('fftw+openmp', when='^fftw')
|
depends_on('fftw+openmp', when='^fftw')
|
||||||
depends_on('amdfftw+openmp', when='^amdfftw')
|
depends_on('amdfftw+openmp', when='^amdfftw')
|
||||||
|
depends_on('cray-fftw+openmp', when='^cray-fftw')
|
||||||
depends_on('openblas threads=openmp', when='^openblas')
|
depends_on('openblas threads=openmp', when='^openblas')
|
||||||
|
# The Cray compiler wrappers will automatically add libsci_mp with
|
||||||
|
# -fopenmp. Since CP2K unconditionally links blas/lapack/scalapack
|
||||||
|
# we have to be consistent.
|
||||||
|
depends_on('cray-libsci+openmp', when='^cray-libsci')
|
||||||
|
|
||||||
with when('smm=libxsmm'):
|
with when('smm=libxsmm'):
|
||||||
depends_on('libxsmm@1.17:~header-only', when='@9.1:')
|
depends_on('libxsmm@1.17:~header-only', when='@9.1:')
|
||||||
|
@ -30,7 +30,7 @@ class CrayLibsci(Package):
|
|||||||
|
|
||||||
provides("blas")
|
provides("blas")
|
||||||
provides("lapack")
|
provides("lapack")
|
||||||
provides("scalapack")
|
provides("scalapack", when="+mpi")
|
||||||
|
|
||||||
canonical_names = {
|
canonical_names = {
|
||||||
'gcc': 'GNU',
|
'gcc': 'GNU',
|
||||||
|
Loading…
Reference in New Issue
Block a user