commit: 3c86c43bb9d1da16681832176c95153520e4a5eb Author: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> AuthorDate: Sun Dec 11 21:43:26 2022 +0000 Commit: Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org> CommitDate: Sun Dec 11 21:43:26 2022 +0000 URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=3c86c43b
sci-libs/oneDAL: new package, add 2021.7.1_p20221207 Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org> .../oneDAL-2021.7.1_p20221207-fix-compile.patch | 164 +++++++++++++++++++++ sci-libs/oneDAL/metadata.xml | 11 ++ sci-libs/oneDAL/oneDAL-2021.7.1_p20221207.ebuild | 89 +++++++++++ 3 files changed, 264 insertions(+) diff --git a/sci-libs/oneDAL/files/oneDAL-2021.7.1_p20221207-fix-compile.patch b/sci-libs/oneDAL/files/oneDAL-2021.7.1_p20221207-fix-compile.patch new file mode 100644 index 000000000..553e742ab --- /dev/null +++ b/sci-libs/oneDAL/files/oneDAL-2021.7.1_p20221207-fix-compile.patch @@ -0,0 +1,164 @@ +diff --git a/dev/bazel/deps/onedal.bzl b/dev/bazel/deps/onedal.bzl +index f0f7662..6b9d11f 100644 +--- a/dev/bazel/deps/onedal.bzl ++++ b/dev/bazel/deps/onedal.bzl +@@ -21,18 +21,12 @@ onedal_repo = repos.prebuilt_libs_repo_rule( + "include", + ], + libs = [ +- # Static +- "lib/intel64/libonedal_core.a", +- "lib/intel64/libonedal_thread.a", +- "lib/intel64/libonedal.a", +- "lib/intel64/libonedal_dpc.a", +- "lib/intel64/libonedal_sycl.a", +- + # Dynamic + "lib/intel64/libonedal_core.so", + "lib/intel64/libonedal_thread.so", + "lib/intel64/libonedal.so", + "lib/intel64/libonedal_dpc.so", ++ "lib/intel64/libonedal_sycl.so", + ], + build_template = "@onedal//dev/bazel/deps:onedal.tpl.BUILD", + ) +diff --git a/dev/bazel/deps/onedal.tpl.BUILD b/dev/bazel/deps/onedal.tpl.BUILD +index 60be678..0f7990e 100644 +--- a/dev/bazel/deps/onedal.tpl.BUILD ++++ b/dev/bazel/deps/onedal.tpl.BUILD +@@ -9,62 +9,17 @@ cc_library( + includes = [ "include" ], + ) + +-cc_library( +- name = "core_static", +- srcs = [ +- "lib/intel64/libonedal_core.a", +- ], +- deps = [ +- ":headers", +- # TODO: Currently vml_ipp lib depends on TBB, but it shouldn't +- # Remove TBB from deps once problem with vml_ipp is resolved +- "@tbb//:tbb_binary", +- ], +-) +- +-cc_library( +- name = "thread_static", +- srcs = [ +- "lib/intel64/libonedal_thread.a", +- ], +- deps = [ +- ":headers", +- "@tbb//:tbb_binary", +- "@tbb//:tbbmalloc_binary", +- ], +-) + + cc_library( + name = "onedal_sycl", + srcs = [ +- "lib/intel64/libonedal_sycl.a", +- ], +- deps = [ +- ":headers", +- ], +-) +- +-cc_library( +- name = "onedal_static", +- srcs = [ +- "lib/intel64/libonedal.a", ++ "lib/intel64/libonedal_sycl.so", + ], + deps = [ + ":headers", + ], + ) + +-cc_library( +- name = "onedal_static_dpc", +- srcs = [ +- "lib/intel64/libonedal_dpc.a", +- ], +- deps = [ +- ":headers", +- ":onedal_sycl", +- ], +-) +- + cc_library( + name = "core_dynamic", + srcs = [ +diff --git a/dev/make/cmplr.dpcpp.mk b/dev/make/cmplr.dpcpp.mk +index 2ac2ed9..bd0e182 100644 +--- a/dev/make/cmplr.dpcpp.mk ++++ b/dev/make/cmplr.dpcpp.mk +@@ -28,13 +28,13 @@ CORE.SERV.COMPILER.dpcpp = generic + -Zl.dpcpp = + -DEBC.dpcpp = -g + +-COMPILER.lnx.dpcpp = icpx -fsycl $(if $(IA_is_ia32),-m32,-m64) -stdlib=libstdc++ -fgnu-runtime -fwrapv \ +- -Werror -Wreturn-type -fsycl-device-code-split=per_kernel +-COMPILER.win.dpcpp = icx -fsycl $(if $(MSVC_RT_is_release),-MD, -MDd /debug:none) -nologo -WX \ ++COMPILER.lnx.dpcpp = $(CXX) $(CXXFLAGS) -fsycl $(if $(IA_is_ia32),-m32,-m64) -stdlib=libstdc++ -fgnu-runtime -fwrapv \ ++ -Wreturn-type -fsycl-device-code-split=per_kernel ++COMPILER.win.dpcpp = $(CC) $(CFLAGS) -fsycl $(if $(MSVC_RT_is_release),-MD, -MDd /debug:none) -nologo -WX \ + -Wno-deprecated-declarations -fsycl-device-code-split=per_kernel + +-link.dynamic.lnx.dpcpp = icpx -fsycl $(if $(IA_is_ia32),-m32,-m64) -fsycl-device-code-split=per_kernel +-link.dynamic.win.dpcpp = icx -fsycl $(if $(IA_is_ia32),-m32,-m64) -fsycl-device-code-split=per_kernel ++link.dynamic.lnx.dpcpp = $(CXX) $(LDFLAGS) -fsycl $(if $(IA_is_ia32),-m32,-m64) -fsycl-device-code-split=per_kernel ++link.dynamic.win.dpcpp = $(CC) $(LDFLAGS) -fsycl $(if $(IA_is_ia32),-m32,-m64) -fsycl-device-code-split=per_kernel + + pedantic.opts.lnx.dpcpp = -pedantic \ + -Wall \ +diff --git a/dev/make/cmplr.icx.mk b/dev/make/cmplr.icx.mk +index 28ce293..7c478b0 100644 +--- a/dev/make/cmplr.icx.mk ++++ b/dev/make/cmplr.icx.mk +@@ -24,14 +24,14 @@ CMPLRDIRSUFF.icx = _icx + + CORE.SERV.COMPILER.icx = generic + +--Zl.icx = -no-intel-lib=libirc ++-Zl.icx = + -DEBC.icx = -g + +-COMPILER.lnx.icx = icpx $(if $(IA_is_ia32),-m32,-m64) \ +- -Werror -Wreturn-type ++COMPILER.lnx.icx = $(CXX) $(CXXFLAGS) $(if $(IA_is_ia32),-m32,-m64) \ ++ -Wreturn-type + + +-link.dynamic.lnx.icx = icpx $(if $(IA_is_ia32),-m32,-m64) ++link.dynamic.lnx.icx = $(CXX) $(LDFLAGS) $(if $(IA_is_ia32),-m32,-m64) + + pedantic.opts.icx = -pedantic \ + -Wall \ +diff --git a/makefile b/makefile +index 9c51bad..20aaff5 100644 +--- a/makefile ++++ b/makefile +@@ -219,7 +219,7 @@ TBBDIR.2 := $(if $(TBBDIR.2),$(TBBDIR.2),$(error Can`t find TBB neither in $(DIR + + TBBDIR.include := $(if $(TBBDIR),$(TBBDIR)/include/tbb $(TBBDIR)/include) + +-TBBDIR.libia.prefix := $(TBBDIR.2)/lib ++TBBDIR.libia.prefix := $(TBBDIR.2)/lib64 + + TBBDIR.libia.win.vc1 := $(if $(OS_is_win),$(if $(wildcard $(call frompf1,$(TBBDIR.libia.prefix))/$(_IA)/vc_mt),$(TBBDIR.libia.prefix)/$(_IA)/vc_mt,$(if $(wildcard $(call frompf1,$(TBBDIR.libia.prefix))/$(_IA)/vc14),$(TBBDIR.libia.prefix)/$(_IA)/vc14))) + TBBDIR.libia.win.vc2 := $(if $(OS_is_win),$(if $(TBBDIR.libia.win.vc1),,$(firstword $(filter $(call topf,$$TBBROOT)%,$(subst ;,$(space),$(call topf,$$LIB)))))) +@@ -227,10 +227,10 @@ TBBDIR.libia.win.vc22 := $(if $(OS_is_win),$(if $(TBBDIR.libia.win.vc2),$(wildca + + TBBDIR.libia.win:= $(if $(OS_is_win),$(if $(TBBDIR.libia.win.vc22),$(TBBDIR.libia.win.vc2),$(if $(TBBDIR.libia.win.vc1),$(TBBDIR.libia.win.vc1),$(error Can`t find TBB libs nether in $(call frompf,$(TBBDIR.libia.prefix))/$(_IA)/vc_mt not in $(firstword $(filter $(TBBROOT)%,$(subst ;,$(space),$(LIB)))).)))) + +-TBBDIR.libia.lnx.gcc1 := $(if $(OS_is_lnx),$(if $(wildcard $(TBBDIR.libia.prefix)/$(_IA)/gcc4.8/*),$(TBBDIR.libia.prefix)/$(_IA)/gcc4.8)) ++TBBDIR.libia.lnx.gcc1 := $(if $(OS_is_lnx),$(if $(wildcard $(TBBDIR.libia.prefix)/*),$(TBBDIR.libia.prefix))) + TBBDIR.libia.lnx.gcc2 := $(if $(OS_is_lnx),$(if $(TBBDIR.libia.lnx.gcc1),,$(firstword $(filter $(TBBROOT)%,$(subst :,$(space),$(LD_LIBRARY_PATH)))))) + TBBDIR.libia.lnx.gcc22 := $(if $(OS_is_lnx),$(if $(TBBDIR.libia.lnx.gcc2),$(wildcard $(TBBDIR.libia.lnx.gcc2)/libtbb.so))) +-TBBDIR.libia.lnx := $(if $(OS_is_lnx),$(if $(TBBDIR.libia.lnx.gcc22),$(TBBDIR.libia.lnx.gcc2),$(if $(TBBDIR.libia.lnx.gcc1),$(TBBDIR.libia.lnx.gcc1),$(error Can`t find TBB runtimes nether in $(TBBDIR.libia.prefix)/$(_IA)/gcc4.8 not in $(firstword $(filter $(TBBROOT)%,$(subst :,$(space),$(LD_LIBRARY_PATH)))).)))) ++TBBDIR.libia.lnx := $(if $(OS_is_lnx),$(if $(TBBDIR.libia.lnx.gcc22),$(TBBDIR.libia.lnx.gcc2),$(if $(TBBDIR.libia.lnx.gcc1),$(TBBDIR.libia.lnx.gcc1),$(error Can`t find TBB runtimes nether in $(TBBDIR.libia.prefix) not in $(firstword $(filter $(TBBROOT)%,$(subst :,$(space),$(LD_LIBRARY_PATH)))).)))) + + TBBDIR.libia.mac.clang1 := $(if $(OS_is_mac),$(if $(wildcard $(TBBDIR.libia.prefix)/*),$(TBBDIR.libia.prefix))) + TBBDIR.libia.mac.clang2 := $(if $(OS_is_mac),$(if $(TBBDIR.libia.mac.clang1),,$(firstword $(filter $(TBBROOT)%,$(subst :,$(space),$(LIBRARY_PATH)))))) diff --git a/sci-libs/oneDAL/metadata.xml b/sci-libs/oneDAL/metadata.xml new file mode 100644 index 000000000..2793ac235 --- /dev/null +++ b/sci-libs/oneDAL/metadata.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>[email protected]</email> + <name>Gentoo Science Project</name> + </maintainer> + <upstream> + <remote-id type="github">oneapi-src/oneDAL</remote-id> + </upstream> +</pkgmetadata> diff --git a/sci-libs/oneDAL/oneDAL-2021.7.1_p20221207.ebuild b/sci-libs/oneDAL/oneDAL-2021.7.1_p20221207.ebuild new file mode 100644 index 000000000..32b7b218b --- /dev/null +++ b/sci-libs/oneDAL/oneDAL-2021.7.1_p20221207.ebuild @@ -0,0 +1,89 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{8..11} ) +inherit python-any-r1 java-pkg-2 + +# Latest from development required to build using open source DPC++ +COMMIT="a6bce46565825747fa8c3fdfe2dd6a676ab600a7" + +MKLFPK_VER="20210426" +MKLGPUFPK_VER="2021-11-11" + +DESCRIPTION="oneAPI Data Analytics Library" +HOMEPAGE="https://github.com/oneapi-src/oneDAL" +# Secondary urls extracted from dev/download_micromkl.sh +SRC_URI=" + https://github.com/oneapi-src/oneDAL/archive/${COMMIT}.tar.gz -> ${P}.tar.gz + https://github.com/oneapi-src/oneDAL/releases/download/Dependencies/mklgpufpk_lnx_${MKLGPUFPK_VER}.tgz + https://github.com/oneapi-src/oneDAL/releases/download/Dependencies/mklfpk_lnx_${MKLFPK_VER}.tgz +" +S="${WORKDIR}/${PN}-${COMMIT}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64" + +BDEPEND="sys-devel/DPC++" + +RDEPEND=" + dev-cpp/tbb:= + dev-libs/opencl-icd-loader + virtual/jdk:17 +" +DEPEND=" + ${DEPEND} + ${PYTHON_DEPS} +" + +PATCHES=( + "${FILESDIR}/${P}-fix-compile.patch" +) + +pkg_setup() { + python-any-r1_pkg_setup + java-pkg-2_pkg_setup +} + +src_unpack() { + unpack "${P}.tar.gz" + mkdir -p "${S}/__deps/mklfpk/" "${S}/__deps/mklgpufpk/lnx" || die + cd "${S}/__deps/mklfpk/" || die + unpack "mklfpk_lnx_${MKLFPK_VER}.tgz" + cd "${S}/__deps/mklgpufpk/lnx" || die + unpack "mklgpufpk_lnx_${MKLGPUFPK_VER}.tgz" +} + +src_prepare() { + # DPC++ compiler required for full functionality + export CC="${ESYSROOT}/usr/lib/llvm/intel/bin/clang" + export CXX="${ESYSROOT}/usr/lib/llvm/intel/bin/clang++" + export TBBROOT="${ESYSROOT}/usr" + export CPLUS_INCLUDE_PATH="./cpp/daal/include:${ESYSROOT}/usr/lib/llvm/intel/include" + export JAVA_HOME="${ESYSROOT}/usr/lib64/openjdk-17/" + export PATH="${JAVA_HOME}/bin:${PATH}" + export CPATH="${JAVA_HOME}/include:${JAVA_HOME}/include/linux:${CPATH}" + + default +} + +src_compile() { + emake PLAT=lnx32e COMPILER=icx daal oneapi +} + +src_install() { + einstalldocs + cd __release_lnx_icx/daal/latest || die + docinto examples + dodoc -r examples/* + docinto samples + dodoc -r samples/* + doheader -r include/* + dolib.so lib/intel64/*.so* + dolib.a lib/intel64/*.a* + insinto /usr/share/pkgconfig + doins -r lib/pkgconfig/* + java-pkg_dojar lib/*.jar +}
