From 5d31bb14ce6aaecfaf022616e538470036916cef Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Mon, 6 Mar 2017 22:21:43 +0000 Subject: [PATCH] gnu: libffi: apply alpha build fix * gnu/packages/patches/libffi-3.2.1-complex_alpha.patch: new file * gnu/local.mk (dist_patch_DATA): add patch * gnu/packages/libffi.scm (libffi): apply Gentoo patch to fix alpha build --- gnu/local.mk | 1 + gnu/packages/libffi.scm | 3 ++- .../patches/libffi-3.2.1-complex_alpha.patch | 27 ++++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libffi-3.2.1-complex_alpha.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0f3b4bd7a..83761b6d0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -695,6 +695,7 @@ dist_patch_DATA = \ %D%/packages/patches/libevent-2.1-skip-failing-test.patch \ %D%/packages/patches/libextractor-ffmpeg-3.patch \ %D%/packages/patches/libgit2-use-after-free.patch \ + %D%/packages/patches/libffi-3.2.1-complex_alpha.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-typos.patch \ %D%/packages/patches/liboop-mips64-deplibs-fix.patch \ diff --git a/gnu/packages/libffi.scm b/gnu/packages/libffi.scm index 13938f7ee..14edc6d4d 100644 --- a/gnu/packages/libffi.scm +++ b/gnu/packages/libffi.scm @@ -42,7 +42,8 @@ name "-" version ".tar.gz")) (sha256 (base32 - "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh")))) + "0dya49bnhianl0r65m65xndz6ls2jn1xngyn72gd28ls3n7bnvnh")) + (patches (search-patches "libffi-3.2.1-complex_alpha.patch")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-after 'install 'post-install ,post-install-phase diff --git a/gnu/packages/patches/libffi-3.2.1-complex_alpha.patch b/gnu/packages/patches/libffi-3.2.1-complex_alpha.patch new file mode 100644 index 000000000..5b7095bfd --- /dev/null +++ b/gnu/packages/patches/libffi-3.2.1-complex_alpha.patch @@ -0,0 +1,27 @@ +The patch fixes build failure of form: + ../src/alpha/osf.S:298:2: error: #error "osf.S out of sync with ffi.h" +Upstream fixed the bug in a more invasive way +but didn't have releases since 3.2.1. + +The patch is taken from Gentoo: +https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-libs/libffi/files/libffi-3.2.1-complex_alpha.patch +--- libffi-3.2.1/src/alpha/osf.S.orig 2015-01-16 10:46:15.000000000 +0100 ++++ libffi-3.2.1/src/alpha/osf.S 2015-01-16 10:46:24.000000000 +0100 +@@ -279,6 +279,7 @@ + .gprel32 $load_64 # FFI_TYPE_SINT64 + .gprel32 $load_none # FFI_TYPE_STRUCT + .gprel32 $load_64 # FFI_TYPE_POINTER ++ .gprel32 $load_none # FFI_TYPE_COMPLEX + + /* Assert that the table above is in sync with ffi.h. */ + +@@ -294,7 +295,8 @@ + || FFI_TYPE_SINT64 != 12 \ + || FFI_TYPE_STRUCT != 13 \ + || FFI_TYPE_POINTER != 14 \ +- || FFI_TYPE_LAST != 14 ++ || FFI_TYPE_COMPLEX != 15 \ ++ || FFI_TYPE_LAST != 15 + #error "osf.S out of sync with ffi.h" + #endif + -- 2.12.2