summaryrefslogtreecommitdiff
path: root/dev-libs/libffi
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-08-25 10:45:55 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-08-25 10:45:55 +0100
commit3cf7c3ef441822c889356fd1812ebf2944a59851 (patch)
treec513fe68548b40365c1c2ebfe35c58ad431cdd77 /dev-libs/libffi
parent05b8b0e0af1d72e51a3ee61522941bf7605cd01c (diff)
gentoo resync : 25.08.2020
Diffstat (limited to 'dev-libs/libffi')
-rw-r--r--dev-libs/libffi/Manifest7
-rw-r--r--dev-libs/libffi/files/libffi-3.3-ppc-int128.patch63
-rw-r--r--dev-libs/libffi/files/libffi-3.3-ppc-vector-offset.patch53
-rw-r--r--dev-libs/libffi/libffi-3.3-r1.ebuild11
-rw-r--r--dev-libs/libffi/libffi-3.3-r2.ebuild79
-rw-r--r--dev-libs/libffi/metadata.xml1
6 files changed, 201 insertions, 13 deletions
diff --git a/dev-libs/libffi/Manifest b/dev-libs/libffi/Manifest
index b5c60b780a29..855550d5ee99 100644
--- a/dev-libs/libffi/Manifest
+++ b/dev-libs/libffi/Manifest
@@ -2,7 +2,10 @@ AUX libffi-3.2.1-o-tmpfile-eacces.patch 660 BLAKE2B 651067a56e0bd0980a696ad12c8f
AUX libffi-3.3-power7-memcpy-2.patch 1086 BLAKE2B 954504aca37f2dd16913c3fb3d61e8fb5e8db017d897405905366f4701bf2357871dd41e86e59050733f04321e0155b03683577f132504aec5c476cc78323be6 SHA512 5a0d8590c2e53e20e4384dad704060a2c781b91487a0e14d2f1521f69b722ccc60e25b84c38f9ded65b01bef49250e07c6935be577d100aea18496abfbe374f5
AUX libffi-3.3-power7-memcpy.patch 1681 BLAKE2B 6e3df741b07718f13c347ae54fe82bbf0f433790d14dff4114ffa77f2c3700460801af3fc5a649589ab2d1d0122db0729cd1aaa5321ea3f7822b1cd4d7f64b05 SHA512 13eb09d8080cadedb959c8d62d37f80bf3c32fbe488fdb59955ff6c8649f1086baaedb015e47ee52de65836f57bc172dbce2d2b3bc1aee6aca07eb9da451cf70
AUX libffi-3.3-power7.patch 1172 BLAKE2B 42408c0774553fde9c086ea3c2b0d0152d15a9dce63860e8884c683ce92553c3db38d6fdddcdee644f7819f56a28a12e639ee05a0956cf0fa3fed521157754f7 SHA512 17062f152ce2aa8d46e4e01c3c0b8e52c67d30c3405b9b2f40656dfe731c774fd67ff3ad397f426d9e56ca4fe4ec4908f5c8f6082d52975cf19171ca4e39c534
+AUX libffi-3.3-ppc-int128.patch 2309 BLAKE2B 5b0c89e8f9f63329d2cb796d23b3a22c48b7761956e18fd383636efdc75e2558cb5d6615dd1ec965034d93061314711ee2ad533f49522a365049d5451bcebf19 SHA512 3b47dde00428ebc536f0f73fc7295d4c554f65a35502e855e808893eb3940d68f903a96cd6f24f0eb5f83a405d10bb83feef19538e490ceeeba99a22a0b96bcd
+AUX libffi-3.3-ppc-vector-offset.patch 1425 BLAKE2B 334ed26ea082c603cfbf43d37e9cf64ac34a7054857743a9fbf5d05c7226402dfec4fd955cc3dc5652f57712bbaadcd0551ff727cfd8f8305edf38daa9814be2 SHA512 742ef73d95e39eefcbcfb423c4729966a31bf88ff00d20eab6c4db1db04e97f53784bf29111c57c577d1f6264735ee4ed797b4537a74d0ae1753de2990cd3ce9
AUX libffi-3.3_rc0-ppc-macos-go.patch 2100 BLAKE2B 7ae1309b08be9293acee042d141bb632b0763af9e14200ef7206db763b01e289a68ce544709c8abc5a86adca5f1c0c895c6bf24f667429b118bf660ffa95bb39 SHA512 4684b87f1d36a0098ebde7996e4417718b3535eb66ec7c619be74fa30e4446849c246b491cad3aea1ac44bdf9e9fbf6e952000cb85299faf5b1d8598136b184b
DIST libffi-3.3.tar.gz 1305466 BLAKE2B cddc40729a30a9bd34d675809f51f8d1b4ccaffa54bc6dd6f7e965f4e260edd34754719f9f6247c8957aeb7cf154d56ce1fe16a54c3f1ad39afbebdf41d23caa SHA512 61513801a156f11420f541d325de697131846487122d6bdcf5491b18b4da788589f5c0bb07e88e396495d3be5830d74e9135595e2b8ddbfe95c448d8597fbd6f
-EBUILD libffi-3.3-r1.ebuild 2792 BLAKE2B cb9ff2ba67aaa92522f8e7a4d808db29c006bad4bd2eee00f1ddab0939c8a6bbb2ac05cd98d09a990787f12cf284523264daec11c50acd79c383f9af96c0094c SHA512 90c1e7e9f7d186f6100dc0d5a4c4bbc45c14cc6dfc4bc803bc1853c6b18a3ac5ce17ed30a84967ddee59881c3e2c8764efb4092a844ed81eec01ad7d20d7c6e0
-MISC metadata.xml 2034 BLAKE2B f63969afac51937e2c761f164de6a40addd97871037f20e4c6fa0da80bc67d6e7580d3a1eb51b943e0195bb7f480abbf461d00da6e2317eade55d2ceeb1cb3fa SHA512 c1c48a13ac9818b7e409180b27751f172800c217d1a37db954490478abb0a3e8b585631a25507b1ac85b11f41da95b15ecf139b6880801b6a8ea805749efc1bd
+EBUILD libffi-3.3-r1.ebuild 2609 BLAKE2B 36fbde1f703bc2e49882a24f91f5d039972f0825bc2ea864c5a110ff033b897051fa9d675f2fd61624d8f523d3532f0028b2f5b6144d2779ba9f992a2a706a35 SHA512 966a1a6d4b98de9a0eb7b54fb2e54eb7fb7caf9f574806740304cdf002fae5694a0e519c96bc77e6feda9eb90bc9489e51f29acfa6afb771cb35ab41652d2c8b
+EBUILD libffi-3.3-r2.ebuild 2702 BLAKE2B e83880bae34bc6dfe8fae53807df7a4dd2f12fedfb15f79ec7650b8f7c132956811131e6a3369e0e37ce1626a1d4876a817720cbd09289a00bb0db31820626ba SHA512 6c5e125e77c0f37848266d7c2e628a085caca15cec1e67d0db235359d59aed004f35b0999011d6b22d70854de0768505a47abd618025c477a28721004c00f668
+MISC metadata.xml 1956 BLAKE2B fa40a1a4cfe54a77a1a7d8e4d5ae8a1f80c4497c38a2e700e242ddab26090ccbaf4738e67c288e5f337c393aab085b161f23138f50fb8b1bfdac2de1eb440428 SHA512 87638bd9030782e1e8e917fc1fb9e28744b7dfd927d42e36a249cec835f734db3c6430c2ebc807b7541fd9ba8d805b57ced30486e8bd046dde2edb56a4af7906
diff --git a/dev-libs/libffi/files/libffi-3.3-ppc-int128.patch b/dev-libs/libffi/files/libffi-3.3-ppc-int128.patch
new file mode 100644
index 000000000000..ed53ae99902f
--- /dev/null
+++ b/dev-libs/libffi/files/libffi-3.3-ppc-int128.patch
@@ -0,0 +1,63 @@
+From 4f9e20ac51ce13d46fed3c869e1deb6d9bb89444 Mon Sep 17 00:00:00 2001
+From: Andrew Geissler <geissonator@users.noreply.github.com>
+Date: Fri, 1 May 2020 06:58:30 -0500
+Subject: [PATCH] ffi_powerpc.h: fix build failure with powerpc7 (#561)
+
+This is a patch pulled down from the following:
+https://github.com/buildroot/buildroot/blob/78926f610b1411b03464152472fd430012deb9ac/package/libffi/0004-ffi_powerpc.h-fix-build-failure-with-powerpc7.patch
+
+This issue is being hit on OpenBMC code when pulling the latest
+libffi tag and building on a P8 ppc64le machine. I verified this
+patch fixes the issue we are seeing.
+
+Below is the original commit message:
+
+Sicne commit 73dd43afc8a447ba98ea02e9aad4c6898dc77fb0, build on powerpc7
+fails on:
+
+In file included from ../src/powerpc/ffi.c:33:0:
+../src/powerpc/ffi_powerpc.h:61:9: error: '_Float128' is not supported on this target
+ typedef _Float128 float128;
+ ^~~~~~~~~
+
+Fix this build failure by checking for __HAVE_FLOAT128 before using
+_Float128, as _Float128 is enabled only on specific conditions, see
+output/host/powerpc64-buildroot-linux-gnu/sysroot/usr/include/bits/floatn.h:
+
+ /* Defined to 1 if the current compiler invocation provides a
+ floating-point type with the IEEE 754 binary128 format, and this glibc
+ includes corresponding *f128 interfaces for it. */
+ #if defined _ARCH_PWR8 && defined __LITTLE_ENDIAN__ && (_CALL_ELF == 2) \
+ && defined __FLOAT128__ && !defined __NO_LONG_DOUBLE_MATH
+ # define __HAVE_FLOAT128 1
+ #else
+ # define __HAVE_FLOAT128 0
+ #endif
+
+Fixes:
+ - http://autobuild.buildroot.org/results/5c9dd8fb3b6a128882b6250f197c80232d8a3b53
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
+
+Co-authored-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ src/powerpc/ffi_powerpc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
+index 8e2f2f0..960a5c4 100644
+--- a/src/powerpc/ffi_powerpc.h
++++ b/src/powerpc/ffi_powerpc.h
+@@ -57,7 +57,7 @@ typedef union
+ double d;
+ } ffi_dblfl;
+
+-#if defined(__FLOAT128_TYPE__)
++#if defined(__FLOAT128_TYPE__) && defined(__HAVE_FLOAT128)
+ typedef _Float128 float128;
+ #elif defined(__FLOAT128__)
+ typedef __float128 float128;
+--
+2.27.0
+
diff --git a/dev-libs/libffi/files/libffi-3.3-ppc-vector-offset.patch b/dev-libs/libffi/files/libffi-3.3-ppc-vector-offset.patch
new file mode 100644
index 000000000000..4bcd27e4f152
--- /dev/null
+++ b/dev-libs/libffi/files/libffi-3.3-ppc-vector-offset.patch
@@ -0,0 +1,53 @@
+From 4d6d2866ae43e55325e8ee96561221804602cd7a Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Fri, 21 Feb 2020 21:06:15 -0600
+Subject: [PATCH] Update powerpc sysv assembly for ffi_powerpc.h changes (#541)
+
+Some of the flag bits were moved when adding powerpc64 vector support.
+
+Fixes #536
+---
+ src/powerpc/sysv.S | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/src/powerpc/sysv.S b/src/powerpc/sysv.S
+index 1474ce7..df97734 100644
+--- a/src/powerpc/sysv.S
++++ b/src/powerpc/sysv.S
+@@ -104,17 +104,16 @@ ENTRY(ffi_call_SYSV)
+ bctrl
+
+ /* Now, deal with the return value. */
+- mtcrf 0x01,%r31 /* cr7 */
++ mtcrf 0x03,%r31 /* cr6-cr7 */
+ bt- 31,L(small_struct_return_value)
+ bt- 30,L(done_return_value)
+ #ifndef __NO_FPRS__
+ bt- 29,L(fp_return_value)
+ #endif
+ stw %r3,0(%r30)
+- bf+ 28,L(done_return_value)
++ bf+ 27,L(done_return_value)
+ stw %r4,4(%r30)
+- mtcrf 0x02,%r31 /* cr6 */
+- bf 27,L(done_return_value)
++ bf 26,L(done_return_value)
+ stw %r5,8(%r30)
+ stw %r6,12(%r30)
+ /* Fall through... */
+@@ -145,10 +144,9 @@ L(done_return_value):
+ #ifndef __NO_FPRS__
+ L(fp_return_value):
+ .cfi_restore_state
+- bf 28,L(float_return_value)
++ bf 27,L(float_return_value)
+ stfd %f1,0(%r30)
+- mtcrf 0x02,%r31 /* cr6 */
+- bf 27,L(done_return_value)
++ bf 26,L(done_return_value)
+ stfd %f2,8(%r30)
+ b L(done_return_value)
+ L(float_return_value):
+--
+2.27.0
+
diff --git a/dev-libs/libffi/libffi-3.3-r1.ebuild b/dev-libs/libffi/libffi-3.3-r1.ebuild
index f5c93c381235..996855591ae6 100644
--- a/dev-libs/libffi/libffi-3.3-r1.ebuild
+++ b/dev-libs/libffi/libffi-3.3-r1.ebuild
@@ -14,7 +14,7 @@ SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.ta
LICENSE="MIT"
SLOT="0/7" # SONAME=libffi.so.7
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="debug pax_kernel static-libs test test-bhaible"
+IUSE="debug pax_kernel static-libs test"
RESTRICT="!test? ( test )"
@@ -50,15 +50,6 @@ pkg_setup() {
fi
}
-src_prepare() {
- default
-
- if ! use test-bhaible; then
- # These tests are very heavyweight (hours of runtime)
- rm -v testsuite/libffi.bhaible/bhaible.exp || die
- fi
-}
-
multilib_src_configure() {
use userland_BSD && export HOST="${CHOST}"
# --includedir= path maintains a few properties:
diff --git a/dev-libs/libffi/libffi-3.3-r2.ebuild b/dev-libs/libffi/libffi-3.3-r2.ebuild
new file mode 100644
index 000000000000..4cec983bd172
--- /dev/null
+++ b/dev-libs/libffi/libffi-3.3-r2.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit multilib multilib-minimal toolchain-funcs
+
+MY_PV=${PV/_rc/-rc}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="a portable, high level programming interface to various calling conventions"
+HOMEPAGE="https://sourceware.org/libffi/"
+SRC_URI="https://github.com/libffi/libffi/releases/download/v${MY_PV}/${MY_P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0/7" # SONAME=libffi.so.7
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug pax_kernel static-libs test"
+
+RESTRICT="!test? ( test )"
+
+RDEPEND=""
+DEPEND=""
+BDEPEND="test? ( dev-util/dejagnu )"
+
+DOCS="ChangeLog* README.md"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.2.1-o-tmpfile-eacces.patch #529044
+ "${FILESDIR}"/${PN}-3.3_rc0-ppc-macos-go.patch
+ "${FILESDIR}"/${PN}-3.3-power7.patch
+ "${FILESDIR}"/${PN}-3.3-power7-memcpy.patch
+ "${FILESDIR}"/${PN}-3.3-power7-memcpy-2.patch
+ "${FILESDIR}"/${PN}-3.3-ppc-int128.patch
+ "${FILESDIR}"/${PN}-3.3-ppc-vector-offset.patch
+)
+
+S=${WORKDIR}/${MY_P}
+
+ECONF_SOURCE=${S}
+
+pkg_setup() {
+ # Check for orphaned libffi, see https://bugs.gentoo.org/354903 for example
+ if [[ ${ROOT} == "/" && ${EPREFIX} == "" ]] && ! has_version ${CATEGORY}/${PN}; then
+ local base="${T}"/conftest
+ echo 'int main() { }' > "${base}".c
+ $(tc-getCC) -o "${base}" "${base}".c -lffi >&/dev/null
+ if [ $? -eq 0 ]; then
+ eerror "The linker reported linking against -lffi to be working while it shouldn't have."
+ eerror "This is wrong and you should find and delete the old copy of libffi before continuing."
+ die "The system is in inconsistent state with unknown libffi installed."
+ fi
+ fi
+}
+
+multilib_src_configure() {
+ use userland_BSD && export HOST="${CHOST}"
+ # --includedir= path maintains a few properties:
+ # 1. have stable name across libffi versions: some packages like
+ # dev-lang/ghc or kde-frameworks/networkmanager-qt embed
+ # ${includedir} at build-time. Don't require those to be
+ # rebuilt unless SONAME changes. bug #695788
+ #
+ # We use /usr/.../${PN} (instead of former /usr/.../${P}).
+ #
+ # 2. have ${ABI}-specific location as ffi.h is target-dependent.
+ #
+ # We use /usr/$(get_libdir)/... to have ABI identifier.
+ econf \
+ --includedir="${EPREFIX}"/usr/$(get_libdir)/${PN}/include \
+ --disable-multi-os-directory \
+ $(use_enable static-libs static) \
+ $(use_enable pax_kernel pax_emutramp) \
+ $(use_enable debug)
+}
+
+multilib_src_install_all() {
+ find "${ED}" -name "*.la" -delete || die
+ einstalldocs
+}
diff --git a/dev-libs/libffi/metadata.xml b/dev-libs/libffi/metadata.xml
index ee959783eead..6e9a28c5ac88 100644
--- a/dev-libs/libffi/metadata.xml
+++ b/dev-libs/libffi/metadata.xml
@@ -35,7 +35,6 @@
</longdescription>
<use>
<flag name="pax_kernel">Use PaX emulated trampolines, for we can't use PROT_EXEC</flag>
- <flag name="test-bhaible">Run extended regression tests (very slow).</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:libffi_project:libffi</remote-id>