Rebase to libffi 3.4.4.

At the request of the RISC-V developers we are rebasing from
libffi-3.4.2 to libffi-3.4.4.

In order to test the rebase we used the Fedora Packaing tools
mass-prebuild tooling to rebuild 144 packages (direct reverse
dependencies of libffi) and evaluate the risk.

There were 8 package build failures that needed analysis. Of the
failures only 1 seemed related, Chromium, which failed to build with the
new libffi. The others: bustle, llvm[9.0,10,11,12], p11-kit and ruby
failed in the A-side and B-side tests. The Chromium build timed out when
building in COPR, and then passed the build without a timeout on the
A-side test (without libffi). This failure seems spurious and so I am
moving forward with the rebase.
This commit is contained in:
Carlos O'Donell 2023-02-03 15:57:10 -05:00
parent 94901f4732
commit a289e8606c
3 changed files with 8 additions and 34 deletions

View File

@ -1,26 +0,0 @@
From 83ce80f3194bbf95c39764d075b070389c0f8522 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Mon, 31 Jan 2022 09:21:53 +0000
Subject: [PATCH] powerpc64: fix handling of homogeneous float128 structs
If there is a homogeneous struct with float128 members, they should be
copied to vector register save area. The current code incorrectly copies
only the value of the first member, not increasing the pointer with each
iteration. Fix this.
---
src/powerpc/ffi_linux64.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/powerpc/ffi_linux64.c b/src/powerpc/ffi_linux64.c
index 4d50878e4..3454dacd3 100644
--- a/src/powerpc/ffi_linux64.c
+++ b/src/powerpc/ffi_linux64.c
@@ -680,7 +680,7 @@ ffi_prep_args64 (extended_cif *ecif, unsigned long *const stack)
{
if (vecarg_count < NUM_VEC_ARG_REGISTERS64
&& i < nfixedargs)
- memcpy (vec_base.f128++, arg.f128, sizeof (float128));
+ memcpy (vec_base.f128++, arg.f128++, sizeof (float128));
else
memcpy (next_arg.f128, arg.f128++, sizeof (float128));
if (++next_arg.f128 == gpr_end.f128)

View File

@ -3,19 +3,16 @@
%global multilib_arches %{ix86} x86_64
Name: libffi
Version: 3.4.2
Release: 9%{?dist}
Version: 3.4.4
Release: 1%{?dist}
Summary: A portable foreign function interface library
License: MIT
URL: http://sourceware.org/libffi
Source0: https://github.com/libffi/libffi/releases/download/v3.4.2/libffi-3.4.2.tar.gz
Source0: https://github.com/libffi/libffi/releases/download/v3.4.4/libffi-3.4.4.tar.gz
Source1: ffi-multilib.h
Source2: ffitarget-multilib.h
# https://github.com/libffi/libffi/pull/689
Patch0: libffi-3.4.2-ppc.patch
BuildRequires: make
BuildRequires: gcc
%if %{without bootstrap}
@ -106,7 +103,7 @@ install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_includedir}/ffitarget.h
%license LICENSE
%doc README.md
%{_libdir}/libffi.so.8
%{_libdir}/libffi.so.8.1.0
%{_libdir}/libffi.so.8.1.2
%files devel
%{_libdir}/pkgconfig/*.pc
@ -116,6 +113,9 @@ install -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_includedir}/ffitarget.h
%{_infodir}/libffi.info.*
%changelog
* Fri Feb 03 2023 Carlos O'Donell <carlos@redhat.com> - 3.4.4-1
- Rebase to libffi 3.4.4.
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 3.4.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (libffi-3.4.2.tar.gz) = 31bad35251bf5c0adb998c88ff065085ca6105cf22071b9bd4b5d5d69db4fadf16cadeec9baca944c4bb97b619b035bb8279de8794b922531fddeb0779eb7fb1
SHA512 (libffi-3.4.4.tar.gz) = 88680aeb0fa0dc0319e5cd2ba45b4b5a340bc9b4bcf20b1e0613b39cd898f177a3863aa94034d8e23a7f6f44d858a53dcd36d1bb8dee13b751ef814224061889