Update to 1.15.1
This commit is contained in:
parent
b68667442d
commit
3ab6ef4f81
|
@ -1,59 +0,0 @@
|
|||
From 4d0cc66daf88f477f3a11262d0e2e093f9397e2c Mon Sep 17 00:00:00 2001
|
||||
From: Armin Rigo <arigo@tunes.org>
|
||||
Date: Tue, 29 Mar 2022 11:48:33 +0200
|
||||
Subject: [PATCH] Issue #531
|
||||
|
||||
on ppc64le, libffi requires 16 bytes alignment for at least the return
|
||||
value of functions if that is 'long double'.
|
||||
---
|
||||
c/_cffi_backend.c | 11 ++++++++---
|
||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/c/_cffi_backend.c b/c/_cffi_backend.c
|
||||
index ffecbf9a..ce2cacd9 100644
|
||||
--- a/c/_cffi_backend.c
|
||||
+++ b/c/_cffi_backend.c
|
||||
@@ -5665,7 +5665,8 @@ static ffi_type *fb_fill_type(struct funcbuilder_s *fb, CTypeDescrObject *ct,
|
||||
}
|
||||
}
|
||||
|
||||
-#define ALIGN_ARG(n) ((n) + 7) & ~7
|
||||
+#define ALIGN_TO(n, a) ((n) + ((a)-1)) & ~((a)-1)
|
||||
+#define ALIGN_ARG(n) ALIGN_TO(n, 8)
|
||||
|
||||
static int fb_build(struct funcbuilder_s *fb, PyObject *fargs,
|
||||
CTypeDescrObject *fresult)
|
||||
@@ -5690,10 +5691,12 @@ static int fb_build(struct funcbuilder_s *fb, PyObject *fargs,
|
||||
/* exchange data size */
|
||||
/* first, enough room for an array of 'nargs' pointers */
|
||||
exchange_offset = nargs * sizeof(void*);
|
||||
+ /* then enough room for the result --- which means at least
|
||||
+ sizeof(ffi_arg), according to the ffi docs, but we also
|
||||
+ align according to the result type, for issue #531 */
|
||||
+ exchange_offset = ALIGN_TO(exchange_offset, fb->rtype->alignment);
|
||||
exchange_offset = ALIGN_ARG(exchange_offset);
|
||||
cif_descr->exchange_offset_arg[0] = exchange_offset;
|
||||
- /* then enough room for the result --- which means at least
|
||||
- sizeof(ffi_arg), according to the ffi docs */
|
||||
i = fb->rtype->size;
|
||||
if (i < (Py_ssize_t)sizeof(ffi_arg))
|
||||
i = sizeof(ffi_arg);
|
||||
@@ -5721,6 +5724,7 @@ static int fb_build(struct funcbuilder_s *fb, PyObject *fargs,
|
||||
if (fb->atypes != NULL) {
|
||||
fb->atypes[i] = atype;
|
||||
/* exchange data size */
|
||||
+ exchange_offset = ALIGN_TO(exchange_offset, atype->alignment);
|
||||
exchange_offset = ALIGN_ARG(exchange_offset);
|
||||
cif_descr->exchange_offset_arg[1 + i] = exchange_offset;
|
||||
exchange_offset += atype->size;
|
||||
@@ -5737,6 +5741,7 @@ static int fb_build(struct funcbuilder_s *fb, PyObject *fargs,
|
||||
}
|
||||
|
||||
#undef ALIGN_ARG
|
||||
+#undef ALIGN_TO
|
||||
|
||||
static void fb_cat_name(struct funcbuilder_s *fb, const char *piece,
|
||||
int piecelen)
|
||||
--
|
||||
GitLab
|
||||
|
|
@ -1,106 +0,0 @@
|
|||
From 871bae572cafc3afb81eb13705945f0a6f708d54 Mon Sep 17 00:00:00 2001
|
||||
From: Armin Rigo <arigo@tunes.org>
|
||||
Date: Tue, 1 Feb 2022 08:00:11 +0100
|
||||
Subject: [PATCH] =?UTF-8?q?apply=20patch=20from=20Tom=C3=A1=C5=A1=20on=20P?=
|
||||
=?UTF-8?q?R=20111?=
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
--HG--
|
||||
branch : adapt-tests-for-python3.11
|
||||
---
|
||||
c/test_c.py | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 46 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/c/test_c.py b/c/test_c.py
|
||||
index 654584d9..906eb074 100644
|
||||
--- a/c/test_c.py
|
||||
+++ b/c/test_c.py
|
||||
@@ -1331,9 +1331,11 @@ def test_callback_exception():
|
||||
except ImportError:
|
||||
import io as cStringIO # Python 3
|
||||
import linecache
|
||||
- def matches(istr, ipattern, ipattern38):
|
||||
+ def matches(istr, ipattern, ipattern38, ipattern311):
|
||||
if sys.version_info >= (3, 8):
|
||||
ipattern = ipattern38
|
||||
+ if sys.version_info >= (3, 11):
|
||||
+ ipattern = ipattern311
|
||||
str, pattern = istr, ipattern
|
||||
while '$' in pattern:
|
||||
i = pattern.index('$')
|
||||
@@ -1387,6 +1389,16 @@ Traceback (most recent call last):
|
||||
File "$", line $, in check_value
|
||||
$
|
||||
ValueError: 42
|
||||
+""", """\
|
||||
+Exception ignored from cffi callback <function$Zcb1 at 0x$>:
|
||||
+Traceback (most recent call last):
|
||||
+ File "$", line $, in Zcb1
|
||||
+ $
|
||||
+ $
|
||||
+ File "$", line $, in check_value
|
||||
+ $
|
||||
+ $
|
||||
+ValueError: 42
|
||||
""")
|
||||
sys.stderr = cStringIO.StringIO()
|
||||
bigvalue = 20000
|
||||
@@ -1401,6 +1413,13 @@ Traceback (most recent call last):
|
||||
File "$", line $, in test_callback_exception
|
||||
$
|
||||
OverflowError: integer 60000 does not fit 'short'
|
||||
+""", """\
|
||||
+Exception ignored from cffi callback <function$Zcb1 at 0x$>, trying to convert the result back to C:
|
||||
+Traceback (most recent call last):
|
||||
+ File "$", line $, in test_callback_exception
|
||||
+ $
|
||||
+ $
|
||||
+OverflowError: integer 60000 does not fit 'short'
|
||||
""")
|
||||
sys.stderr = cStringIO.StringIO()
|
||||
bigvalue = 20000
|
||||
@@ -1449,6 +1468,19 @@ Traceback (most recent call last):
|
||||
File "$", line $, in test_callback_exception
|
||||
$
|
||||
TypeError: $integer$
|
||||
+""", """\
|
||||
+Exception ignored from cffi callback <function$Zcb1 at 0x$>, trying to convert the result back to C:
|
||||
+Traceback (most recent call last):
|
||||
+ File "$", line $, in test_callback_exception
|
||||
+ $
|
||||
+ $
|
||||
+OverflowError: integer 60000 does not fit 'short'
|
||||
+Exception ignored during handling of the above exception by 'onerror':
|
||||
+Traceback (most recent call last):
|
||||
+ File "$", line $, in test_callback_exception
|
||||
+ $
|
||||
+ $
|
||||
+TypeError: $integer$
|
||||
""")
|
||||
#
|
||||
sys.stderr = cStringIO.StringIO()
|
||||
@@ -1478,6 +1510,19 @@ Traceback (most recent call last):
|
||||
File "$", line $, in oops
|
||||
$
|
||||
AttributeError: 'str' object has no attribute 'append$
|
||||
+""", """\
|
||||
+Exception ignored from cffi callback <function$Zcb1 at 0x$>, trying to convert the result back to C:
|
||||
+Traceback (most recent call last):
|
||||
+ File "$", line $, in test_callback_exception
|
||||
+ $
|
||||
+ $
|
||||
+OverflowError: integer 60000 does not fit 'short'
|
||||
+Exception ignored during handling of the above exception by 'onerror':
|
||||
+Traceback (most recent call last):
|
||||
+ File "$", line $, in oops
|
||||
+ $
|
||||
+ $
|
||||
+AttributeError: 'str' object has no attribute 'append$
|
||||
""")
|
||||
finally:
|
||||
sys.stderr = orig_stderr
|
||||
--
|
||||
GitLab
|
||||
|
|
@ -1,15 +1,11 @@
|
|||
Name: python-cffi
|
||||
%global general_version 1.15.0
|
||||
%global general_version 1.15.1
|
||||
Version: %{general_version}%{?prerel:~%{prerel}}
|
||||
Release: 6%{?dist}
|
||||
Release: 0%{?dist}
|
||||
Summary: Foreign Function Interface for Python to call C code
|
||||
License: MIT
|
||||
URL: https://cffi.readthedocs.org/
|
||||
Source0: %{pypi_source cffi}
|
||||
Patch1: https://foss.heptapod.net/pypy/cffi/-/commit/871bae572cafc3afb81eb13705945f0a6f708d54.patch
|
||||
# on ppc64le, libffi requires 16 bytes alignment for at least the return
|
||||
# value of functions if that is 'long double':
|
||||
Patch2: https://foss.heptapod.net/pypy/cffi/-/commit/4d0cc66daf88f477f3a11262d0e2e093f9397e2c.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: libffi-devel
|
||||
|
@ -73,6 +69,10 @@ PYTHONPATH=%{buildroot}%{python3_sitearch} %{__python3} -m pytest c/ testing/
|
|||
%doc doc/build/html
|
||||
|
||||
%changelog
|
||||
* Mon Jul 11 2022 Lumír Balhar <lbalhar@redhat.com> - 1.15.1-0
|
||||
- Update to 1.15.1
|
||||
Resolves: rhbz#2102824
|
||||
|
||||
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.15.0-6
|
||||
- Rebuilt for Python 3.11
|
||||
|
||||
|
|
2
sources
2
sources
|
@ -1 +1 @@
|
|||
SHA512 (cffi-1.15.0.tar.gz) = ee83efde6f77f4a0c5889088c4c208ed7b9071fe06dfc16a8d2396de07f78fe859e1e39866760198a9d700f3b7359e8715e8a3e4907feb81d3fc4b8dd0dbaca1
|
||||
SHA512 (cffi-1.15.1.tar.gz) = e99cafcb029076abc29e435b490fa0573ee2856f4051b7ca8a5b38cd125d56dd9dae8b189f59ceb3d728a675da8ee83239e09e19f8b0feeddea4b186ab5173a5
|
||||
|
|
Loading…
Reference in New Issue