diff options
author | Sam James <sam@gentoo.org> | 2023-08-26 03:43:01 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2023-08-26 03:43:01 +0100 |
commit | 51d2f2ce2765f3974f89c5618e6a7132ac13f2d9 (patch) | |
tree | 4fce3d26586a7944bf907b3797a21541dafc92fc /dev-libs/pocl | |
parent | dev-python/pikepdf: fix minimum qpdf version (diff) | |
download | gentoo-51d2f2ce2765f3974f89c5618e6a7132ac13f2d9.tar.gz gentoo-51d2f2ce2765f3974f89c5618e6a7132ac13f2d9.tar.bz2 gentoo-51d2f2ce2765f3974f89c5618e6a7132ac13f2d9.zip |
dev-libs/pocl: add 4.0
Closes: https://bugs.gentoo.org/912675
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs/pocl')
-rw-r--r-- | dev-libs/pocl/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/pocl/pocl-4.0.ebuild | 112 |
2 files changed, 113 insertions, 0 deletions
diff --git a/dev-libs/pocl/Manifest b/dev-libs/pocl/Manifest index 014e89f51635..71518dab3615 100644 --- a/dev-libs/pocl/Manifest +++ b/dev-libs/pocl/Manifest @@ -1 +1,2 @@ DIST pocl-3.1.tar.gz 1928607 BLAKE2B 7044a96e361426408fabd973987a0d6956693e3c9095769ee94d7dac47a8841d7489933e94acd22451a1c8a2ca83cb8e6948aebe899b23a8a6080ef1b7b37e9c SHA512 40d17e81d715f6897aa1d97fd02834d45227d9d0bd4c70e76d727f9ad4df675c25b7158a862e20e63810182fdad82a3cb1e454668c3a6422a977e59c8325fa0c +DIST pocl-4.0.tar.gz 2140919 BLAKE2B 1e9dd4de4824dd4a9e2b0d053d1786062c135d3bf7ca99dc884657b89c651fca6c0f3dedb568439802a58b0bfabc10939ca344b0110ae5fdb31be06f596d2a48 SHA512 3835a9e8fc8562d50a91a11b807cf87a096891f5c27675127b66412eacff2e541b6143b49b4155f43a09f4e53faa062ec20f3b20badeca206ece9f45ad50f26a diff --git a/dev-libs/pocl/pocl-4.0.ebuild b/dev-libs/pocl/pocl-4.0.ebuild new file mode 100644 index 000000000000..cce413824dc1 --- /dev/null +++ b/dev-libs/pocl/pocl-4.0.ebuild @@ -0,0 +1,112 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LLVM_MAX_SLOT=16 +inherit cmake llvm + +DESCRIPTION="Portable Computing Language (an implementation of OpenCL)" +HOMEPAGE="http://portablecl.org https://github.com/pocl/pocl" +SRC_URI="https://github.com/pocl/pocl/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~ppc64" +# TODO: hsa tce +IUSE="accel +conformance cuda debug examples float-conversion hardening +hwloc memmanager lto test" +# Tests not yet passing, fragile in Portage environment(?) +RESTRICT="!test? ( test ) test" + +# TODO: add dependencies for cuda +# Note: No := on LLVM because it pulls in Clang +# see llvm.eclass for why +CLANG_DEPS=" + !cuda? ( <sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):= ) + cuda? ( <sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):=[llvm_targets_NVPTX] ) +" +RDEPEND=" + dev-libs/libltdl + <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):* + virtual/opencl + + ${CLANG_DEPS} + debug? ( dev-util/lttng-ust:= ) + hwloc? ( sys-apps/hwloc:=[cuda?] ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + ${CLANG_DEPS} + virtual/pkgconfig +" + +llvm_check_deps() { + local usedep=$(usev cuda "[llvm_targets_NVPTX]") + + # Clang is used at both build time (executed) and runtime + has_version -r "sys-devel/llvm:${LLVM_SLOT}${usedep}" && \ + has_version -r "sys-devel/clang:${LLVM_SLOT}${usedep}" && \ + has_version -b "sys-devel/clang:${LLVM_SLOT}${usedep}" +} + +src_configure() { + local host_cpu_variants="generic" + + if use amd64 ; then + # Use pocl's curated list of CPU variants which should contain a good match for any given amd64 CPU + host_cpu_variants="distro" + elif use ppc64 ; then + # A selection of architectures in which new Altivec / VSX features were added + # This attempts to recreate the amd64 "distro" option for ppc64 + # See discussion in bug #831859 + host_cpu_variants="pwr10;pwr9;pwr8;pwr7;pwr6;g5;a2;generic" + fi + + local mycmakeargs=( + -DENABLE_HSA=OFF + + -DENABLE_ICD=ON + -DPOCL_ICD_ABSOLUTE_PATH=ON + -DPOCL_INSTALL_PUBLIC_LIBDIR="${EPREFIX}/usr/$(get_libdir)/OpenCL/vendors/pocl" + + -DENABLE_IPO=$(usex lto) + + -DENABLE_POCL_BUILDING=ON + -DKERNELLIB_HOST_CPU_VARIANTS="${host_cpu_variants}" + + -DSTATIC_LLVM=OFF + -DWITH_LLVM_CONFIG=$(get_llvm_prefix -d "${LLVM_MAX_SLOT}")/bin/llvm-config + + -DENABLE_ALMAIF_DEVICE=$(usex accel) + -DENABLE_CONFORMANCE=$(usex conformance) + -DENABLE_CUDA=$(usex cuda) + -DENABLE_HWLOC=$(usex hwloc) + -DENABLE_POCL_FLOAT_CONVERSION=$(usex float-conversion) + -DHARDENING_ENABLE=$(usex hardening) + -DPOCL_DEBUG_MESSAGES=$(usex debug) + -DUSE_POCL_MEMMANAGER=$(usex memmanager) + -DENABLE_TESTS=$(usex test) + ) + + cmake_src_configure +} + +src_test() { + export POCL_BUILDING=1 + export POCL_DEVICES=basic + export CTEST_OUTPUT_ON_FAILURE=1 + export TEST_VERBOSE=1 + + # Referenced https://github.com/pocl/pocl/blob/master/.drone.yml + # But couldn't seem to get tests working yet + cmake_src_test +} + +src_install() { + cmake_src_install + + if use examples; then + dodoc -r examples + docompress -x /usr/share/doc/${P}/examples + fi +} |