mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2026-05-06 07:27:03 -04:00
sci-libs/mkl: Bump to 2026.0.0.908
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
DIST intel-oneapi-mkl-classic-include-2025.3-2025.3.1-8_amd64.deb 662304 BLAKE2B fb73e665fe312ff1844fe1c5da0dbbf0cd0aa1c77e5641774ebafb9a5400d189924a6a1d81821c324e0b3d22f9405666996c5d3c0728e83c5646af5646396ed0 SHA512 3c4f14c9ce7913d861e03b133c7211e9da898b43fa2c443c679fe7e9fceb24d0c6cdf11b16abebc1dcad80d521eb344139238e0bd9408fac12d44918c5e340af
|
||||
DIST intel-oneapi-mkl-classic-include-2026.0-2026.0.0-908_amd64.deb 658936 BLAKE2B ff1eb9b1968db28202e35d365ccb08e0be36d955b7078649aa378c12644bff2f37832aacc624cf9d72e53cf039f16f8d592527356fff30341c5f58d8843bf171 SHA512 862a92b9369b0dba3a49ddf0ac6145e7aec5070661a3f4c3738ace5a2ddc96633ebbdca6828363bf6b6a7c90df2cd070aede490a2d02c2cef7f43be069f4b592
|
||||
DIST intel-oneapi-mkl-core-2025.3-2025.3.1-8_amd64.deb 110248038 BLAKE2B 91b4a6a5229cc8d6f50813a33870551668822bea81f7534ef5728be95b0671d80dbfbe80e888c47075e2375c27c243dd6feeb144f13544d5cd8faf0a9efee945 SHA512 532641762cd66e9ed3d4c800914923eb87e862513ddd4c858bd01015af99396f892ef6a671f5f0c22b08273bc1e157067b65dead57ea66c5b705be1d4324bf33
|
||||
DIST intel-oneapi-mkl-core-2026.0-2026.0.0-908_amd64.deb 126175878 BLAKE2B 15616fb4aad2f3efc16634e5712b84b2410d3b5e7274e9f4587365ea616e7ad9d5b18d1814bcb8a04d1ac384750942c4822681d7159d2ed1b8fa94695719544c SHA512 672c74387bd1f1ee9a4e751609f822b735add6d64cb6ce855ffbc75cb8c98b807f915e895c019835be84af5f528db349f5c456f8b87a6b545c4bd44523a7fee6
|
||||
DIST intel-oneapi-mkl-core-devel-2025.3-2025.3.1-8_amd64.deb 106340390 BLAKE2B 33ee1d621660633721caa309430af6de929cc8e90e8ab2e48cface1f57dc7b0d3a0a265977db2922100d03299cb6ba0e278ec9c44fbaee18cd16ae421fad0d2c SHA512 cb775cc2f9a70aca4c54f761086aa64d55622745c4da8d652cb870bfed832e613ff40b83f23be797725c78b7640392f5820bf1b56a51df21ffcc568cb68a8e2f
|
||||
DIST intel-oneapi-mkl-core-devel-2026.0-2026.0.0-908_amd64.deb 122268962 BLAKE2B 0fa87ee983d3ec32b74f9f1f73a66d5b5ee6f4b746da4a6472440cb19694d020ae8c796e7b1b6c27872dadd780c289a6b9454324310c84a161eded3e9d92bb21 SHA512 1a650c9a0645704a914a17a021e2a927a1b832ba12c7398bbbb1f44d86960872a549bdc9ff243de9814a6e61223cb38cfbce82f114192f5f9c9ebf97d9b70b13
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit unpacker
|
||||
|
||||
# You can find the version suffix in:
|
||||
# https://apt.repos.intel.com/oneapi/dists/all/main/binary-amd64/Packages.bz2
|
||||
|
||||
PN_VER=$(ver_cut 1-2)
|
||||
MY_PV=$(ver_cut 1-3)-$(ver_cut 4)
|
||||
DESCRIPTION="Intel Math Kernel Library"
|
||||
HOMEPAGE="https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html"
|
||||
# Upstream packages are a mess -- and most of them are literally empty.
|
||||
SRC_URI="
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-core-${PN_VER}-${MY_PV}_amd64.deb
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-core-devel-${PN_VER}-${MY_PV}_amd64.deb
|
||||
https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-classic-include-${PN_VER}-${MY_PV}_amd64.deb
|
||||
"
|
||||
S="${WORKDIR}"
|
||||
|
||||
LICENSE="ISSL"
|
||||
SLOT="0/3"
|
||||
KEYWORDS="~amd64"
|
||||
IUSE="eselect-ldso examples gnu-openmp llvm-openmp static-libs tbb"
|
||||
RESTRICT="strip"
|
||||
|
||||
RDEPEND="
|
||||
eselect-ldso? (
|
||||
app-eselect/eselect-blas
|
||||
app-eselect/eselect-lapack
|
||||
)
|
||||
gnu-openmp? ( sys-devel/gcc:*[openmp] )
|
||||
llvm-openmp? ( llvm-runtimes/openmp )
|
||||
tbb? ( dev-cpp/tbb )
|
||||
"
|
||||
# bug #801460
|
||||
BDEPEND="
|
||||
app-arch/xz-utils[extra-filters(+)]
|
||||
eselect-ldso? (
|
||||
app-eselect/eselect-blas
|
||||
app-eselect/eselect-lapack
|
||||
)
|
||||
"
|
||||
|
||||
QA_PREBUILT="*"
|
||||
QA_TEXTRELS="*"
|
||||
QA_SONAME="*"
|
||||
|
||||
src_install() {
|
||||
local libdir=$(get_libdir)
|
||||
local libroot=opt/intel/oneapi/mkl/${PN_VER}/lib
|
||||
|
||||
if ! use static-libs; then
|
||||
rm -v "${libroot}"/{*.a,pkgconfig/*-static-*.pc} || die
|
||||
fi
|
||||
if ! use examples; then
|
||||
rm -rv "opt/intel/oneapi/mkl/${PN_VER}"/share/{mkl/benchmarks,doc/mkl/examples} || die
|
||||
fi
|
||||
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. We could just install
|
||||
# "openmp.pc" for that, but we don't want random packages
|
||||
# to start depending on it.
|
||||
sed -e '/Requires: openmp/d' \
|
||||
-e '/Libs:/s:$: -lomp:' \
|
||||
-i "${libroot}"/pkgconfig/*iomp.pc || die
|
||||
# Install a "libiomp5.so" symlink to make the magical lookup
|
||||
# in mkl_rt.so happy too.
|
||||
ln -s "../../../../../../usr/$(get_libdir)/libomp.so" \
|
||||
"${libroot}"/libiomp5.so || 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
|
||||
for file in *.pc; do
|
||||
dosym "../../../${libroot}/pkgconfig/${file}" \
|
||||
"/usr/${libdir}/pkgconfig/${file}"
|
||||
done
|
||||
popd >/dev/null || die
|
||||
pushd "${libroot}/cmake/mkl" >/dev/null || die
|
||||
for file in *.cmake; do
|
||||
dosym "../../../../${libroot}/cmake/mkl/${file}" \
|
||||
"/usr/${libdir}/cmake/mkl/${file}"
|
||||
done
|
||||
popd >/dev/null || die
|
||||
|
||||
# Move everything over to the image directory
|
||||
mv "${S}/"* "${ED}" || die
|
||||
|
||||
# Create convenience symlink that does not include the version number
|
||||
dosym "${PN_VER}" /opt/intel/oneapi/mkl/latest
|
||||
|
||||
if use eselect-ldso; then
|
||||
local lib=../../../../${libroot}/libmkl_rt.so
|
||||
dodir "/usr/${libdir}"/{blas,lapack}/mkl
|
||||
dosym "${lib}" "/usr/${libdir}/blas/mkl/libblas.so"
|
||||
dosym "${lib}" "/usr/${libdir}/blas/mkl/libblas.so.3"
|
||||
dosym "${lib}" "/usr/${libdir}/blas/mkl/libcblas.so"
|
||||
dosym "${lib}" "/usr/${libdir}/blas/mkl/libcblas.so.3"
|
||||
dosym "${lib}" "/usr/${libdir}/lapack/mkl/liblapack.so"
|
||||
dosym "${lib}" "/usr/${libdir}/lapack/mkl/liblapack.so.3"
|
||||
dosym "${lib}" "/usr/${libdir}/lapack/mkl/liblapacke.so"
|
||||
dosym "${lib}" "/usr/${libdir}/lapack/mkl/liblapacke.so.3"
|
||||
fi
|
||||
|
||||
# https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-1/dynamic-select-the-interface-and-threading-layer.html
|
||||
local default_threading_layer
|
||||
if use llvm-openmp; then
|
||||
default_threading_layer=INTEL
|
||||
elif use gnu-openmp; then
|
||||
default_threading_layer=GNU
|
||||
elif use tbb; then
|
||||
default_threading_layer=TBB
|
||||
else
|
||||
default_threading_layer=SEQUENTIAL
|
||||
fi
|
||||
|
||||
newenvd - "70intel-mkl" <<-_EOF_
|
||||
MKLROOT="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}"
|
||||
PATH="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}/bin"
|
||||
# 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"
|
||||
# respect USE flags for defaults
|
||||
MKL_THREADING_LAYER=${default_threading_layer}
|
||||
_EOF_
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
use eselect-ldso || return
|
||||
|
||||
local libdir=$(get_libdir) me="mkl"
|
||||
|
||||
# check blas
|
||||
eselect blas add ${libdir} "${EROOT}"/usr/${libdir}/blas/${me} ${me}
|
||||
local current_blas=$(eselect blas show ${libdir} | cut -d' ' -f2)
|
||||
if [[ ${current_blas} == "${me}" || -z ${current_blas} ]]; then
|
||||
eselect blas set ${libdir} ${me}
|
||||
elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]."
|
||||
else
|
||||
elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]."
|
||||
elog "To use blas [${me}] implementation, you have to issue (as root):"
|
||||
elog "\t eselect blas set ${libdir} ${me}"
|
||||
fi
|
||||
|
||||
# check lapack
|
||||
eselect lapack add ${libdir} "${EROOT}"/usr/${libdir}/lapack/${me} ${me}
|
||||
local current_lapack=$(eselect lapack show ${libdir} | cut -d' ' -f2)
|
||||
if [[ ${current_lapack} == "${me}" || -z ${current_lapack} ]]; then
|
||||
eselect lapack set ${libdir} ${me}
|
||||
elog "Current eselect: LAPACK ($libdir) -> [${current_blas}]."
|
||||
else
|
||||
elog "Current eselect: LAPACK ($libdir) -> [${current_blas}]."
|
||||
elog "To use lapack [${me}] implementation, you have to issue (as root):"
|
||||
elog "\t eselect lapack set ${libdir} ${me}"
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
use eselect-ldso || return
|
||||
|
||||
eselect blas validate
|
||||
eselect lapack validate
|
||||
}
|
||||
Reference in New Issue
Block a user