diff options
author | Kovacsics Robert <rmk35@cam.ac.uk> | 2020-02-25 15:29:27 +0000 |
---|---|---|
committer | Frederik Rietdijk <freddyrietdijk@fridh.nl> | 2020-03-02 09:13:12 +0100 |
commit | f8c402ecad06da9dc703cddaf74942472057dbd4 (patch) | |
tree | e7d1c2b1f4d8a4e2b1bac026a996eab8b87560c4 /pkgs/development/compilers | |
parent | 9e8dea7986dbdde850a58c7704182776642d8919 (diff) | |
download | nixlib-f8c402ecad06da9dc703cddaf74942472057dbd4.tar nixlib-f8c402ecad06da9dc703cddaf74942472057dbd4.tar.gz nixlib-f8c402ecad06da9dc703cddaf74942472057dbd4.tar.bz2 nixlib-f8c402ecad06da9dc703cddaf74942472057dbd4.tar.lz nixlib-f8c402ecad06da9dc703cddaf74942472057dbd4.tar.xz nixlib-f8c402ecad06da9dc703cddaf74942472057dbd4.tar.zst nixlib-f8c402ecad06da9dc703cddaf74942472057dbd4.zip |
polyml: fix with new libffi
New libffi doesn't have FFI_SYSV for x86/64 unix, this pulls in the commit for the upstream version which fixes it, and ports that patch to the 5.7 version. The 5.6 version is unchanged. For ZHF: #80379
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r-- | pkgs/development/compilers/polyml/5.7-new-libffi-FFI_SYSV.patch | 34 | ||||
-rw-r--r-- | pkgs/development/compilers/polyml/5.7.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/polyml/default.nix | 10 |
3 files changed, 45 insertions, 1 deletions
diff --git a/pkgs/development/compilers/polyml/5.7-new-libffi-FFI_SYSV.patch b/pkgs/development/compilers/polyml/5.7-new-libffi-FFI_SYSV.patch new file mode 100644 index 000000000000..c5c9846300f1 --- /dev/null +++ b/pkgs/development/compilers/polyml/5.7-new-libffi-FFI_SYSV.patch @@ -0,0 +1,34 @@ +For 5.7 the copyright header is different. + +From ad32de7f181acaffaba78d5c3d9e5aa6b84a741c Mon Sep 17 00:00:00 2001 +From: David Matthews <dm@prolingua.co.uk> +Date: Sun, 7 Apr 2019 13:41:33 +0100 +Subject: [PATCH] Remove FFI_SYSV from abi table for X86/64 Unix. It appears + that this has been removed in upstream versions of libffi and causes problems + when building using the system libffi. + +--- + libpolyml/polyffi.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/libpolyml/polyffi.cpp b/libpolyml/polyffi.cpp +index 5424dd84..3dc9cc7c 100644 +--- a/libpolyml/polyffi.cpp ++++ b/libpolyml/polyffi.cpp +@@ -1,7 +1,7 @@ + /* + Title: New Foreign Function Interface + +- Copyright (c) 2015 David C.J. Matthews ++ Copyright (c) 2015, 2019 David C.J. Matthews + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public +@@ -109,7 +109,6 @@ static struct _abiTable { const char *abiName; ffi_abi abiCode; } abiTable[] = + #elif defined(X86_WIN64) + {"win64", FFI_WIN64}, + #elif defined(X86_ANY) +- {"sysv", FFI_SYSV}, + {"unix64", FFI_UNIX64}, + #endif + { "default", FFI_DEFAULT_ABI} diff --git a/pkgs/development/compilers/polyml/5.7.nix b/pkgs/development/compilers/polyml/5.7.nix index db1c7613f65b..dca34ca67273 100644 --- a/pkgs/development/compilers/polyml/5.7.nix +++ b/pkgs/development/compilers/polyml/5.7.nix @@ -8,6 +8,8 @@ stdenv.mkDerivation rec { substituteInPlace configure.ac --replace stdc++ c++ ''; + patches = [ ./5.7-new-libffi-FFI_SYSV.patch ]; + buildInputs = [ libffi gmp ]; nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook; diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix index 7be5fd993aef..f35021b6597b 100644 --- a/pkgs/development/compilers/polyml/default.nix +++ b/pkgs/development/compilers/polyml/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, autoreconfHook, gmp, libffi }: +{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, gmp, libffi }: stdenv.mkDerivation rec { pname = "polyml"; @@ -8,6 +8,14 @@ stdenv.mkDerivation rec { substituteInPlace configure.ac --replace stdc++ c++ ''; + patches = [ + (fetchpatch { + name = "new-libffi-FFI_SYSV.patch"; + url = "https://github.com/polyml/polyml/commit/ad32de7f181acaffaba78d5c3d9e5aa6b84a741c.patch"; + sha256 = "007q3r2h9kfh3c1nv0dyhipmak44q468ab9bwnz4kk4a2dq76n8v"; + }) + ]; + buildInputs = [ libffi gmp ]; nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook; |