commit:     b6a9fc70464eeb344a190c0510cfa5b1d30e601f
Author:     Larry D. Pyeatt <larry.pyeatt <AT> sdsmt <DOT> edu>
AuthorDate: Sat May 21 16:53:38 2022 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Sun May 22 11:49:55 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b6a9fc70

sci-libs/clblast: Fixed error when building with CUDA enabled.

Closes: https://github.com/gentoo/gentoo/pull/25590
Signed-off-by: Larry D. Pyeatt <larry.pyeatt <AT> sdsmt.edu>
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 sci-libs/clblast/clblast-1.5.2-r1.ebuild  | 66 +++++++++++++++++++++++++++++++
 sci-libs/clblast/files/level2_xtrsv.patch | 14 +++++++
 sci-libs/clblast/files/level3_xtrsv.patch | 14 +++++++
 3 files changed, 94 insertions(+)

diff --git a/sci-libs/clblast/clblast-1.5.2-r1.ebuild 
b/sci-libs/clblast/clblast-1.5.2-r1.ebuild
new file mode 100644
index 000000000000..604dd3d840e1
--- /dev/null
+++ b/sci-libs/clblast/clblast-1.5.2-r1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+MYPN="CLBlast"
+
+DESCRIPTION="Tuned OpenCL BLAS"
+HOMEPAGE="https://github.com/CNugteren/CLBlast";
+SRC_URI="https://github.com/CNugteren/${MYPN}/archive/refs/tags/${PV}.tar.gz 
-> ${P}.tar.gz"
+S="${WORKDIR}/${MYPN}-${PV}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+# Cuda is still beta, default to opencl
+IUSE="client cuda examples +opencl test"
+REQUIRED_USE="
+       ^^ ( cuda opencl )
+       test? ( client )
+"
+# Tests require write access to /dev/dri/renderD...
+RESTRICT="test"
+# RESTRICT="!test? ( test )"
+
+RDEPEND="
+       cuda? ( dev-util/nvidia-cuda-toolkit:= )
+       client? ( virtual/cblas )
+       opencl? ( virtual/opencl )
+"
+
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}"/level2_xtrsv.patch
+       "${FILESDIR}"/level3_xtrsv.patch
+)
+
+src_prepare() {
+       # no forced optimisation, libdir
+       sed -e 's/-O3//g' \
+               -e 's/DESTINATION lib/DESTINATION ${CMAKE_INSTALL_LIBDIR}/g' \
+               -i CMakeLists.txt || die
+       cmake_src_prepare
+}
+
+src_configure() {
+       mycmakeargs+=(
+               -DBUILD_SHARED_LIBS=ON
+               -DSAMPLES="$(usex examples)"
+               -DCLIENTS="$(usex client)"
+               -DNETLIB="$(usex client)"
+               -DTESTS="$(usex test)"
+               -DOPENCL="$(usex opencl)"
+               -DCUDA="$(usex cuda)"
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+       dodoc README.md ROADMAP.md CONTRIBUTING.md CHANGELOG
+       dodoc -r doc
+}

diff --git a/sci-libs/clblast/files/level2_xtrsv.patch 
b/sci-libs/clblast/files/level2_xtrsv.patch
new file mode 100644
index 000000000000..c1e5890c986b
--- /dev/null
+++ b/sci-libs/clblast/files/level2_xtrsv.patch
@@ -0,0 +1,14 @@
+This fixes a bug in the upstream code.  There is an extra argument in
+the call to the x_buffer.CopyToAsync function that must be removed. Otherwise
+the build fails when CUDA is enabled.
+--- CLBlast/src/routines/level2/xtrsv.cpp      2022-05-21 08:44:13.811816246 
-0600
++++ CLBlast_fixed/src/routines/level2/xtrsv.cpp        2022-05-21 
08:28:34.601124921 -0600
+@@ -154,7 +154,7 @@
+   }
+ 
+   // Retrieves the results
+-  x_buffer.CopyToAsync(queue_, x_size, b_buffer, event_);
++  x_buffer.CopyToAsync(queue_, x_size, b_buffer);
+ }
+ 
+ // 
=================================================================================================

diff --git a/sci-libs/clblast/files/level3_xtrsv.patch 
b/sci-libs/clblast/files/level3_xtrsv.patch
new file mode 100644
index 000000000000..abba1cd23026
--- /dev/null
+++ b/sci-libs/clblast/files/level3_xtrsv.patch
@@ -0,0 +1,14 @@
+This fixes a problem in the upstream code.  There is an extra argument in
+the call to the x_buffer.CopyToAsync function that must be removed. Otherwise
+the build fails when CUDA is enabled.
+--- CLBlast/src/routines/level3/xtrsm.cpp      2022-05-21 08:44:13.815816361 
-0600
++++ CLBlast_fixed/src/routines/level3/xtrsm.cpp        2022-05-21 
08:28:06.756355738 -0600
+@@ -246,7 +246,7 @@
+   }
+ 
+   // Retrieves the results
+-  x_buffer.CopyToAsync(queue_, b_size, b_buffer, event_);
++  x_buffer.CopyToAsync(queue_, b_size, b_buffer);
+ }
+ 
+ // 
=================================================================================================

Reply via email to