public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andrew Ammerlaan" <andrewammerlaan@riseup.net>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:master commit in: dev-libs/pocl/files/, dev-libs/pocl/
Date: Fri, 14 May 2021 17:17:09 +0000 (UTC)	[thread overview]
Message-ID: <1620955666.ae1a20ab64b2b032794c1543b707445d17b49a7d.andrewammerlaan@gentoo> (raw)

commit:     ae1a20ab64b2b032794c1543b707445d17b49a7d
Author:     Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
AuthorDate: Fri May 14 01:27:07 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Fri May 14 01:27:46 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=ae1a20ab

dev-libs/pocl: initial import

Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>

 dev-libs/pocl/Manifest                             |  1 +
 .../pocl/files/vendor_opencl_libs_location.patch   | 20 +++++
 dev-libs/pocl/metadata.xml                         | 30 ++++++++
 dev-libs/pocl/pocl-1.6.ebuild                      | 87 ++++++++++++++++++++++
 4 files changed, 138 insertions(+)

diff --git a/dev-libs/pocl/Manifest b/dev-libs/pocl/Manifest
new file mode 100644
index 000000000..0be7d35d8
--- /dev/null
+++ b/dev-libs/pocl/Manifest
@@ -0,0 +1 @@
+DIST pocl-1.6.tar.gz 1595212 BLAKE2B ee628ec466df03c44f02235c78b516aeea0e02f82ce095cd798d6d4d4cf81773adf16493837306243ac7e0de58b2ccfbdcfb3a63ff8e287f6c83c58160811712 SHA512 ecd3a3867a62a2a555183741fa4586eeefae00514d66d15a79b9094ff0a0248b213f62ab23b3e61bdb1042e760cd34b07e546f97b304ac86c3f861a9161df1b1

