commit: 2deea4a4414f5d1af10b75db9af8993e6dd4b053
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 17 18:53:28 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Jul 17 18:54:11 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2deea4a4
sci-libs/mkl: Make threading dependencies optional
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
sci-libs/mkl/metadata.xml | 11 +++++++++++
sci-libs/mkl/mkl-2025.2.0.628.ebuild | 30 ++++++++++++++++++++----------
2 files changed, 31 insertions(+), 10 deletions(-)
diff --git a/sci-libs/mkl/metadata.xml b/sci-libs/mkl/metadata.xml
index 1c12a7532045..7c1ec87f2a58 100644
--- a/sci-libs/mkl/metadata.xml
+++ b/sci-libs/mkl/metadata.xml
@@ -16,4 +16,15 @@
<upstream>
<remote-id type="github">oneapi-src/oneMKL</remote-id>
</upstream>
+ <use>
+ <flag name="gnu-openmp">
+ Install versions with GNU OpenMP (libgomp) support.
+ </flag>
+ <flag name="llvm-openmp">
+ Install versions with LLVM OpenMP (libomp) support.
+ </flag>
+ <flag name="tbb">
+ Install versions with TBB threading support.
+ </flag>
+ </use>
</pkgmetadata>
diff --git a/sci-libs/mkl/mkl-2025.2.0.628.ebuild
b/sci-libs/mkl/mkl-2025.2.0.628.ebuild
index 404e25d249b2..535f09f3d155 100644
--- a/sci-libs/mkl/mkl-2025.2.0.628.ebuild
+++ b/sci-libs/mkl/mkl-2025.2.0.628.ebuild
@@ -20,7 +20,7 @@ S="${WORKDIR}"
LICENSE="ISSL"
SLOT="0"
KEYWORDS="~amd64"
-IUSE="examples static-libs"
+IUSE="examples gnu-openmp llvm-openmp static-libs tbb"
RESTRICT="strip"
# MKL uses Intel/LLVM OpenMP by default.
@@ -29,8 +29,9 @@ RESTRICT="strip"
RDEPEND="
app-eselect/eselect-blas
app-eselect/eselect-lapack
- dev-cpp/tbb
- llvm-runtimes/openmp
+ gnu-openmp? ( sys-devel/gcc:*[openmp] )
+ llvm-openmp? ( llvm-runtimes/openmp )
+ tbb? ( dev-cpp/tbb )
"
# bug #801460
BDEPEND="
@@ -53,11 +54,20 @@ src_install() {
if ! use examples; then
rm -rv
"opt/intel/oneapi/mkl/${PN_VER}"/share/{mkl/benchmarks,doc/mkl/examples} || die
fi
-
- # Replace Intel OpenMP with LLVM OpenMP
- sed -e '/Requires: openmp/d' \
- -e '/Libs:/s:$: -lomp:' \
- -i "${libroot}"/pkgconfig/*iomp.pc || die
+ if ! use gnu-openmp; then
+ rm -v "${libroot}"/{*_gnu_thread.*,pkgconfig/*-gomp.pc} || die
+ fi
+ if use llvm-openmp; then
+ # Replace Intel OpenMP with LLVM OpenMP
+ sed -e '/Requires: openmp/d' \
+ -e '/Libs:/s:$: -lomp:' \
+ -i "${libroot}"/pkgconfig/*iomp.pc || die
+ else
+ rm -v "${libroot}"/{*_intel_thread.*,pkgconfig/*-iomp.pc} || die
+ fi
+ if ! use tbb; then
+ rm -v "${libroot}"/{*_tbb_thread.*,pkgconfig/*-tbb.pc} || die
+ fi
# Symlink pkgconfig and cmake files
pushd "${libroot}/pkgconfig" >/dev/null || die
@@ -96,8 +106,8 @@ src_install() {
# we need to duplicate it in ROOTPATH for Portage to respect...
ROOTPATH="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}/bin"
LDPATH="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}/lib"
- # Default to GNU threading -- we do not package Intel OpenMP
- MKL_THREADING_LAYER=gnu
+ # Override default threading -- we do not package Intel OpenMP
+ MKL_THREADING_LAYER=$(usex gnu-openmp gnu $(usex tbb tbb seq))
_EOF_
}