GNU bug report logs - #31436
[PATCH 0/6] gnu: Add opencl related packages.

Previous Next

Package: guix-patches;

Reported by: Fis Trivial <ybbs.daans <at> hotmail.com>

Date: Sat, 12 May 2018 19:47:01 UTC

Severity: normal

Tags: patch

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

Full log


Message #67 received at 31436-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Fis Trivial <ybbs.daans <at> hotmail.com>
Cc: "31436 <at> debbugs.gnu.org" <31436-done <at> debbugs.gnu.org>
Subject: Re: [PATCH 3/3] gnu: Add beignet.
Date: Tue, 26 Jun 2018 23:00:16 +0200
[Message part 1 (text/plain, inline)]
Fis Trivial <ybbs.daans <at> hotmail.com> 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’s one issue, though: the ‘beignet.pch’ file is not bit
reproducible, as can be seen when running ‘guix build beignet --check
-K’.  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’m closing it now, but
hopefully later on we’ll have POCL as well.

Thanks,
Ludo’.

[Message part 2 (text/x-patch, 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 <at> 3.7" ,clang-3.7)
@@ -251,13 +256,15 @@ the system.")
                             (assoc-ref %build-inputs "clang <at> 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 <ybbs.daans <at> hotmail.com>
-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

This bug report was last modified 6 years and 330 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.