1 |
commit: 40454aa7ee06f6f6bab999d9a23a29a3c2cce096 |
2 |
Author: Marek Szuba <marecki <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Jan 25 14:50:30 2017 +0000 |
4 |
Commit: Marek Szuba <marecki <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Jan 25 14:51:07 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=40454aa7 |
7 |
|
8 |
dev-libs/beignet: bump to 1.3.0 |
9 |
|
10 |
Features optional OpenCL 2.0 support on Skylake and newer architectures (mostly |
11 |
experimental, with large parts still simulated in software rather than |
12 |
delegated to the GPU), moreover Python scripts executed at build time are now |
13 |
python3-compatible. |
14 |
|
15 |
Package-Manager: portage-2.3.0 |
16 |
|
17 |
dev-libs/beignet/Manifest | 1 + |
18 |
dev-libs/beignet/beignet-1.3.0.ebuild | 105 +++++++++++++++++++++ |
19 |
.../beignet-1.3.0-ocl20_no_platform_check.patch | 21 +++++ |
20 |
.../beignet-1.3.0-oclicd_optional_gentoo.patch | 23 +++++ |
21 |
dev-libs/beignet/metadata.xml | 2 + |
22 |
5 files changed, 152 insertions(+) |
23 |
|
24 |
diff --git a/dev-libs/beignet/Manifest b/dev-libs/beignet/Manifest |
25 |
index a004d8b..5319fe6 100644 |
26 |
--- a/dev-libs/beignet/Manifest |
27 |
+++ b/dev-libs/beignet/Manifest |
28 |
@@ -1,3 +1,4 @@ |
29 |
DIST beignet-1.1.2-source.tar.gz 948241 SHA256 6a8d875afbb5e3c4fc57da1ea80f79abadd9136bfd87ab1f83c02784659f1d96 SHA512 25b7118976c385ad3b9db01afd3c9494ff9d050d44ee4266042abb4215747d8bb5086c06697f754956f562ea2b6e5ec51d51bbd651e8cd7cd0eb14eb8c83fbd4 WHIRLPOOL c3bfb7f4fa3c97bbd202ace868a08dce48753cac547b075e4c30cfff21cffcc5520ef4ef77b4e15fa8574a798f41a920e44503a160a1888e9ee4f2a737b37e82 |
30 |
DIST beignet-1.2.0-source.tar.gz 1076674 SHA256 fc7af19efb7596b04510d26c558a576eba3e95e1ef86fd6951213c6a4bf58bff SHA512 f6c0de7d6a301352125d53c843d8c4a9728526b06b215093424720e7c17eb99f8cfc4b70c61e035d5cb36ca7666c6e772fe0d7818d91421104fa1ed350d637f1 WHIRLPOOL 9ac0195b16ff0ed186dbc5e0bfb6ee3027d0426d7e2401238b69b934a010d365eb6941cd80e3650e600cbcac8d31f819e2adb67452394b07a903aad72c1e11d7 |
31 |
DIST beignet-1.2.1-source.tar.gz 1080590 SHA256 b74eb03534a12b86a896cdbd8209b072c8a38e7af456195793a498428a7ac81f SHA512 f0d0d0590be1624928d9ee1a0666f49d908eff1ee9c1a7a28c4e680523419e544f607899bcfdae7f4ce5d32d411739afb481c0c22383db4a7381ccc71326e7f2 WHIRLPOOL 74bb72220e865406100a232fd8755b37746acf3616adbc7c66389a7a7ef3d7ca959ea1234d167091161019c1c3fc0fb9b877fc70af695bd2d2bb232c83725322 |
32 |
+DIST beignet-1.3.0-source.tar.gz 1133643 SHA256 63d98b4fe8fba3dbc0299d29fef84560625e5ac51b16b8fed453021d4afb5cd5 SHA512 7eb3c8bca484462787a6b4d360059b63608305b171e33078f1b65dcbcbf6831bcca95e762af3f4f0b9c99449c7d607e63ea138149b9f3a854d7017df927aa7ee WHIRLPOOL cbaa92f67a5f53b3d3243dd08c9a680c734b732601667a40ba147023fa96c0b4f78794f76011ab172c66265ad4bf0eddd5b6b301fc0a67790dc3d30c23d7ec83 |
33 |
|
34 |
diff --git a/dev-libs/beignet/beignet-1.3.0.ebuild b/dev-libs/beignet/beignet-1.3.0.ebuild |
35 |
new file mode 100644 |
36 |
index 00000000..e06da21 |
37 |
--- /dev/null |
38 |
+++ b/dev-libs/beignet/beignet-1.3.0.ebuild |
39 |
@@ -0,0 +1,105 @@ |
40 |
+# Copyright 1999-2017 Gentoo Foundation |
41 |
+# Distributed under the terms of the GNU General Public License v2 |
42 |
+# $Id$ |
43 |
+ |
44 |
+EAPI=6 |
45 |
+ |
46 |
+PYTHON_COMPAT=( python{2_7,3_4,3_5} ) |
47 |
+CMAKE_BUILD_TYPE="Release" |
48 |
+ |
49 |
+inherit python-any-r1 cmake-multilib flag-o-matic toolchain-funcs |
50 |
+ |
51 |
+DESCRIPTION="OpenCL implementation for Intel GPUs" |
52 |
+HOMEPAGE="https://01.org/beignet" |
53 |
+ |
54 |
+LICENSE="LGPL-2.1+" |
55 |
+SLOT="0" |
56 |
+IUSE="ocl-icd ocl20" |
57 |
+ |
58 |
+if [[ "${PV}" == "9999" ]]; then |
59 |
+ inherit git-r3 |
60 |
+ EGIT_REPO_URI="git://anongit.freedesktop.org/beignet" |
61 |
+ KEYWORDS="" |
62 |
+else |
63 |
+ KEYWORDS="~amd64" |
64 |
+ SRC_URI="https://01.org/sites/default/files/${P}-source.tar.gz" |
65 |
+ S=${WORKDIR}/Beignet-${PV}-Source |
66 |
+fi |
67 |
+ |
68 |
+COMMON="${PYTHON_DEPS} |
69 |
+ media-libs/mesa |
70 |
+ sys-devel/clang |
71 |
+ ocl20? ( >=sys-devel/llvm-3.9 >=sys-devel/llvm-3.6 ) |
72 |
+ >=x11-libs/libdrm-2.4.70[video_cards_intel] |
73 |
+ x11-libs/libXext |
74 |
+ x11-libs/libXfixes" |
75 |
+RDEPEND="${COMMON} |
76 |
+ app-eselect/eselect-opencl" |
77 |
+DEPEND="${COMMON} |
78 |
+ ${PYTHON_DEPS} |
79 |
+ ocl-icd? ( dev-libs/ocl-icd ) |
80 |
+ virtual/pkgconfig" |
81 |
+ |
82 |
+PATCHES=( |
83 |
+ "${FILESDIR}"/no-debian-multiarch.patch |
84 |
+ "${FILESDIR}"/${P}-ocl20_no_platform_check.patch |
85 |
+ "${FILESDIR}"/${P}-oclicd_optional_gentoo.patch |
86 |
+ "${FILESDIR}"/${PN}-1.2.0_no-hardcoded-cflags.patch |
87 |
+ "${FILESDIR}"/llvm-terminfo.patch |
88 |
+) |
89 |
+ |
90 |
+DOCS=( |
91 |
+ docs/. |
92 |
+) |
93 |
+ |
94 |
+pkg_pretend() { |
95 |
+ if [[ ${MERGE_TYPE} != "binary" ]]; then |
96 |
+ if tc-is-gcc; then |
97 |
+ if [[ $(gcc-major-version) -eq 4 ]] && [[ $(gcc-minor-version) -lt 6 ]]; then |
98 |
+ eerror "Compilation with gcc older than 4.6 is not supported" |
99 |
+ die "Too old gcc found." |
100 |
+ fi |
101 |
+ fi |
102 |
+ fi |
103 |
+} |
104 |
+ |
105 |
+pkg_setup() { |
106 |
+ python_setup |
107 |
+} |
108 |
+ |
109 |
+src_prepare() { |
110 |
+ # See Bug #593968 |
111 |
+ append-flags -fPIC |
112 |
+ |
113 |
+ cmake-utils_src_prepare |
114 |
+ # We cannot run tests because they require permissions to access |
115 |
+ # the hardware, and building them is very time-consuming. |
116 |
+ cmake_comment_add_subdirectory utests |
117 |
+} |
118 |
+ |
119 |
+multilib_src_configure() { |
120 |
+ VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}" |
121 |
+ |
122 |
+ local mycmakeargs=( |
123 |
+ -DCMAKE_INSTALL_PREFIX="${VENDOR_DIR}" |
124 |
+ -DOCLICD_COMPAT=$(usex ocl-icd) |
125 |
+ -DENABLE_OPENCL_20=$(usex ocl20) |
126 |
+ ) |
127 |
+ |
128 |
+ cmake-utils_src_configure |
129 |
+} |
130 |
+ |
131 |
+multilib_src_install() { |
132 |
+ VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}" |
133 |
+ |
134 |
+ cmake-utils_src_install |
135 |
+ |
136 |
+ insinto /etc/OpenCL/vendors/ |
137 |
+ echo "${VENDOR_DIR}/lib/${PN}/libcl.so" > "${PN}-${ABI}.icd" || die "Failed to generate ICD file" |
138 |
+ doins "${PN}-${ABI}.icd" |
139 |
+ |
140 |
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so.1 |
141 |
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so |
142 |
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so.1 |
143 |
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so |
144 |
+} |
145 |
|
146 |
diff --git a/dev-libs/beignet/files/beignet-1.3.0-ocl20_no_platform_check.patch b/dev-libs/beignet/files/beignet-1.3.0-ocl20_no_platform_check.patch |
147 |
new file mode 100644 |
148 |
index 00000000..d7cd8ed |
149 |
--- /dev/null |
150 |
+++ b/dev-libs/beignet/files/beignet-1.3.0-ocl20_no_platform_check.patch |
151 |
@@ -0,0 +1,21 @@ |
152 |
+--- a/CMakeLists.txt |
153 |
++++ b/CMakeLists.txt |
154 |
+@@ -215,18 +215,6 @@ |
155 |
+ |
156 |
+ OPTION(ENABLE_OPENCL_20 "Enable opencl 2.0 support" OFF) |
157 |
+ IF (ENABLE_OPENCL_20) |
158 |
+- Find_Program(LSPCI lspci) |
159 |
+- IF (NOT LSPCI) |
160 |
+- MESSAGE(FATAL_ERROR "Looking for lspci - not found") |
161 |
+- ENDIF (NOT LSPCI) |
162 |
+- EXECUTE_PROCESS(COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/GetGenID.sh" |
163 |
+- RESULT_VARIABLE SUPPORT_OCL20_DEVICE |
164 |
+- OUTPUT_VARIABLE PCI_ID_NOT_USED) |
165 |
+- |
166 |
+- IF (NOT SUPPORT_OCL20_DEVICE EQUAL 1) |
167 |
+- MESSAGE(FATAL_ERROR "Only SKL and newer devices support OpenCL 2.0 now, your device don't support.") |
168 |
+- ENDIF (NOT SUPPORT_OCL20_DEVICE EQUAL 1) |
169 |
+- |
170 |
+ IF (NOT HAVE_DRM_INTEL_BO_SET_SOFTPIN) |
171 |
+ MESSAGE(FATAL_ERROR "Please update libdrm to version 2.4.66 or later to enable OpenCL 2.0.") |
172 |
+ ENDIF (NOT HAVE_DRM_INTEL_BO_SET_SOFTPIN) |
173 |
|
174 |
diff --git a/dev-libs/beignet/files/beignet-1.3.0-oclicd_optional_gentoo.patch b/dev-libs/beignet/files/beignet-1.3.0-oclicd_optional_gentoo.patch |
175 |
new file mode 100644 |
176 |
index 00000000..b51af16 |
177 |
--- /dev/null |
178 |
+++ b/dev-libs/beignet/files/beignet-1.3.0-oclicd_optional_gentoo.patch |
179 |
@@ -0,0 +1,23 @@ |
180 |
+--- a/CMakeLists.txt |
181 |
++++ b/CMakeLists.txt |
182 |
+@@ -197,17 +197,15 @@ |
183 |
+ ENDIF(EGL_FOUND) |
184 |
+ ENDIF(ENABLE_GL_SHARING) |
185 |
+ |
186 |
++OPTION(OCLICD_COMPAT "OCL ICD compatibility mode" ON) |
187 |
++IF(OCLICD_COMPAT) |
188 |
+ Find_Package(OCLIcd) |
189 |
+ IF(OCLIcd_FOUND) |
190 |
+ MESSAGE(STATUS "Looking for OCL ICD header file - found") |
191 |
+- configure_file ( |
192 |
+- "intel-beignet.icd.in" |
193 |
+- "${ICD_FILE_NAME}" |
194 |
+- ) |
195 |
+- install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${ICD_FILE_NAME} DESTINATION /etc/OpenCL/vendors) |
196 |
+ ELSE(OCLIcd_FOUND) |
197 |
+ MESSAGE(STATUS "Looking for OCL ICD header file - not found") |
198 |
+ ENDIF(OCLIcd_FOUND) |
199 |
++ENDIF(OCLICD_COMPAT) |
200 |
+ |
201 |
+ Find_Package(PythonInterp) |
202 |
+ |
203 |
|
204 |
diff --git a/dev-libs/beignet/metadata.xml b/dev-libs/beignet/metadata.xml |
205 |
index 27418e8..917f7f9 100644 |
206 |
--- a/dev-libs/beignet/metadata.xml |
207 |
+++ b/dev-libs/beignet/metadata.xml |
208 |
@@ -8,5 +8,7 @@ |
209 |
<use> |
210 |
<flag name="ocl-icd">Enable compatibility with the |
211 |
<pkg>dev-libs/ocl-icd</pkg> OpenCL ICD loader</flag> |
212 |
+ <flag name="ocl20">Enable experimental OpenCL 2.0 support on Skylake |
213 |
+ and newer architectures</flag> |
214 |
</use> |
215 |
</pkgmetadata> |