commit:     a8e3b1a013be805fff6aa076d62c32f3be86fa9b
Author:     Marek Szuba <marecki <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 13 19:13:29 2020 +0000
Commit:     Marek Szuba <marecki <AT> gentoo <DOT> org>
CommitDate: Sun Sep 13 19:16:56 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a8e3b1a0

dev-util/intel-graphics-compiler: bump to 1.0.4427

This is the newest version that I can build successfully on my system
with VC disabled, all the newer ones fail due to missing bits in IGC
code itself which disabling VectorCompute seems to mask out.

Signed-off-by: Marek Szuba <marecki <AT> gentoo.org>

 dev-util/intel-graphics-compiler/Manifest          |  1 +
 ...piler-1.0.4427-noVC_TranslateBuild_retval.patch | 11 ++++
 .../intel-graphics-compiler-1.0.4427.ebuild        | 72 ++++++++++++++++++++++
 3 files changed, 84 insertions(+)

diff --git a/dev-util/intel-graphics-compiler/Manifest 
b/dev-util/intel-graphics-compiler/Manifest
index bb330148e01..b1dc0c1dfbf 100644
--- a/dev-util/intel-graphics-compiler/Manifest
+++ b/dev-util/intel-graphics-compiler/Manifest
@@ -1 +1,2 @@
 DIST intel-graphics-compiler-1.0.4111.tar.gz 5781246 BLAKE2B 
6fe47422b31b0c73d24c3cef1265772927a57751bf5648f862f7c73528f2174268fdb2271c30c49ab038b4dfbe530bc088fe727e66babc5db0a41759e7212733
 SHA512 
8f589ee83a27b7a8f5abcd008e36a73fb704c20c1ae17e1ef265c59641768b75a0a08f2d6f80355442fff7625154603db3ebe9be0a4ba702b45e85db434f8110
+DIST intel-graphics-compiler-1.0.4427.tar.gz 6454774 BLAKE2B 
283575b301862114f88d1067c8dddec13694cf6a48d335d83434f47a6e95164df9b5ac4385446472ce2b454244308f63b57d7bb3cadfc8acff9472fc48dca2f9
 SHA512 
902aa15cf1b8d1760cf9b4d35848b37c2296601625e1f123f9a059c9a87d80e851525e3d943facf14e011cf82670057dbad3f75774d6dbf5b6cd52b55669ed3c

diff --git 
a/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.4427-noVC_TranslateBuild_retval.patch
 
b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.4427-noVC_TranslateBuild_retval.patch
new file mode 100644
index 00000000000..8822fc54e74
--- /dev/null
+++ 
b/dev-util/intel-graphics-compiler/files/intel-graphics-compiler-1.0.4427-noVC_TranslateBuild_retval.patch
@@ -0,0 +1,11 @@
+--- a/IGC/AdaptorOCL/dllInterfaceCompute.cpp
++++ b/IGC/AdaptorOCL/dllInterfaceCompute.cpp
+@@ -1570,7 +1570,7 @@
+ {
+ #if IGC_VC_DISABLED
+     SetErrorMessage("IGC VC explicitly disabled in build", *pOutputArgs);
+-    return false;
++    return std::error_code(1, std::generic_category());
+ #else
+ 
+     llvm::StringRef ApiOptions{pInputArgs->pOptions, pInputArgs->OptionsSize};

diff --git 
a/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.4427.ebuild 
b/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.4427.ebuild
new file mode 100644
index 00000000000..95942f84f47
--- /dev/null
+++ b/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.4427.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CMAKE_ECLASS=cmake
+
+inherit cmake-multilib flag-o-matic llvm
+
+DESCRIPTION="LLVM-based OpenCL compiler targetting Intel Gen graphics hardware"
+HOMEPAGE="https://github.com/intel/intel-graphics-compiler";
+SRC_URI="https://github.com/intel/${PN}/archive/igc-${PV}.tar.gz -> 
${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="debug"
+
+LLVM_MAX_SLOT=10
+
+# Yes, the last dependency does effectively force the use of llvm-10
+# - there are currently no SLOT=9 ebuilds of opencl-clang with mem2reg
+# support. Of course with there being no SLOT=9 ebuilds of vc-intrinsics
+# (which we'll need soon as well) at all either we are limited to llvm-10 
anyway.
+COMMON="<=sys-devel/llvm-${LLVM_MAX_SLOT}.9999:=[${MULTILIB_USEDEP}]
+       <=dev-libs/opencl-clang-${LLVM_MAX_SLOT}.9999:=[${MULTILIB_USEDEP}]
+       >=dev-libs/opencl-clang-10.0.0.2:=[${MULTILIB_USEDEP}]"
+DEPEND="${COMMON}"
+RDEPEND="${COMMON}"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.0.9-no_Werror.patch
+       "${FILESDIR}"/${PN}-1.0.4111-opencl-clang_version.patch
+       "${FILESDIR}"/${PN}-1.0.4427-noVC_TranslateBuild_retval.patch
+)
+
+S="${WORKDIR}"/${PN}-igc-${PV}
+
+find_best_llvm_slot() {
+       local candidate_slot
+
+       # Select the same slot as the best opencl-clang
+       local ocl_clang_ver="$(best_version -d dev-libs/opencl-clang:=)"
+       einfo "Selecting ${ocl_clang_ver}"
+       candidate_slot=$(ver_cut 5 ${ocl_clang_ver})
+
+       # Sanity check - opencl-clang brings the right LLVM slot as its
+       # dependency so if this is missing, something is very wrong.
+       has_version -d sys-devel/llvm:${candidate_slot} || die "LLVM slot 
matching ${ocl_clang_ver} not found (${candidate_slot})"
+
+       echo ${candidate_slot}
+}
+
+multilib_src_configure() {
+       local llvm_slot=$(find_best_llvm_slot)
+       einfo "Selecting LLVM slot ${llvm_slot}: $(best_version -d 
sys-devel/llvm:${llvm_slot})"
+       local llvm_prefix=$(get_llvm_prefix ${llvm_slot})
+
+       # Since late March 2020 cmake.eclass does not set -DNDEBUG any more, 
and the way
+       # IGC uses this definition causes problems for some users (see Bug 
#718824).
+       use debug || append-cppflags -DNDEBUG
+
+       # VectorCompiler needs work, at the moment upstream only supports 
building vc-intrinsics in place.
+       local mycmakeargs=(
+               -DCCLANG_SONAME_VERSION=${llvm_slot}
+               -DCMAKE_LIBRARY_PATH="${llvm_prefix}"/$(get_libdir)
+               -DIGC_OPTION__FORCE_SYSTEM_LLVM=ON
+               -DIGC_PREFERRED_LLVM_VERSION=${llvm_slot}
+               -DIGC_BUILD__VC_ENABLED=no
+       )
+       cmake_src_configure
+}

Reply via email to