about summary refs log tree commit diff
path: root/pkgs/development/compilers/ecl
diff options
context:
space:
mode:
authorTimo Kaufmann <timokau@zoho.com>2019-12-16 23:02:26 +0100
committerTimo Kaufmann <timokau@zoho.com>2019-12-16 23:02:26 +0100
commit00c3761322ec4d2aa85e66f1c55452ded3f9e681 (patch)
tree48e1996ee9d25896e6999e2b05263bba99882a99 /pkgs/development/compilers/ecl
parent3ad650a14b0477a0df2795abe185c66849a5012d (diff)
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
Diffstat (limited to 'pkgs/development/compilers/ecl')
-rw-r--r--pkgs/development/compilers/ecl/16.1.2.nix1
-rw-r--r--pkgs/development/compilers/ecl/default.nix4
-rw-r--r--pkgs/development/compilers/ecl/ecl-1.16.2-libffi-3.3-abi.patch15
-rw-r--r--pkgs/development/compilers/ecl/libffi-3.3-abi.patch15
4 files changed, 35 insertions, 0 deletions
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
+ };