From 00c3761322ec4d2aa85e66f1c55452ded3f9e681 Mon Sep 17 00:00:00 2001 From: Timo Kaufmann Date: Mon, 16 Dec 2019 23:02:26 +0100 Subject: ecl: fix build with libffi 3.3 The build was broken by the recent libffi update (53a04a2df0c0812fd983364184d519dc3356e7d2) because of this upstream change: https://github.com/libffi/libffi/commit/ef76205647bca77796882d31f6ab5e889f461f07 I have changed the usage of FFI_SYSV as gentoo suggests: https://wiki.gentoo.org/wiki/Libffi_3.3_porting_notes/FFI_SYSV I'm not entirely sure if that is the right call here, but I haven't noticed any regressions in my testing and its definitely better than a broken build. Upstream: https://gitlab.com/embeddable-common-lisp/ecl/issues/302 --- pkgs/development/compilers/ecl/16.1.2.nix | 1 + pkgs/development/compilers/ecl/default.nix | 4 ++++ .../compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch | 15 +++++++++++++++ pkgs/development/compilers/ecl/libffi-3.3-abi.patch | 15 +++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 pkgs/development/compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch create mode 100644 pkgs/development/compilers/ecl/libffi-3.3-abi.patch diff --git a/pkgs/development/compilers/ecl/16.1.2.nix b/pkgs/development/compilers/ecl/16.1.2.nix index bede9fa4aa687..a7b2aa6be7487 100644 --- a/pkgs/development/compilers/ecl/16.1.2.nix +++ b/pkgs/development/compilers/ecl/16.1.2.nix @@ -61,6 +61,7 @@ stdenv.mkDerivation { url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ecl/patches/16.1.2-getcwd.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; sha256 = "1fbi8gn7rv8nqff5mpaijsrch3k3z7qc5cn4h1vl8qrr8xwqlqhb"; }) + ./ecl-1.16.2-libffi-3.3-abi.patch ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix index 33ed690772ead..375b38f1dc683 100644 --- a/pkgs/development/compilers/ecl/default.nix +++ b/pkgs/development/compilers/ecl/default.nix @@ -35,6 +35,10 @@ stdenv.mkDerivation { inherit (s) url sha256; }; + patches = [ + ./libffi-3.3-abi.patch + ]; + configureFlags = [ (if threadSupport then "--enable-threads" else "--disable-threads") "--with-gmp-prefix=${gmp.dev}" diff --git a/pkgs/development/compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch b/pkgs/development/compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch new file mode 100644 index 0000000000000..28dd7d0805b3c --- /dev/null +++ b/pkgs/development/compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch @@ -0,0 +1,15 @@ +diff --git a/src/c/ffi.d b/src/c/ffi.d +index 8861303e..8a959c23 100644 +--- a/src/c/ffi.d ++++ b/src/c/ffi.d +@@ -145,8 +145,8 @@ static struct { + #elif defined(X86_WIN64) + {@':win64', FFI_WIN64}, + #elif defined(X86_ANY) || defined(X86) || defined(X86_64) +- {@':cdecl', FFI_SYSV}, +- {@':sysv', FFI_SYSV}, ++ {@':cdecl', FFI_UNIX64}, ++ {@':sysv', FFI_UNIX64}, + {@':unix64', FFI_UNIX64}, + #endif + }; diff --git a/pkgs/development/compilers/ecl/libffi-3.3-abi.patch b/pkgs/development/compilers/ecl/libffi-3.3-abi.patch new file mode 100644 index 0000000000000..0a2b5f4dd5686 --- /dev/null +++ b/pkgs/development/compilers/ecl/libffi-3.3-abi.patch @@ -0,0 +1,15 @@ +diff --git a/src/c/ffi.d b/src/c/ffi.d +index 8174977a..caa69f39 100644 +--- a/src/c/ffi.d ++++ b/src/c/ffi.d +@@ -133,8 +133,8 @@ static struct { + #elif defined(X86_WIN64) + {@':win64', FFI_WIN64}, + #elif defined(X86_ANY) || defined(X86) || defined(X86_64) +- {@':cdecl', FFI_SYSV}, +- {@':sysv', FFI_SYSV}, ++ {@':cdecl', FFI_UNIX64}, ++ {@':sysv', FFI_UNIX64}, + {@':unix64', FFI_UNIX64}, + #endif + }; -- cgit 1.4.1