diff options
author | James Le Cuirot <chewi@gentoo.org> | 2021-05-29 15:41:28 +0100 |
---|---|---|
committer | James Le Cuirot <chewi@gentoo.org> | 2021-05-29 15:43:32 +0100 |
commit | d19af2426ace8a0bbc48ee64c042ef15a18f29ea (patch) | |
tree | 7fbe5225b9d90e49a73d0693d538a03c9d077e89 | |
parent | dev-libs/ocl-icd: Pin opencl-headers on 2.2.12 to compatible version (diff) | |
download | gentoo-d19af2426ace8a0bbc48ee64c042ef15a18f29ea.tar.gz gentoo-d19af2426ace8a0bbc48ee64c042ef15a18f29ea.tar.bz2 gentoo-d19af2426ace8a0bbc48ee64c042ef15a18f29ea.zip |
dev-libs/ocl-icd: Version bump to 2.3.0
This is compatible with the new OpenCL headers.
Closes: https://bugs.gentoo.org/789558
Package-Manager: Portage-3.0.19, Repoman-3.0.3
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
-rw-r--r-- | dev-libs/ocl-icd/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/ocl-icd/files/ocl-icd-2.3.0-new-headers.patch | 94 | ||||
-rw-r--r-- | dev-libs/ocl-icd/ocl-icd-2.3.0.ebuild | 61 |
3 files changed, 156 insertions, 0 deletions
diff --git a/dev-libs/ocl-icd/Manifest b/dev-libs/ocl-icd/Manifest index 8b60ba9e2d39..50148b966278 100644 --- a/dev-libs/ocl-icd/Manifest +++ b/dev-libs/ocl-icd/Manifest @@ -1,2 +1,3 @@ DIST ocl-icd-2.2.12.tar.gz 80718 BLAKE2B 524f9eea9782323eafa2f41858c4970333c029898c651bbf15624331e184d1b439d2259532b02defd67c9ab434a35b1b9a64a28e1515b3f42f09b3a270975df7 SHA512 f1668c3a39ecfbc089ee5a5f61f44ceb86ab80e504e58064dec306ce907daf77936c5403b4af15ed8714068891d68346c86725f285cfbc90c4fcb35d18db4048 DIST ocl-icd-2.2.14.tar.gz 100629 BLAKE2B 4862560541c979edb06d89f7f57b78a34c02e38843c02b0f125a121649cd6a33570e29c86fe7d3fd6f0fa3d489831777100daef97264e32b82854384075cbbf2 SHA512 78510b6fa4e2c6a52141a51ccf0d0ef3110b0b4902a43bb97f7622ff0ce470b108dc05c9619c28ce8758ccea1e1cf6b2e7f1a296f8b07f52532f23b2b036a5cf +DIST ocl-icd-2.3.0.tar.gz 100848 BLAKE2B b9e5b78df63f4865bb4cb3623fbc6bd336c86b4a9e1f23a29fab1cf11f848cb20d6d8d4a480ff44e442b02d606247a923798143058256ef59c2b16c9daf7098d SHA512 003f3661b7086a7364e79d1058591f12a7095aa2c3decfc4b496f00a0863a91cd81080f33b9308e3948045f8aca5856868ed2725f478654230e51a60d654e613 diff --git a/dev-libs/ocl-icd/files/ocl-icd-2.3.0-new-headers.patch b/dev-libs/ocl-icd/files/ocl-icd-2.3.0-new-headers.patch new file mode 100644 index 000000000000..aa35c96ccda6 --- /dev/null +++ b/dev-libs/ocl-icd/files/ocl-icd-2.3.0-new-headers.patch @@ -0,0 +1,94 @@ +From aed1832c81c0971ea001e12d41e04df834257f94 Mon Sep 17 00:00:00 2001 +From: Brice Videau <bvideau@anl.gov> +Date: Wed, 12 May 2021 10:24:44 -0500 +Subject: [PATCH] Updated to support latest Khronos headers. + +--- + icd_generator.rb | 4 +- + khronos-headers/CL/cl.h | 46 +-- + khronos-headers/CL/cl_d3d10.h | 12 +- + khronos-headers/CL/cl_d3d11.h | 12 +- + khronos-headers/CL/cl_dx9_media_sharing.h | 32 +- + khronos-headers/CL/cl_egl.h | 8 +- + khronos-headers/CL/cl_ext.h | 228 +++++++++---- + khronos-headers/CL/cl_gl.h | 22 +- + khronos-headers/CL/cl_gl_ext.h | 26 +- + khronos-headers/CL/cl_icd.h | 316 +++++++++--------- + khronos-headers/CL/cl_layer.h | 4 +- + khronos-headers/CL/cl_platform.h | 125 ++++--- + .../CL/cl_va_api_media_sharing_intel.h | 24 +- + khronos-headers/CL/opencl.h | 3 +- + ocl_interface.yaml | 10 +- + run_dummy_icd.c | 1 - + 16 files changed, 484 insertions(+), 389 deletions(-) + +diff --git a/icd_generator.rb b/icd_generator.rb +index bb0f2e9..ed4217f 100644 +--- a/icd_generator.rb ++++ b/icd_generator.rb +@@ -57,7 +57,7 @@ module IcdGenerator + "clGetGLContextInfoKHR", "clUnloadCompiler", + "clCreateContext", "clCreateContextFromType", "clWaitForEvents"] + $header_files = ["/usr/include/CL/cl.h", "/usr/include/CL/cl_gl.h", "/usr/include/CL/cl_egl.h", +- "/usr/include/CL/cl_ext.h", "/usr/include/CL/cl_gl_ext.h"] ++ "/usr/include/CL/cl_ext.h"] + $windows_header_files = ["/usr/include/CL/cl_dx9_media_sharing.h", "/usr/include/CL/cl_d3d11.h", "/usr/include/CL/cl_d3d10.h"] + $cl_data_type_error = { "cl_platform_id" => "CL_INVALID_PLATFORM", + "cl_device_id" => "CL_INVALID_DEVICE", +@@ -246,7 +246,7 @@ def self.generate_run_dummy_icd_source + run_dummy_icd += "\n\n" + $api_entries.each_key { |func_name| + next if $forbidden_funcs.include?(func_name) +- run_dummy_icd += $api_entries[func_name]+";\n" ++ run_dummy_icd += $api_entries[func_name]+"\n" + } + run_dummy_icd += "\n\n" + run_dummy_icd += "void call_all_OpenCL_functions(cl_platform_id chosen_platform) {\n" +diff --git a/ocl_interface.yaml b/ocl_interface.yaml +index 1e80f16..43a0e59 100644 +--- a/ocl_interface.yaml ++++ b/ocl_interface.yaml +@@ -674,18 +674,18 @@ + const cl_device_partition_property_ext * /* properties */, + cl_uint /*num_entries*/, + cl_device_id * /*out_devices*/, +- cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; ++ cl_uint * /*num_devices*/ ) CL_API_SUFFIX__VERSION_1_1; + 90: |- + CL_API_ENTRY cl_int CL_API_CALL +- clRetainDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; ++ clRetainDeviceEXT( cl_device_id /*device*/ ) CL_API_SUFFIX__VERSION_1_1; + 91: |- + CL_API_ENTRY cl_int CL_API_CALL +- clReleaseDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; ++ clReleaseDeviceEXT( cl_device_id /*device*/ ) CL_API_SUFFIX__VERSION_1_1; + 92: |- + CL_API_ENTRY cl_event CL_API_CALL + clCreateEventFromGLsyncKHR(cl_context /* context */, + cl_GLsync /* cl_GLsync */, +- cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1; ++ cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_1; + 93: |- + CL_API_ENTRY cl_int CL_API_CALL + clCreateSubDevices(cl_device_id /* in_device */, +@@ -1016,7 +1016,7 @@ + const void * /*input_value*/, + size_t /*param_value_size*/, + void* /*param_value*/, +- size_t* /*param_value_size_ret*/ ) CL_EXT_SUFFIX__VERSION_2_0; ++ size_t* /*param_value_size_ret*/ ) CL_API_SUFFIX__VERSION_2_0; + 137: |- + CL_API_ENTRY cl_kernel CL_API_CALL + clCloneKernel(cl_kernel /* source_kernel */, +diff --git a/run_dummy_icd.c b/run_dummy_icd.c +index 400c1b0..c064b19 100644 +--- a/run_dummy_icd.c ++++ b/run_dummy_icd.c +@@ -39,7 +39,6 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + # include <CL/cl_gl.h> + # include <CL/cl_egl.h> + # include <CL/cl_ext.h> +-# include <CL/cl_gl_ext.h> + #pragma GCC diagnostic pop + #include <string.h> + #include "ocl_icd_debug.h" diff --git a/dev-libs/ocl-icd/ocl-icd-2.3.0.ebuild b/dev-libs/ocl-icd/ocl-icd-2.3.0.ebuild new file mode 100644 index 000000000000..3a274d0c1685 --- /dev/null +++ b/dev-libs/ocl-icd/ocl-icd-2.3.0.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +USE_RUBY="ruby25 ruby26 ruby27 ruby30" +inherit autotools flag-o-matic multilib-minimal ruby-single + +DESCRIPTION="Alternative to vendor specific OpenCL ICD loaders" +HOMEPAGE="https://github.com/OCL-dev/ocl-icd" +SRC_URI="https://github.com/OCL-dev/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +# Does nothing now but by keeping it here we avoid having to have virtual/opencl +# handle ebuilds both with and without this flag. +IUSE="+khronos-headers" + +BDEPEND="${RUBY_DEPS}" +DEPEND=">=dev-util/opencl-headers-2021.04.29" +RDEPEND="${DEPEND} + !app-eselect/eselect-opencl + !dev-libs/opencl-icd-loader" + +PATCHES=( + "${FILESDIR}"/${P}-new-headers.patch +) + +src_prepare() { + replace-flags -Os -O2 # bug 646122 + + default + eautoreconf +} + +multilib_src_configure() { + # dev-util/opencl-headers ARE official Khronos Group headers, what this option + # does is disable the use of the bundled ones + ECONF_SOURCE="${S}" econf --enable-pthread-once --disable-official-khronos-headers +} + +multilib_src_compile() { + local candidates=(${USE_RUBY}) + local ruby= + for (( idx=${#candidates[@]}-1 ; idx>=0 ; idx-- )) ; do + if ${candidates[idx]} --version &> /dev/null; then + ruby=${candidates[idx]} && break + fi + done + [[ -z ${ruby} ]] && die "No ruby executable found" + + emake RUBY=${ruby} +} + +multilib_src_install() { + default + + # Drop .la files + find "${ED}" -name '*.la' -delete || die +} |