summary refs log tree commit diff
path: root/gnu/packages/opencl.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/opencl.scm')
-rw-r--r--gnu/packages/opencl.scm73
1 files changed, 44 insertions, 29 deletions
diff --git a/gnu/packages/opencl.scm b/gnu/packages/opencl.scm
index 2e506156b2..85b063b136 100644
--- a/gnu/packages/opencl.scm
+++ b/gnu/packages/opencl.scm
@@ -279,38 +279,53 @@ back-end for the LLVM compiler framework.")
 (define-public pocl
   (package
     (name "pocl")
-    (version "1.4")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/pocl/pocl")
-             (commit (string-append "v" version))))
-       (sha256
-        (base32 "1c4y69zks6hkq5fqh9waxgb8g4ka7y6h3vacmsm720kba0h57g8a"))
-       (file-name (git-file-name name version))))
+    (version "3.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pocl/pocl")
+                    (commit (string-append "v" version))))
+              (sha256
+               (base32
+                "1pw4q0hi5ynx34fvzryravz3jbh89f9cg60fkjj77sxh9xw8phdd"))
+              (file-name (git-file-name name version))
+              (modules '((guix build utils)))
+              (snippet
+                 '(begin
+                        ;; "kernel/test_printf_vectors" and
+                        ;; "kernel/test_printf_vectors_ulongn"
+                        ;; fail on aarch5 and likely other platforms
+                        ;; as commented in CMakeLists.txt
+                        ;; thus disable the block in CMakeList.txt adding
+                        ;; these two tests
+                       (substitute* "tests/kernel/CMakeLists.txt"
+                         (("NOT ENABLE_POCL_FLOAT_CONVERSION") "false"))))))
     (build-system cmake-build-system)
-    (native-inputs
-     (list libltdl pkg-config))
-    (inputs
-     (list clang-9 llvm-9 `(,hwloc-2 "lib") opencl-icd-loader))
+    (native-inputs (list libltdl pkg-config python-3))
+    (inputs (list clang-15 llvm-15
+                  `(,hwloc-2 "lib") opencl-icd-loader))
     (arguments
-     `(#:configure-flags
-       (list "-DENABLE_ICD=ON"
-             "-DENABLE_TESTSUITES=ON"
-             ;; We are not developers, don't run conformance suite.
-             "-DENABLE_CONFORMANCE=OFF"
-             (string-append "-DEXTRA_HOST_LD_FLAGS=-L"
-                            (assoc-ref %build-inputs "libc") "/lib"))
-       #:phases
-       (modify-phases %standard-phases
-         (add-before 'check 'set-HOME
-           (lambda _
-             (setenv "HOME" "/tmp")
+     `(#:configure-flags (let* ((libdir (string-append (assoc-ref %outputs
+                                                                  "out")
+                                                       "/lib")))
+                           (list "-DENABLE_ICD=ON"
+                                 "-DENABLE_TESTSUITES=ON"
+                                 ;; We are not developers, don't run conformance suite.
+                                 "-DENABLE_CONFORMANCE=OFF"
+                                 (string-append "-DEXTRA_HOST_LD_FLAGS=-L"
+                                                (assoc-ref %build-inputs
+                                                           "libc") "/lib")
+                                 ;; We need both libdir and libdir/pocl in RUNPATH.
+                                 (string-append "-DCMAKE_INSTALL_RPATH="
+                                                libdir ";" libdir "/pocl")))
+       #:phases (modify-phases %standard-phases
+                  (add-before 'check 'set-HOME
+                    (lambda _
+                      (setenv "HOME" "/tmp")
 
-             ;; Since 2.9.0, hwloc fails when /sys is missing, so provide a
-             ;; fake topology.
-             (setenv "HWLOC_SYNTHETIC" "4"))))))
+                      ;; Since 2.9.0, hwloc fails when /sys is missing, so provide a
+                      ;; fake topology.
+                      (setenv "HWLOC_SYNTHETIC" "4"))))))
     (home-page "http://portablecl.org/")
     (synopsis "Portable Computing Language (pocl), an OpenCL implementation")
     (description