1 |
commit: cd119cad371b2ddd61a50479eacf83e9f7f6efce |
2 |
Author: Marek Szuba <marecki <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Sep 1 09:14:49 2016 +0000 |
4 |
Commit: Marek Szuba <marecki <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri Sep 2 07:37:11 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cd119cad |
7 |
|
8 |
dev-libs/beignet: new package. |
9 |
|
10 |
An OpenCL implementation for Intel GPUs. |
11 |
|
12 |
Multilib-aware, tested with on amd64 with ABI_X86="32 64". Builds with both |
13 |
stable versions of sys-devel/llvm currently in Portage (3.5.0 and 3.7.1-r3). |
14 |
|
15 |
Tests provided by upstream are not run because they require permissions |
16 |
to access the GPU which the Portage user does not have. |
17 |
|
18 |
Gentoo-Bug: 545924 |
19 |
Package-Manager: portage-2.3.0 |
20 |
|
21 |
dev-libs/beignet/Manifest | 1 + |
22 |
dev-libs/beignet/beignet-1.1.2.ebuild | 96 ++++++++++++++++++++++ |
23 |
.../beignet/files/llvm-empty-system-libs.patch | 11 +++ |
24 |
dev-libs/beignet/files/llvm-terminfo.patch | 20 +++++ |
25 |
dev-libs/beignet/files/no-debian-multiarch.patch | 39 +++++++++ |
26 |
dev-libs/beignet/files/no-hardcoded-cflags.patch | 13 +++ |
27 |
dev-libs/beignet/metadata.xml | 8 ++ |
28 |
7 files changed, 188 insertions(+) |
29 |
|
30 |
diff --git a/dev-libs/beignet/Manifest b/dev-libs/beignet/Manifest |
31 |
new file mode 100644 |
32 |
index 00000000..b8b6ac7 |
33 |
--- /dev/null |
34 |
+++ b/dev-libs/beignet/Manifest |
35 |
@@ -0,0 +1 @@ |
36 |
+DIST beignet-1.1.2.tar.gz 948241 SHA256 6a8d875afbb5e3c4fc57da1ea80f79abadd9136bfd87ab1f83c02784659f1d96 SHA512 25b7118976c385ad3b9db01afd3c9494ff9d050d44ee4266042abb4215747d8bb5086c06697f754956f562ea2b6e5ec51d51bbd651e8cd7cd0eb14eb8c83fbd4 WHIRLPOOL c3bfb7f4fa3c97bbd202ace868a08dce48753cac547b075e4c30cfff21cffcc5520ef4ef77b4e15fa8574a798f41a920e44503a160a1888e9ee4f2a737b37e82 |
37 |
|
38 |
diff --git a/dev-libs/beignet/beignet-1.1.2.ebuild b/dev-libs/beignet/beignet-1.1.2.ebuild |
39 |
new file mode 100644 |
40 |
index 00000000..2591bc8 |
41 |
--- /dev/null |
42 |
+++ b/dev-libs/beignet/beignet-1.1.2.ebuild |
43 |
@@ -0,0 +1,96 @@ |
44 |
+# Copyright 1999-2016 Gentoo Foundation |
45 |
+# Distributed under the terms of the GNU General Public License v2 |
46 |
+# $Id$ |
47 |
+ |
48 |
+EAPI=6 |
49 |
+ |
50 |
+PYTHON_COMPAT=( python2_7 ) |
51 |
+CMAKE_BUILD_TYPE="Release" |
52 |
+ |
53 |
+inherit python-any-r1 cmake-multilib |
54 |
+ |
55 |
+DESCRIPTION="OpenCL implementation for Intel GPUs" |
56 |
+HOMEPAGE="https://01.org/beignet" |
57 |
+ |
58 |
+LICENSE="LGPL-2.1+" |
59 |
+SLOT="0" |
60 |
+ |
61 |
+if [[ "${PV}" == "9999" ]]; then |
62 |
+ inherit git-r3 |
63 |
+ EGIT_REPO_URI="git://anongit.freedesktop.org/beignet" |
64 |
+ KEYWORDS="" |
65 |
+else |
66 |
+ KEYWORDS="~amd64" |
67 |
+ SRC_URI="https://01.org/sites/default/files/${P}-source.tar.gz -> ${P}.tar.gz" |
68 |
+ S=${WORKDIR}/Beignet-${PV}-Source |
69 |
+fi |
70 |
+ |
71 |
+COMMON="${PYTHON_DEPS} |
72 |
+ media-libs/mesa |
73 |
+ sys-devel/clang |
74 |
+ >=sys-devel/llvm-3.5 |
75 |
+ x11-libs/libdrm[video_cards_intel] |
76 |
+ x11-libs/libXext |
77 |
+ x11-libs/libXfixes" |
78 |
+RDEPEND="${COMMON} |
79 |
+ app-eselect/eselect-opencl" |
80 |
+DEPEND="${COMMON} |
81 |
+ virtual/pkgconfig" |
82 |
+ |
83 |
+PATCHES=( |
84 |
+ "${FILESDIR}"/no-debian-multiarch.patch |
85 |
+ "${FILESDIR}"/no-hardcoded-cflags.patch |
86 |
+ "${FILESDIR}"/llvm-terminfo.patch |
87 |
+ "${FILESDIR}"/llvm-empty-system-libs.patch |
88 |
+) |
89 |
+ |
90 |
+DOCS=( |
91 |
+ docs/. |
92 |
+) |
93 |
+ |
94 |
+pkg_pretend() { |
95 |
+ if [[ ${MERGE_TYPE} != "binary" ]]; then |
96 |
+ if [[ $(tc-getCC) == *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 |
+ cmake-utils_src_prepare |
111 |
+ # We cannot run tests because they require permissions to access |
112 |
+ # the hardware, and building them is very time-consuming. |
113 |
+ cmake_comment_add_subdirectory utests |
114 |
+} |
115 |
+ |
116 |
+multilib_src_configure() { |
117 |
+ VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}" |
118 |
+ |
119 |
+ local mycmakeargs=( |
120 |
+ -DCMAKE_INSTALL_PREFIX="${VENDOR_DIR}" |
121 |
+ ) |
122 |
+ |
123 |
+ cmake-utils_src_configure |
124 |
+} |
125 |
+ |
126 |
+multilib_src_install() { |
127 |
+ VENDOR_DIR="/usr/$(get_libdir)/OpenCL/vendors/${PN}" |
128 |
+ |
129 |
+ cmake-utils_src_install |
130 |
+ |
131 |
+ insinto /etc/OpenCL/vendors/ |
132 |
+ echo "${VENDOR_DIR}/lib/${PN}/libcl.so" > "${PN}-${ABI}.icd" |
133 |
+ doins "${PN}-${ABI}.icd" |
134 |
+ |
135 |
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so.1 |
136 |
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libOpenCL.so |
137 |
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so.1 |
138 |
+ dosym "lib/${PN}/libcl.so" "${VENDOR_DIR}"/libcl.so |
139 |
+} |
140 |
|
141 |
diff --git a/dev-libs/beignet/files/llvm-empty-system-libs.patch b/dev-libs/beignet/files/llvm-empty-system-libs.patch |
142 |
new file mode 100644 |
143 |
index 00000000..d5e0cd7 |
144 |
--- /dev/null |
145 |
+++ b/dev-libs/beignet/files/llvm-empty-system-libs.patch |
146 |
@@ -0,0 +1,11 @@ |
147 |
+--- a/CMake/FindLLVM.cmake 2015-12-18 06:39:59.000000000 +0000 |
148 |
++++ b/CMake/FindLLVM.cmake 2016-08-31 15:05:11.210679204 +0000 |
149 |
+@@ -99,7 +99,7 @@ |
150 |
+ OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_ORIG |
151 |
+ OUTPUT_STRIP_TRAILING_WHITESPACE |
152 |
+ ) |
153 |
+-string(REGEX REPLACE " *\n" "" LLVM_SYSTEM_LIBS ${LLVM_SYSTEM_LIBS_ORIG}) |
154 |
++string(REGEX REPLACE " *\n" "" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_ORIG}") |
155 |
+ endif (LLVM_VERSION_NODOT VERSION_GREATER 34) |
156 |
+ |
157 |
+ macro(add_one_lib name) |
158 |
|
159 |
diff --git a/dev-libs/beignet/files/llvm-terminfo.patch b/dev-libs/beignet/files/llvm-terminfo.patch |
160 |
new file mode 100644 |
161 |
index 00000000..afbbc26 |
162 |
--- /dev/null |
163 |
+++ b/dev-libs/beignet/files/llvm-terminfo.patch |
164 |
@@ -0,0 +1,20 @@ |
165 |
+--- a/backend/src/CMakeLists.txt 2015-12-18 07:40:03.000000000 +0100 |
166 |
++++ b/backend/src/CMakeLists.txt 2016-08-01 13:44:31.475875150 +0200 |
167 |
+@@ -153,7 +153,7 @@ |
168 |
+ |
169 |
+ add_library(gbeinterp SHARED gbe_bin_interpreter.cpp) |
170 |
+ |
171 |
+-if (LLVM_VERSION_NODOT VERSION_EQUAL 34) |
172 |
++if (NOT (LLVM_VERSION_NODOT LESS 34)) |
173 |
+ find_library(TERMINFO NAMES tinfo ncurses) |
174 |
+ if (${TERMINFO} STREQUAL TERMINFO-NOTFOUND) |
175 |
+ message(FATAL_ERROR "no libtinfo or libncurses is found in system") |
176 |
+@@ -161,7 +161,7 @@ |
177 |
+ target_link_libraries(gbe ${TERMINFO}) |
178 |
+ message(STATUS "use ${TERMINFO} as terminal control library") |
179 |
+ endif (${TERMINFO} STREQUAL TERMINFO-NOTFOUND) |
180 |
+-endif(LLVM_VERSION_NODOT VERSION_EQUAL 34) |
181 |
++endif(NOT (LLVM_VERSION_NODOT LESS 34)) |
182 |
+ |
183 |
+ link_directories (${LLVM_LIBRARY_DIR} ${DRM_LIBDIR}) |
184 |
+ |
185 |
|
186 |
diff --git a/dev-libs/beignet/files/no-debian-multiarch.patch b/dev-libs/beignet/files/no-debian-multiarch.patch |
187 |
new file mode 100644 |
188 |
index 00000000..c9aef4d |
189 |
--- /dev/null |
190 |
+++ b/dev-libs/beignet/files/no-debian-multiarch.patch |
191 |
@@ -0,0 +1,39 @@ |
192 |
+--- a/CMakeLists.txt 2015-04-17 04:27:51.000000000 +0200 |
193 |
++++ b/CMakeLists.txt 2015-05-20 20:59:17.895041760 +0200 |
194 |
+@@ -39,14 +39,9 @@ |
195 |
+ |
196 |
+ SET(CMAKE_VERBOSE_MAKEFILE "false") |
197 |
+ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/") |
198 |
+-INCLUDE (GNUInstallDirs OPTIONAL) |
199 |
+-# support old CMake without GNUInstallDirs |
200 |
+-if (NOT CMAKE_INSTALL_FULL_LIBDIR) |
201 |
+- set (CMAKE_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib") |
202 |
+- set (BEIGNET_LIBRARY_ARCHITECTURE "") |
203 |
+-else (NOT CMAKE_INSTALL_FULL_LIBDIR) |
204 |
+- set (BEIGNET_LIBRARY_ARCHITECTURE "${CMAKE_LIBRARY_ARCHITECTURE}") |
205 |
+-endif (NOT CMAKE_INSTALL_FULL_LIBDIR) |
206 |
++ |
207 |
++set (CMAKE_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib") |
208 |
++set (BEIGNET_LIBRARY_ARCHITECTURE "") |
209 |
+ |
210 |
+ if (NOT LIB_INSTALL_DIR) |
211 |
+ set (LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") |
212 |
+@@ -55,17 +50,7 @@ |
213 |
+ set (BEIGNET_INSTALL_DIR "${LIB_INSTALL_DIR}/beignet/") |
214 |
+ endif (NOT BEIGNET_INSTALL_DIR) |
215 |
+ |
216 |
+-# allow co-installation of 32- and 64-bit versions: |
217 |
+-# https://wiki.debian.org/Multiarch |
218 |
+-if (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/") |
219 |
+- set (ICD_FILE_NAME "intel-beignet.icd") |
220 |
+-else (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/") |
221 |
+- if (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "") |
222 |
+- set (ICD_FILE_NAME "intel-beignet.icd") |
223 |
+- else (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "") |
224 |
+- set (ICD_FILE_NAME "intel-beignet-${BEIGNET_LIBRARY_ARCHITECTURE}.icd") |
225 |
+- endif (BEIGNET_LIBRARY_ARCHITECTURE STREQUAL "") |
226 |
+-endif (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/") |
227 |
++set (ICD_FILE_NAME "intel-beignet.icd") |
228 |
+ |
229 |
+ # Force Release with debug info |
230 |
+ if (NOT CMAKE_BUILD_TYPE) |
231 |
|
232 |
diff --git a/dev-libs/beignet/files/no-hardcoded-cflags.patch b/dev-libs/beignet/files/no-hardcoded-cflags.patch |
233 |
new file mode 100644 |
234 |
index 00000000..3dd67b7 |
235 |
--- /dev/null |
236 |
+++ b/dev-libs/beignet/files/no-hardcoded-cflags.patch |
237 |
@@ -0,0 +1,13 @@ |
238 |
+--- a/CMakeLists.txt 2016-08-31 17:13:26.000000000 +0000 |
239 |
++++ b/CMakeLists.txt 2016-08-31 17:00:40.000000000 +0000 |
240 |
+@@ -70,8 +70,8 @@ |
241 |
+ elseif (COMPILER STREQUAL "ICC") |
242 |
+ set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -wd2928 -Wall -fPIC -fstrict-aliasing -fp-model fast -msse4.1 -Wl,-E") |
243 |
+ endif () |
244 |
+-set (CMAKE_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof") |
245 |
+-set (CMAKE_C_FLAGS "${CMAKE_C_CXX_FLAGS}") |
246 |
++set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wno-invalid-offsetof") |
247 |
++set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") |
248 |
+ set (CMAKE_CXX_FLAGS_DEBUG "-O0 -g -DGBE_DEBUG=1") |
249 |
+ set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1") |
250 |
+ set (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG -DGBE_DEBUG=0") |
251 |
|
252 |
diff --git a/dev-libs/beignet/metadata.xml b/dev-libs/beignet/metadata.xml |
253 |
new file mode 100644 |
254 |
index 00000000..3e5026e |
255 |
--- /dev/null |
256 |
+++ b/dev-libs/beignet/metadata.xml |
257 |
@@ -0,0 +1,8 @@ |
258 |
+<?xml version="1.0" encoding="UTF-8"?> |
259 |
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> |
260 |
+<pkgmetadata> |
261 |
+ <maintainer type="person"> |
262 |
+ <email>marecki@g.o</email> |
263 |
+ <name>Marek Szuba</name> |
264 |
+ </maintainer> |
265 |
+</pkgmetadata> |