From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34392) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fXv5E-0001nz-Tp for guix-patches@gnu.org; Tue, 26 Jun 2018 17:01:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fXv5C-0003OH-Jg for guix-patches@gnu.org; Tue, 26 Jun 2018 17:01:04 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:56994) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fXv5C-0003Ns-Ba for guix-patches@gnu.org; Tue, 26 Jun 2018 17:01:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fXv5C-00030x-3w for guix-patches@gnu.org; Tue, 26 Jun 2018 17:01:02 -0400 Subject: bug#31436: [PATCH 3/3] gnu: Add beignet. Resent-To: guix-patches@gnu.org Resent-Message-ID: From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) References: <87o9fyr502.fsf@gnu.org> <87in654q79.fsf@gnu.org> Date: Tue, 26 Jun 2018 23:00:16 +0200 In-Reply-To: (Fis Trivial's message of "Tue, 26 Jun 2018 19:40:31 +0000") Message-ID: <87vaa51cwv.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Fis Trivial Cc: "31436@debbugs.gnu.org" <31436-done@debbugs.gnu.org> --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Fis Trivial skribis: > * gnu/packages/opencl.scm (beignet): New variable. > * gnu/packages/patches/beignet-correct-paths.patch: New file. > * gnu/local.mk: Add it. Applied with the changes below. There=E2=80=99s one issue, though: the =E2=80=98beignet.pch=E2=80=99 file i= s not bit reproducible, as can be seen when running =E2=80=98guix build beignet --che= ck -K=E2=80=99. The file is generated by Clang: --8<---------------cut here---------------start------------->8--- ADD_CUSTOM_COMMAND(OUTPUT ${OCL_OBJECT_DIR}/beignet.local.pch COMMAND mkdir -p ${OCL_OBJECT_DIR} COMMAND ${CLANG_EXECUTABLE} -cc1 ${CLANG_OCL_FLAGS} -I ${OCL_OBJECT_DIR= }/include/ -emit-pch -x cl ${OCL_OBJECT_DIR}/include/ocl.h -o ${OCL_OBJECT_= DIR}/beignet.local.pch DEPENDS ${OCL_HEADER_FILES} COMMENT "Generate the pch file: ${OCL_OBJECT_DIR}/beignet.local.pch" ) --8<---------------cut here---------------end--------------->8--- This may be a Clang/LLVM issue not specific to Beignet, and we should ask the Clang/LLVM people about it. Thanks for following up on this patch series! I=E2=80=99m closing it now, = but hopefully later on we=E2=80=99ll have POCL as well. Thanks, Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/gnu/local.mk b/gnu/local.mk index b400c9f18..08888da35 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -583,7 +583,7 @@ dist_patch_DATA = \ %D%/packages/patches/azr3.patch \ %D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \ - %D%/packages/patches/beignet-correct-paths.patch \ + %D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/bind-CVE-2018-5738.patch \ %D%/packages/patches/binutils-aarch64-symbol-relocation.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \ diff --git a/gnu/packages/opencl.scm b/gnu/packages/opencl.scm index b209d361d..644cd95e9 100644 --- a/gnu/packages/opencl.scm +++ b/gnu/packages/opencl.scm @@ -224,7 +224,12 @@ the system.") (sha256 (base32 "18r0lq3dkd4yn6bxa45s2lrr9cjbg70nr2nn6xablvgqwzw0jb0r")) - (patches (search-patches "beignet-correct-paths.patch")))) + (patches (search-patches "beignet-correct-file-names.patch")) + (modules '((guix build utils))) + (snippet + ;; There's a suspicious .isa binary file under kernels/. + ;; Remove it. + '(for-each delete-file (find-files "." "\\.isa$"))))) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python))) (inputs `(("clang@3.7" ,clang-3.7) @@ -251,13 +256,15 @@ the system.") (assoc-ref %build-inputs "clang@3.7") "/lib") "-DENABLE_GL_SHARING=ON" "-DEXPERIMENTAL_DOUBLE=ON") + #:phases (modify-phases %standard-phases (add-after 'install 'remove-headers (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (delete-file-recursively - (string-append out "/include"))))) + (string-append out "/include")) + #t))) (add-after 'remove-headers 'install-kernels (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -265,14 +272,19 @@ the system.") (source-dir (string-append builddir "/../beignet-Release_v1.3.2/kernels"))) - (copy-recursively source-dir (string-append - out - "/lib/beignet/kernels")))))) + (copy-recursively source-dir + (string-append out "/lib/beignet/kernels")) + #t)))) ;; Beignet tries to find GPU when running tests, which is not available ;; during build. #:tests? #f)) (home-page "https://wiki.freedesktop.org/www/Software/Beignet/") - (synopsis "Intel's OpenCL framework") - (description "Intel's OpenCL framework that works with Intel IvyBridge GPUs -and above.") - (license license:gpl2))) + (synopsis "OpenCL framework for Intel GPUs") + (description + "Beignet is an implementation of the OpenCL specification. This code +base contains the code to run OpenCL programs on Intel GPUs---IvyBridge, +Haswell, Skylake, Apollolake, etc. It defines and implements the OpenCL host +functions required to initialize the device, create the command queues, the +kernels and the programs, and run them on the GPU. The code also contains a +back-end for the LLVM compiler framework.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/patches/beignet-correct-paths.patch b/gnu/packages/patches/beignet-correct-file-names.patch similarity index 73% rename from gnu/packages/patches/beignet-correct-paths.patch rename to gnu/packages/patches/beignet-correct-file-names.patch index 96f15d782..2c5d0bbae 100644 --- a/gnu/packages/patches/beignet-correct-paths.patch +++ b/gnu/packages/patches/beignet-correct-file-names.patch @@ -1,14 +1,5 @@ -From 0ba525465782ec3fd6484b7483941344f293d3ab Mon Sep 17 00:00:00 2001 -From: fis -Date: Sun, 8 Apr 2018 02:14:44 +0800 -Subject: [PATCH] Correct paths. - -* CMake/FindLLVM.cmake (CLANG_LIBRARY_DIR): New vairable. -* CMakelists: Let cmake figure out where to install icd file. ---- - CMake/FindLLVM.cmake | 2 +- - CMakeLists.txt | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) +Help CMake find Clang's libraries. +Have it install the ICD file in the right place. diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake index 5457f248..e8e8f94a 100644 --=-=-=--