summaryrefslogtreecommitdiff
path: root/dev-libs/libffi
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-12-13 05:39:05 +0000
committerV3n3RiX <venerix@koprulu.sector>2023-12-13 05:39:05 +0000
commit22b4e2ee9c8011b75d7c030d6129a7487494aeba (patch)
treedac0fe56378ac0d61ca4558245fb3702bbf89821 /dev-libs/libffi
parent05644e4ce4886d97a712fcdca7d4144a7ced4191 (diff)
gentoo auto-resync : 13:12:2023 - 05:39:04
Diffstat (limited to 'dev-libs/libffi')
-rw-r--r--dev-libs/libffi/Manifest2
-rw-r--r--dev-libs/libffi/files/libffi-3.4.4-lld-17.patch34
-rw-r--r--dev-libs/libffi/libffi-3.4.4-r3.ebuild82
3 files changed, 118 insertions, 0 deletions
diff --git a/dev-libs/libffi/Manifest b/dev-libs/libffi/Manifest
index 373dfbbe1e4b..bd851be7e9f2 100644
--- a/dev-libs/libffi/Manifest
+++ b/dev-libs/libffi/Manifest
@@ -1,9 +1,11 @@
AUX libffi-3.4.4-hppa-closure-function-ptrs.patch 5971 BLAKE2B ee754ca2d142022191cae572811082baed8321bc43a13efa4123bb455a721f0b88a8458a0337f3fe9572da9bc1251a1927ba7b2ceda926be0e25744cbe00875c SHA512 3384e316bdaf35022b0138f5ca4d51afab13c098278fa4d9780dc8400c524e4b49e51955e0c41a1bc7e7d2b959b1a808f91ffd2c5bd10009db38150d770dfa4a
AUX libffi-3.4.4-hppa-jump-table.patch 7872 BLAKE2B c78216a9912e26e74733870d1a0f8825d426ef2e72eeed1541695bdfa058f0e029844639018579f61f03bd1b8b399e4b70f3c3760646a569425414b3630dbe89 SHA512 5e72ceede9902a7e236204f930f16b387164f7bff8762b881f1eecb2b8431684e061ab086ec0b1e9d73e23affb1b618ef5dc051f47d3029c45f41eef328e42ff
AUX libffi-3.4.4-hppa-large-struct.patch 1129 BLAKE2B 3b172af9af01c629ce567309893e1b342b039a53a4992529b8395a426ed74a1741d6dceb660cb2b1d8c2ba1057e91bd08a52c54192ec1d429710322d2fe61ff9 SHA512 77eb9ca86651f550c4c9ae7b508cc0651bea7e17feac6f2a35963b1838c70aeeb2166606fe39f70e9e058a41a53979f2c599c1869a4714a420f2bb006d14107a
+AUX libffi-3.4.4-lld-17.patch 828 BLAKE2B 3462bc7db0cf754cb14a9fa0de6377da401c78d021d5e86fc51501d78e4c1104bd821093047af557f1ef8bb375b2eff7c26972524bf179fdfd926089fd8fefc7 SHA512 48d804fe7167c373c0cb3aafc969aedf555651d698857a791062d81e77ba88ba5db3fcabdf975040e19298d418ae12161160fc31e5515017cfc441fc61e66e63
AUX libffi-3.4.4-sparc-float-typo.patch 830 BLAKE2B cdec73bd227f0bcfb077ae0383bdea782886015189da8f3ac89d693a94967f1055edaa34462815709327ebc8a2c3d195a89090b3553db0ee7fa03b92c2341043 SHA512 3314e46725276df7fc91032a2446b9a379d54e9eceee0875952424bd6fd8b6e41a5103bcb990865b18f59ab3264db3bd106474b27a24b3e00196e9257f111022
DIST libffi-3.4.4.tar.gz 1362394 BLAKE2B 189fe1ffe9507f204581b0ab09995dc7e7b761bb4eac7e338e9f5ff81431aebcef6c182c1839c9f9acb2706697a260c67e6d1351cf7e2aed7c4eb5d694f6f8fd SHA512 88680aeb0fa0dc0319e5cd2ba45b4b5a340bc9b4bcf20b1e0613b39cd898f177a3863aa94034d8e23a7f6f44d858a53dcd36d1bb8dee13b751ef814224061889
EBUILD libffi-3.4.4-r1.ebuild 2386 BLAKE2B 2fed1f1f77934bcd7cb23bb9121205f4d89d35af7415b684fbccb20559fa34c266bc8e43076e38f5c8417d84fc3822ab374cb7ccbcf1528e76ad6b5d8e8378ec SHA512 ee51d4c56849f5e8f35d71ea01b82fb4b34fdceef9a6fa4af2c3a99eadb54ce140389336c8f00e6ce9172f8a385e48ce33aee9e274ca0ee47a3f12b862c7ca33
EBUILD libffi-3.4.4-r2.ebuild 2442 BLAKE2B 690b00a0f8211039ed20126515468c8042161fee63cfd6d2f600dc9c548ac389e440543b9609326a15c70bd9310fcb0c4534387f7e1309e4d3926d1a30cddb10 SHA512 3acd597611c1ea754f4cd5963a84ef23b1d5469e5b490eda944756a915501c29839a41e6bbda4409a2cb213e1c8eb19ccdc7ca56dc2041aa85758e5f3900fef4
+EBUILD libffi-3.4.4-r3.ebuild 2513 BLAKE2B 29712c6986e6288206241a3f8a4e0b6bf130178160a10897c0a41f8fbe023f0dac402e04d36013322c326986867209ef7379ab1909a25b00c727a8f7aadef749 SHA512 2547cc73f48de955a5e7da2ca1360613c05301bffc87b17347eb736dd28343675ff1b5cde6026fecddbed20bf9090edce7c463c4d67cf08d22a3a52f142666c2
EBUILD libffi-3.4.4.ebuild 2234 BLAKE2B e4bfd05eb22e58723aeae755e760106d5b03278ffcfc11c7d65c6db54bb489bf8a500a9a5b383fafe0d67792c51ed3319a080a43b853ae7b31a7a979966a4607 SHA512 94461cdfdd44e7eab0491063cbe845e4ccb448730135974864a4260d514bcd9ea81cb773a1f004b4ee8afb3937a5ec6ce55ba71bcc1556e8414048e06b50d6d3
MISC metadata.xml 2110 BLAKE2B 2653be2cf09c047e45e489d7265d00165ddab2f94744988e4e8bca449bd1e40eeab74cb0b8d7d47a2d8b73563869460fcccb06e1fbccad697a9f213be362cb03 SHA512 e1a280792b929d38451fea1eb360053ed3a452592094f3e327ce4a4ff7eb8e0119435e8ee98f215585d8d98440512b5b68f92d1cd472a3bfd12e2f382e1981a1
diff --git a/dev-libs/libffi/files/libffi-3.4.4-lld-17.patch b/dev-libs/libffi/files/libffi-3.4.4-lld-17.patch
new file mode 100644
index 000000000000..8e87814b23bf
--- /dev/null
+++ b/dev-libs/libffi/files/libffi-3.4.4-lld-17.patch
@@ -0,0 +1,34 @@
+https://bugs.gentoo.org/915086
+https://github.com/libffi/libffi/pull/800
+
+From 65f6869fd74630a9252ef89971b725b921f17061 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Tue, 10 Oct 2023 06:32:02 +0300
+Subject: [PATCH] Put optional symbols behind ifdefs
+
+Signed-off-by: Alfred Wingate <parona@protonmail.com>
+--- a/libffi.map.in
++++ b/libffi.map.in
+@@ -33,7 +33,10 @@ LIBFFI_BASE_8.0 {
+ ffi_raw_to_ptrarray;
+ ffi_raw_size;
+
++#if !FFI_NATIVE_RAW_API
+ ffi_java_raw_call;
++#endif
++
+ ffi_java_ptrarray_to_raw;
+ ffi_java_raw_to_ptrarray;
+ ffi_java_raw_size;
+@@ -62,8 +65,10 @@ LIBFFI_CLOSURE_8.0 {
+ ffi_prep_closure_loc;
+ ffi_prep_raw_closure;
+ ffi_prep_raw_closure_loc;
++#if !FFI_NATIVE_RAW_API
+ ffi_prep_java_raw_closure;
+ ffi_prep_java_raw_closure_loc;
++#endif
+ } LIBFFI_BASE_8.0;
+ #endif
+
+
diff --git a/dev-libs/libffi/libffi-3.4.4-r3.ebuild b/dev-libs/libffi/libffi-3.4.4-r3.ebuild
new file mode 100644
index 000000000000..d2f584049789
--- /dev/null
+++ b/dev-libs/libffi/libffi-3.4.4-r3.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib-minimal preserve-libs
+
+MY_PV=${PV/_rc/-rc}
+MY_P=${PN}-${MY_PV}
+
+DESCRIPTION="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"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="MIT"
+# This is a core package which is depended on by e.g. Python
+# Please use preserve-libs.eclass in pkg_{pre,post}inst to cover users
+# with FEATURES="-preserved-libs" or another package manager if SONAME
+# changes.
+SLOT="0/8" # SONAME=libffi.so.8
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="debug exec-static-trampoline pax-kernel static-libs test"
+
+RESTRICT="!test? ( test )"
+BDEPEND="test? ( dev-util/dejagnu )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-hppa-large-struct.patch
+ "${FILESDIR}"/${P}-hppa-closure-function-ptrs.patch
+ "${FILESDIR}"/${P}-hppa-jump-table.patch
+ "${FILESDIR}"/${P}-sparc-float-typo.patch
+ "${FILESDIR}"/${P}-lld-17.patch
+)
+
+src_prepare() {
+ default
+
+ if [[ ${CHOST} == arm64-*-darwin* ]] ; then
+ # ensure we use aarch64 asm, not x86 on arm64
+ sed -i -e 's/aarch64\*-\*-\*/arm64*-*-*|&/' \
+ configure configure.host || die
+ fi
+}
+
+multilib_src_configure() {
+ # --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_SOURCE="${S}" econf \
+ --includedir="${EPREFIX}"/usr/$(get_libdir)/${PN}/include \
+ --disable-multi-os-directory \
+ $(use_enable static-libs static) \
+ $(use_enable exec-static-trampoline exec-static-tramp) \
+ $(use_enable pax-kernel pax_emutramp) \
+ $(use_enable debug)
+}
+
+multilib_src_test() {
+ emake -Onone check
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ find "${ED}" -name "*.la" -delete || die
+}
+
+pkg_preinst() {
+ preserve_old_lib /usr/$(get_libdir)/libffi.so.7
+}
+
+pkg_postinst() {
+ preserve_old_lib_notify /usr/$(get_libdir)/libffi.so.7
+}