summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/elpa/package.py8
-rw-r--r--var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py9
2 files changed, 7 insertions, 10 deletions
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index 8e0ac1e70f..faad6d95bc 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -171,8 +171,14 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
options += self.enable_or_disable("openmp")
+ # if using mkl with openmp support, link with openmp
+ mkl_openmp_flag = (
+ self.compiler.openmp_flag
+ if self.spec.satisfies("^intel-oneapi-mkl threads=openmp")
+ else ""
+ )
options += [
- "LDFLAGS={0}".format(spec["lapack"].libs.search_flags),
+ "LDFLAGS={0} {1}".format(mkl_openmp_flag, spec["lapack"].libs.search_flags),
"LIBS={0} {1}".format(spec["lapack"].libs.link_flags, spec["blas"].libs.link_flags),
]
diff --git a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
index 3bf6dfd225..6fc27e8074 100644
--- a/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
+++ b/var/spack/repos/builtin/packages/intel-oneapi-mkl/package.py
@@ -179,7 +179,6 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
def _find_mkl_libs(self, shared):
libs = []
- threading_libs = []
if self.spec.satisfies("+cluster"):
libs.extend([self._xlp64_lib("libmkl_scalapack"), "libmkl_cdft_core"])
@@ -192,12 +191,6 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
libs.append("libmkl_intel_thread")
else:
libs.append("libmkl_gnu_thread")
-
- # this is slightly different than what link-line advisor suggests.
- # here it uses what the compiler suggests to use to enable openmp,
- # instead of being explicit about in which path openmp libraries
- # are located (e.g. intel libiomp5, gcc libgomp, clang libomp).
- threading_libs += [self.compiler.openmp_flag]
else:
libs.append("libmkl_sequential")
@@ -248,8 +241,6 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
except spack.error.NoLibrariesError:
pass
- resolved_libs += threading_libs
-
return resolved_libs
def _xlp64_lib(self, lib):