diff --git a/dev-libs/pocl/files/vendor_opencl_libs_location.patch b/dev-libs/pocl/files/vendor_opencl_libs_location.patch
new file mode 100644
index 000000000..548589ca4
--- /dev/null
+++ b/dev-libs/pocl/files/vendor_opencl_libs_location.patch
@@ -0,0 +1,20 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -125,7 +125,7 @@
+ endif()
+ 
+ # for libpocl.so
+-set(POCL_INSTALL_PUBLIC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" CACHE PATH "POCL public libdir")
++set(POCL_INSTALL_PUBLIC_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/OpenCL/vendors/pocl" CACHE PATH "POCL public libdir")
+ 
+ # for llvmopencl.so
+ set(POCL_INSTALL_PRIVATE_LIBDIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pocl" CACHE PATH "POCL private libdir")
+@@ -134,7 +134,7 @@
+ if(UNIX AND NOT CMAKE_CROSSCOMPILING AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+   set(POCL_INSTALL_ICD_VENDORDIR "/etc/OpenCL/vendors" CACHE PATH "POCL ICD file destination")
+ else()
+-  set(POCL_INSTALL_ICD_VENDORDIR "${CMAKE_INSTALL_PREFIX}/etc/OpenCL/vendors" CACHE PATH "POCL ICD file destination")
++  set(POCL_INSTALL_ICD_VENDORDIR "${SYSCONFDIR}/etc/OpenCL/vendors" CACHE PATH "POCL ICD file destination")
+ endif()
+ 
+ # for kernel-<target>.bc

diff --git a/dev-libs/pocl/metadata.xml b/dev-libs/pocl/metadata.xml
new file mode 100644
index 000000000..5070dbc08
--- /dev/null
+++ b/dev-libs/pocl/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+	<maintainer type="person">
+		<description>comaintainers welcome</description>
+		<email>lssndrbarbieri@gmail.com</email>
+		<name>Alessandro Barbieri</name>
+	</maintainer>
+	<longdescription lang="en">
+PoCL is a portable open source (MIT-licensed) implementation of the OpenCL standard (1.2 with some 2.0 features supported). In addition to being an easily portable multi-device (truely heterogeneous) open-source OpenCL implementation, a major goal of this project is improving interoperability of diversity of OpenCL-capable devices by integrating them to a single centrally orchestrated platform. Also one of the key goals longer term is to enhance performance portability of OpenCL programs across device types utilizing runtime and compiler techniques.
+
+Upstream PoCL currently supports various CPUs, NVIDIA GPUs via libcuda, HSA-supported GPUs and TCE ASIPs (experimental, see: OpenASIP). It is also known to have multiple (private) adaptations in active production use.
+
+PoCL uses Clang as an OpenCL C frontend and LLVM for kernel compiler implementation, and as a portability layer. Thus, if your desired target has an LLVM backend, it should be able to get OpenCL support easily by using PoCL.
+	</longdescription>
+	<upstream>
+		<remote-id type="github">pocl/pocl</remote-id>
+	</upstream>
+	<use>
+		<flag name="accel">Enable the generic hardware accelerator device driver</flag>
+		<flag name="cl20">Enable reporting OpenCL 2.0 for the CPU device</flag>
+		<flag name="conformance">Ensures that certain build options which would result in non-conformant pocl build stay disabled. Note that this does not quarantee a fully conformant build of pocl by itself</flag>
+		<flag name="cuda">Enable the CUDA backend for NVIDIA GPUs</flag>
+		<flag name="float-conversion">When enabled, OpenCL printf() call's f/e/g formatters are handled by pocl. When disabled, these are handled by system C library.</flag>
+		<flag name="hardening">Enable hardening against various attacks. May worsen performance</flag>
+		<!--<flag name="hsa">Enable the HSA base profile runtime device driver</flag>-->
+		<flag name="hwloc">Enable hwloc support</flag>
+		<flag name="memmanager">Enables custom memory manager. Except for special circumstances, this should be disabled</flag>
+	</use>
+</pkgmetadata>

diff --git a/dev-libs/pocl/pocl-1.6.ebuild b/dev-libs/pocl/pocl-1.6.ebuild
new file mode 100644
index 000000000..cef334945
--- /dev/null
+++ b/dev-libs/pocl/pocl-1.6.ebuild
@@ -0,0 +1,87 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+DOCS_AUTODOC=0
+DOCS_BUILDER="sphinx"
+DOCS_DIR="doc/sphinx/source"
+PYTHON_COMPAT=( python3_{7..9} )
+
+inherit cmake llvm python-any-r1 docs
+
+LLVM_MAX_SLOT=11
+
+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"
+IUSE="accel cl20 +conformance cuda debug examples float-conversion hardening +hwloc memmanager" #hsa tce
+
+#TODO: add dependencies for cuda
+RDEPEND="
+	dev-libs/libltdl
+	sys-devel/llvm:${LLVM_MAX_SLOT}
+	virtual/opencl
+
+	!cuda? ( sys-devel/clang:${LLVM_MAX_SLOT} )
+	cuda? ( sys-devel/clang:${LLVM_MAX_SLOT}[llvm_targets_NVPTX] )
+	debug? ( dev-util/lttng-ust )
+	hwloc? ( sys-apps/hwloc[cuda?] )
+"
+DEPEND="
+	${RDEPEND}
+	doc? ( $(python_gen_any_dep '<dev-python/markupsafe-2.0[${PYTHON_USEDEP}]') )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}/vendor_opencl_libs_location.patch" )
+
+src_configure() {
+	llvm_pkg_setup
+	local mycmakeargs=(
+		-DBUILD_SHARED_LIBS=ON
+		-DENABLE_HSA=OFF
+		-DENABLE_ICD=ON
+		-DENABLE_POCL_BUILDING=OFF
+		-DKERNELLIB_HOST_CPU_VARIANTS=native
+		-DPOCL_ICD_ABSOLUTE_PATH=OFF
+		-DSTATIC_LLVM=OFF
+
+		-DENABLE_ACCEL_DEVICE=$(usex accel)
+		-DENABLE_CONFORMANCE=$(usex conformance)
+		-DENABLE_CUDA=$(usex cuda)
+		-DENABLE_HOST_CPU_DEVICE_CL20=$(usex cl20)
+		-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)
+		-DWITH_LLVM_CONFIG=$(get_llvm_prefix "${LLVM_MAX_SLOT}")/bin/llvm-config
+	)
+	cmake_src_configure
+}
+
+src_compile() {
+	cmake_src_compile
+	docs_compile
+}
+
+src_install() {
+	cmake_src_install
+	dodoc CREDITS README CHANGES
+	if use doc; then
+		dodoc -r _build/html
+		docompress -x "/usr/share/doc/${P}/html"
+	fi
+	if use examples; then
+		dodoc -r examples
+		docompress -x "/usr/share/doc/${P}/examples"
+	fi
+}


             reply	other threads:[~2021-05-14 17:17 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-14 17:17 Andrew Ammerlaan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-09-23  6:42 [gentoo-commits] repo/proj/guru:dev commit in: dev-libs/pocl/files/, dev-libs/pocl/ Arthur Zamarin
2021-09-23  6:45 ` [gentoo-commits] repo/proj/guru:master " Arthur Zamarin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1620955666.ae1a20ab64b2b032794c1543b707445d17b49a7d.andrewammerlaan@gentoo \
    --to=andrewammerlaan@riseup.net \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox