From 8888e845b7722a11ec24f59d7895d4cbba04c06b Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Mon, 6 Oct 2025 21:30:32 +0900 Subject: [PATCH] gnu: pypy2: Link against libffi.so, not libffi.a. * gnu/packages/pypy.scm (pypy2) [#:phases] {use-libffi.so}: New phase. [inputs]: Replace libffi-pic with libffi. * gnu/packages/libffi.scm (libffi-pic): Delete hidden package. Change-Id: I778789c18dadef71b4bef5fae27ed29ac4ac01dd --- gnu/packages/libffi.scm | 8 -------- gnu/packages/pypy.scm | 7 ++++++- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index bd8e5fb727508e2fa24bdeb0c081e5fb6f0aa475..f87719c7f2d82ca298c73827cee8d66dd1ce592e 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm @@ -278,11 +278,3 @@ from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby and JRuby.") (home-page "https://wiki.github.com/ffi/ffi") (license bsd-3))) - -;; pypy needs libffi compiled with -fPIC for some reason -(define-public libffi-pic - (hidden-package - (package/inherit libffi - (arguments - `(#:configure-flags '("--enable-portable-binary" - "--without-gcc-arch" "--with-pic")))))) diff --git a/gnu/packages/pypy.scm b/gnu/packages/pypy.scm index ba04a0b92078ed7d19f8bcf87a78d36e496a2815..5309cf38f16075bda127cab74785c75e78ef12b1 100644 --- a/gnu/packages/pypy.scm +++ b/gnu/packages/pypy.scm @@ -119,6 +119,11 @@ (substitute* "lib-python/2.7/distutils/sysconfig_pypy.py" (("\"cc ") (string-append "\"" #$(cc-for-target) " "))))) + (add-after 'unpack 'use-libffi.so + (lambda _ + (substitute* "rpython/rlib/clibffi.py" + (("\"libffi\\.a\"") + "\"libffi.so\"")))) (add-after 'unpack 'set-source-file-times-to-1980 ;; copied from python package, required by zip testcase (lambda _ @@ -177,7 +182,7 @@ (list bzip2 expat gdbm - libffi-pic + libffi ncurses openssl sqlite