summaryrefslogtreecommitdiff
path: root/gnu/packages/libffi.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/libffi.scm')
-rw-r--r--gnu/packages/libffi.scm62
1 files changed, 10 insertions, 52 deletions
diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm
index d62a1588c1..b0a66c11c5 100644
--- a/gnu/packages/libffi.scm
+++ b/gnu/packages/libffi.scm
@@ -2,11 +2,11 @@
;;; Copyright © 2012, 2013, 2014, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015, 2019 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
-;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
-;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 John Doe <dftxbs3e@free.fr>
;;;
;;; This file is part of GNU Guix.
@@ -51,45 +51,15 @@
name "-" version ".tar.gz"))
(sha256
(base32
- "0mi0cpf8aa40ljjmzxb7im6dbj45bb0kllcd09xgmp834y9agyvj"))))
+ "0mi0cpf8aa40ljjmzxb7im6dbj45bb0kllcd09xgmp834y9agyvj"))
+ (patches (search-patches "libffi-3.3-powerpc-fixes.patch"
+ "libffi-float128-powerpc64le.patch"))))
(build-system gnu-build-system)
(arguments
`(;; Prevent the build system from passing -march and -mtune to the
;; compiler. See "ax_cc_maxopt.m4" and "ax_gcc_archflag.m4".
- #:configure-flags '("--enable-portable-binary" "--without-gcc-arch")
-
- ;; TODO: Inline patches on next rebuild cycle.
- ,@(if (string-prefix? "powerpc-" (or (%current-target-system)
- (%current-system)))
- '(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'apply-patch
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((patch (assoc-ref inputs
- "powerpc-patch")))
- (invoke "patch" "--force" "-p1"
- "-i" patch))))))
- '())
- ,@(if (string-prefix? "powerpc64le-" (or (%current-target-system)
- (%current-system)))
- '(#:phases (modify-phases %standard-phases
- (add-after 'unpack 'apply-patch2
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((patch (assoc-ref inputs
- "powerpc64le-patch")))
- (invoke "patch" "--force" "-p1"
- "-i" patch))))))
- '())))
- (inputs
- (cond
- ((string-prefix? "powerpc-" (or (%current-target-system)
- (%current-system)))
- `(("powerpc-patch" ,@(search-patches
- "libffi-3.3-powerpc-fixes.patch"))))
- ((string-prefix? "powerpc64le-" (or (%current-target-system)
- (%current-system)))
- `(("powerpc64le-patch" ,@(search-patches
- "libffi-float128-powerpc64le.patch"))))
- (else '())))
+ #:configure-flags '("--enable-portable-binary"
+ "--without-gcc-arch")))
(outputs '("out" "debug"))
(synopsis "Foreign function call interface library")
(description
@@ -128,20 +98,10 @@ conversions for values passed between the two languages.")
`(("pkg-config" ,pkg-config)
("python-pytest" ,python-pytest)))
(arguments
- `(#:modules ((ice-9 ftw)
- (srfi srfi-26)
- (guix build utils)
- (guix build python-build-system))
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
- (setenv "PYTHONPATH"
- (string-append
- (getenv "PYTHONPATH")
- ":" (getcwd) "/build/"
- (car (scandir "build" (cut string-prefix? "lib." <>)))))
-
;; XXX The "normal" approach of setting CC and friends does
;; not work here. Is this the correct way of doing things?
(substitute* "testing/embedding/test_basic.py"
@@ -152,8 +112,7 @@ conversions for values passed between the two languages.")
"linker_so='gcc -shared')")))
(substitute* "testing/cffi0/test_ownlib.py"
(("\"cc testownlib") "\"gcc testownlib"))
- (invoke "py.test" "-v" "c/" "testing/")
- #t))
+ (invoke "py.test" "-v" "c/" "testing/")))
(add-before 'check 'patch-paths-of-dynamically-loaded-libraries
(lambda* (#:key inputs #:allow-other-keys)
;; Shared libraries should be referred by their absolute path as
@@ -176,8 +135,7 @@ conversions for values passed between the two languages.")
(format #f "lib_m = ['~a']" libm)))
(substitute* "c/test_c.py"
(("find_and_load_library\\(['\"]{1}c['\"]{1}")
- (format #f "find_and_load_library('~a'" libc)))
- #t))))))
+ (format #f "find_and_load_library('~a'" libc)))))))))
(home-page "https://cffi.readthedocs.io/")
(synopsis "Foreign function interface for Python")
(description "Foreign Function Interface for Python calling C code.")