mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: python-llvmlite: Update to 0.34.0.
This is in preparation of updating the broken python-numba package. * gnu/packages/llvm.scm (python-llvmlite): Update to 0.34.0. [arguments]: Enable tests. [phases]{patch-reference-to-llvmlite, skip-failing-tests} {set-compiler/linker-flags}: New phases. [inputs]: Update custom LLVM input and associated patches. [home-page]: Use HTTPS.
This commit is contained in:
parent
9e4c24ef90
commit
8a34f29292
1 changed files with 78 additions and 29 deletions
|
@ -16,6 +16,7 @@
|
||||||
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
|
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
|
||||||
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||||
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
|
||||||
|
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -1044,48 +1045,96 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.")
|
||||||
(define-public python-llvmlite
|
(define-public python-llvmlite
|
||||||
(package
|
(package
|
||||||
(name "python-llvmlite")
|
(name "python-llvmlite")
|
||||||
(version "0.30.0")
|
(version "0.34.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "llvmlite" version))
|
(uri (pypi-uri "llvmlite" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"01wspdc0xhnydl66jyhyr4ii16h3fnw6mjihiwnnxdxg9j6kkajf"))))
|
"0qqzs6h34002ig2jn31vk08q9hh5kn84lhmv4bljz3yakg8y0gph"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; FIXME: One test fails unable to find libm.so
|
`(#:phases
|
||||||
;; https://github.com/numba/llvmlite/issues/537
|
(modify-phases %standard-phases
|
||||||
`(#:tests? #f))
|
(add-after 'unpack 'patch-reference-to-llvmlite.so
|
||||||
|
;; ctypes.CDLL uses dlopen to load libllvmlite.so, which
|
||||||
|
;; fails, so locate it by its absolute path. Change it in
|
||||||
|
;; ffi.py, not utils.py, because setup.py relies on the
|
||||||
|
;; output of get_library_name for proper installation.
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(libllvmlite.so (string-append out "/lib/python"
|
||||||
|
,(version-major+minor
|
||||||
|
(package-version python))
|
||||||
|
"/site-packages/llvmlite/"
|
||||||
|
"binding/libllvmlite.so")))
|
||||||
|
(substitute* "llvmlite/binding/ffi.py"
|
||||||
|
(("_lib_name = get_library_name\\(\\)")
|
||||||
|
(format #f "_lib_name = ~s" libllvmlite.so)))
|
||||||
|
#t)))
|
||||||
|
(add-after 'unpack 'skip-failing-tests
|
||||||
|
(lambda _
|
||||||
|
(substitute* "llvmlite/tests/test_binding.py"
|
||||||
|
((" def test_libm\\(self\\).*" all)
|
||||||
|
(string-append " @unittest.skip('Fails on Guix')\n" all)))
|
||||||
|
#t))
|
||||||
|
(add-before 'build 'set-compiler/linker-flags
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(let ((llvm (assoc-ref inputs "llvm")))
|
||||||
|
;; Refer to ffi/Makefile.linux.
|
||||||
|
(setenv "CPPFLAGS" "-fPIC")
|
||||||
|
(setenv "LDFLAGS" (string-append "-Wl,-rpath="
|
||||||
|
llvm "/lib"))
|
||||||
|
#t))))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("llvm"
|
`(("llvm"
|
||||||
,(let ((patches-commit "486edd5fb2a6667feb5c865f300c0da73785434a"))
|
,(let* ((patches-commit "061ab39e1d4591f3aa842458252a19ad01858167")
|
||||||
(package
|
(patch-uri (lambda (name)
|
||||||
(inherit llvm-7)
|
(string-append
|
||||||
(source
|
"https://raw.githubusercontent.com/numba/"
|
||||||
(origin
|
"llvmlite/" patches-commit "/conda-recipes/"
|
||||||
(inherit (package-source llvm-7))
|
name)))
|
||||||
(patches
|
(patch-origin (lambda (name hash)
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (patch-uri name))
|
||||||
|
(sha256 (base32 hash)))))
|
||||||
|
(arch-independent-patches
|
||||||
(list
|
(list
|
||||||
|
(patch-origin
|
||||||
|
"partial-testing.patch"
|
||||||
|
"1cwy4jsmijd838q0bylxl77vrwrb7ksijfly5062ay32303jmj86")
|
||||||
|
(patch-origin
|
||||||
|
"0001-Revert-Limit-size-of-non-GlobalValue-name.patch"
|
||||||
|
"0n4k7za0smx6qwdipsh6x5lm7bfvzzb3p9r8q1zq1dqi4na21295"))))
|
||||||
|
(if (string=? "aarch64-linux" (%current-system))
|
||||||
|
(package
|
||||||
|
(inherit llvm-9)
|
||||||
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(inherit (package-source llvm-9))
|
||||||
(uri (string-append
|
(patches
|
||||||
"https://raw.githubusercontent.com/numba/"
|
`(,(patch-origin
|
||||||
"llvmlite/" patches-commit "/conda-recipes/"
|
"intel-D47188-svml-VF_LLVM9.patch"
|
||||||
"D47188-svml-VF.patch"))
|
"1f9ld7wc8bn4gbvdsmk07w1rq371h42vy05rxsq9a22f57rljqbd")
|
||||||
(sha256
|
,@arch-independent-patches
|
||||||
(base32
|
,@(origin-patches (package-source llvm-9)))))))
|
||||||
"0wxhgb61k17f0zg2m0726sf3hppm41f8jar2kkg2n8sl5cnjj9mr")))
|
(package
|
||||||
|
(inherit llvm-10)
|
||||||
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(inherit (package-source llvm-10))
|
||||||
(uri (string-append
|
(patches
|
||||||
"https://raw.githubusercontent.com/numba/"
|
`(,(patch-origin
|
||||||
"llvmlite/" patches-commit "/conda-recipes/"
|
"intel-D47188-svml-VF.patch"
|
||||||
"twine_cfg_undefined_behavior.patch"))
|
"0n46qjwfl7i12bl7wp0cyxl277axfvaaz5lxx5kdlgwjcpa582dg")
|
||||||
(sha256
|
,(patch-origin
|
||||||
(base32
|
"expect-fastmath-entrypoints-in-add-TLI-mappings.ll.patch"
|
||||||
"07h71n2m1mn9zcfgw04zglffknplb233zqbcd6pckq0wygkrxflp"))))))))))))
|
"0jxhjkkwwi1cy898l2n57l73ckpw0v73lqnrifp7r1mwpsh624nv")
|
||||||
(home-page "http://llvmlite.pydata.org")
|
,@arch-independent-patches
|
||||||
|
,@(origin-patches (package-source llvm-10))))))))))))
|
||||||
|
(home-page "https://llvmlite.pydata.org")
|
||||||
(synopsis "Wrapper around basic LLVM functionality")
|
(synopsis "Wrapper around basic LLVM functionality")
|
||||||
(description
|
(description
|
||||||
"This package provides a Python binding to LLVM for use in Numba.")
|
"This package provides a Python binding to LLVM for use in Numba.")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue