From 3cf7c3ef441822c889356fd1812ebf2944a59851 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 25 Aug 2020 10:45:55 +0100 Subject: gentoo resync : 25.08.2020 --- dev-libs/libffi/Manifest | 7 +- dev-libs/libffi/files/libffi-3.3-ppc-int128.patch | 63 +++++++++++++++++ .../files/libffi-3.3-ppc-vector-offset.patch | 53 +++++++++++++++ dev-libs/libffi/libffi-3.3-r1.ebuild | 11 +-- dev-libs/libffi/libffi-3.3-r2.ebuild | 79 ++++++++++++++++++++++ dev-libs/libffi/metadata.xml | 1 - 6 files changed, 201 insertions(+), 13 deletions(-) create mode 100644 dev-libs/libffi/files/libffi-3.3-ppc-int128.patch create mode 100644 dev-libs/libffi/files/libffi-3.3-ppc-vector-offset.patch create mode 100644 dev-libs/libffi/libffi-3.3-r2.ebuild (limited to 'dev-libs/libffi') 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 +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 +Signed-off-by: Andrew Geissler + +Co-authored-by: Fabrice Fontaine +--- + 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 +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 @@ Use PaX emulated trampolines, for we can't use PROT_EXEC - Run extended regression tests (very slow). cpe:/a:libffi_project:libffi -- cgit v1.2.3