me
/
guix
Archived
1
0
Fork 0

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.
master
Maxim Cournoyer 2020-11-13 22:05:26 -05:00
parent 9e4c24ef90
commit 8a34f29292
No known key found for this signature in database
GPG Key ID: 1260E46482E63562
1 changed files with 78 additions and 29 deletions

View File

@ -16,6 +16,7 @@
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; 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
(package
(name "python-llvmlite")
(version "0.30.0")
(version "0.34.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "llvmlite" version))
(sha256
(base32
"01wspdc0xhnydl66jyhyr4ii16h3fnw6mjihiwnnxdxg9j6kkajf"))))
"0qqzs6h34002ig2jn31vk08q9hh5kn84lhmv4bljz3yakg8y0gph"))))
(build-system python-build-system)
(arguments
;; FIXME: One test fails unable to find libm.so
;; https://github.com/numba/llvmlite/issues/537
`(#:tests? #f))
`(#:phases
(modify-phases %standard-phases
(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
`(("llvm"
,(let ((patches-commit "486edd5fb2a6667feb5c865f300c0da73785434a"))
(package
(inherit llvm-7)
(source
(origin
(inherit (package-source llvm-7))
(patches
,(let* ((patches-commit "061ab39e1d4591f3aa842458252a19ad01858167")
(patch-uri (lambda (name)
(string-append
"https://raw.githubusercontent.com/numba/"
"llvmlite/" patches-commit "/conda-recipes/"
name)))
(patch-origin (lambda (name hash)
(origin
(method url-fetch)
(uri (patch-uri name))
(sha256 (base32 hash)))))
(arch-independent-patches
(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
(method url-fetch)
(uri (string-append
"https://raw.githubusercontent.com/numba/"
"llvmlite/" patches-commit "/conda-recipes/"
"D47188-svml-VF.patch"))
(sha256
(base32
"0wxhgb61k17f0zg2m0726sf3hppm41f8jar2kkg2n8sl5cnjj9mr")))
(inherit (package-source llvm-9))
(patches
`(,(patch-origin
"intel-D47188-svml-VF_LLVM9.patch"
"1f9ld7wc8bn4gbvdsmk07w1rq371h42vy05rxsq9a22f57rljqbd")
,@arch-independent-patches
,@(origin-patches (package-source llvm-9)))))))
(package
(inherit llvm-10)
(source
(origin
(method url-fetch)
(uri (string-append
"https://raw.githubusercontent.com/numba/"
"llvmlite/" patches-commit "/conda-recipes/"
"twine_cfg_undefined_behavior.patch"))
(sha256
(base32
"07h71n2m1mn9zcfgw04zglffknplb233zqbcd6pckq0wygkrxflp"))))))))))))
(home-page "http://llvmlite.pydata.org")
(inherit (package-source llvm-10))
(patches
`(,(patch-origin
"intel-D47188-svml-VF.patch"
"0n46qjwfl7i12bl7wp0cyxl277axfvaaz5lxx5kdlgwjcpa582dg")
,(patch-origin
"expect-fastmath-entrypoints-in-add-TLI-mappings.ll.patch"
"0jxhjkkwwi1cy898l2n57l73ckpw0v73lqnrifp7r1mwpsh624nv")
,@arch-independent-patches
,@(origin-patches (package-source llvm-10))))))))))))
(home-page "https://llvmlite.pydata.org")
(synopsis "Wrapper around basic LLVM functionality")
(description
"This package provides a Python binding to LLVM for use in Numba.")