Accepting request 636994 from devel:languages:python
- Add 3184b0a675fc425b821b528d7fdf744b2f08dadf.patch as a workardond against https://bitbucket.org/cffi/cffi/issues/378/ (possible bug in GCC, see https://bugzilla.redhat.com/1552724). - Add e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch from upstream to remove some warnings. https://bitbucket.org/cffi/cffi/issues/384/ OBS-URL: https://build.opensuse.org/request/show/636994 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-cffi?expand=0&rev=22
This commit is contained in:
commit
5060e23178
46
3184b0a675fc425b821b528d7fdf744b2f08dadf.patch
Normal file
46
3184b0a675fc425b821b528d7fdf744b2f08dadf.patch
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Armin Rigo <arigo@tunes.org>
|
||||||
|
# Date 1536839482 -7200
|
||||||
|
# Node ID 3184b0a675fc425b821b528d7fdf744b2f08dadf
|
||||||
|
# Parent 97a61f7b0bcd48eb74f136280ffd8733e829f153
|
||||||
|
Issue 378
|
||||||
|
|
||||||
|
Workaround for a GCC bug
|
||||||
|
|
||||||
|
diff --git a/c/_cffi_backend.c b/c/_cffi_backend.c
|
||||||
|
--- a/c/_cffi_backend.c
|
||||||
|
+++ b/c/_cffi_backend.c
|
||||||
|
@@ -892,11 +892,21 @@
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef __GNUC__
|
||||||
|
+/* This is a workaround for what I think is a GCC bug on several
|
||||||
|
+ platforms. See issue #378. */
|
||||||
|
+__attribute__((noinline))
|
||||||
|
+#endif
|
||||||
|
+void _cffi_memcpy(char *target, const void *src, size_t size)
|
||||||
|
+{
|
||||||
|
+ memcpy(target, src, size);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
#define _write_raw_data(type) \
|
||||||
|
do { \
|
||||||
|
if (size == sizeof(type)) { \
|
||||||
|
type r = (type)source; \
|
||||||
|
- memcpy(target, &r, sizeof(type)); \
|
||||||
|
+ _cffi_memcpy(target, &r, sizeof(type)); \
|
||||||
|
return; \
|
||||||
|
} \
|
||||||
|
} while(0)
|
||||||
|
@@ -970,8 +980,8 @@
|
||||||
|
if (size == 2*sizeof(type)) { \
|
||||||
|
type r = (type)source.real; \
|
||||||
|
type i = (type)source.imag; \
|
||||||
|
- memcpy(target, &r, sizeof(type)); \
|
||||||
|
- memcpy(target+sizeof(type), &i, sizeof(type)); \
|
||||||
|
+ _cffi_memcpy(target, &r, sizeof(type)); \
|
||||||
|
+ _cffi_memcpy(target+sizeof(type), &i, sizeof(type)); \
|
||||||
|
return; \
|
||||||
|
} \
|
||||||
|
} while(0)
|
32
e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch
Normal file
32
e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Armin Rigo <arigo@tunes.org>
|
||||||
|
# Date 1537369554 -7200
|
||||||
|
# Node ID e2e324a2f13e3a646de6f6ff03e90ed7d37e2636
|
||||||
|
# Parent 8076f2ac1bd2b68b7015fb1fb936bd6907946756
|
||||||
|
Issue #384
|
||||||
|
|
||||||
|
Un-ignore the warnings when testing for them, in case someone runs
|
||||||
|
py.test with the PYTHONWARNINGS environment variable set
|
||||||
|
|
||||||
|
diff --git a/c/test_c.py b/c/test_c.py
|
||||||
|
--- a/c/test_c.py
|
||||||
|
+++ b/c/test_c.py
|
||||||
|
@@ -3968,6 +3968,7 @@
|
||||||
|
z3 = cast(BVoidP, 0)
|
||||||
|
z4 = cast(BUCharP, 0)
|
||||||
|
with warnings.catch_warnings(record=True) as w:
|
||||||
|
+ warnings.simplefilter("always")
|
||||||
|
newp(new_pointer_type(BIntP), z1) # warn
|
||||||
|
assert len(w) == 1
|
||||||
|
newp(new_pointer_type(BVoidP), z1) # fine
|
||||||
|
diff --git a/testing/cffi0/backend_tests.py b/testing/cffi0/backend_tests.py
|
||||||
|
--- a/testing/cffi0/backend_tests.py
|
||||||
|
+++ b/testing/cffi0/backend_tests.py
|
||||||
|
@@ -1386,6 +1386,7 @@
|
||||||
|
ffi = FFI(backend=self.Backend())
|
||||||
|
ffi.cdef("enum foo;")
|
||||||
|
with warnings.catch_warnings(record=True) as log:
|
||||||
|
+ warnings.simplefilter("always")
|
||||||
|
n = ffi.cast("enum foo", -1)
|
||||||
|
assert int(n) == 0xffffffff
|
||||||
|
assert str(log[0].message) == (
|
@ -1,4 +1,4 @@
|
|||||||
# cffi specifically installs C headers in site-packages, so :
|
# cffi specifically installs C headers in site-packages, so :
|
||||||
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/parse_c_type.h")
|
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/parse_c_type.h")
|
||||||
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/_cffi_include.h")
|
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/_cffi_(include|errors).h")
|
||||||
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/_embedding.h")
|
addFilter("devel-file-in-non-devel-package .*/site-packages/cffi/_embedding.h")
|
||||||
|
@ -1,3 +1,25 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 21 07:24:58 CEST 2018 - mcepl@suse.com
|
||||||
|
|
||||||
|
- Add 3184b0a675fc425b821b528d7fdf744b2f08dadf.patch as
|
||||||
|
a workardond against
|
||||||
|
https://bitbucket.org/cffi/cffi/issues/378/ (possible bug in
|
||||||
|
GCC, see https://bugzilla.redhat.com/1552724).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Sep 19 20:43:08 CEST 2018 - mcepl@suse.com
|
||||||
|
|
||||||
|
- Remove ignore-tests.patch -- testing what will happen
|
||||||
|
- Add e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch from
|
||||||
|
upstream to remove some warnings.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Sep 18 15:51:02 UTC 2018 - Matěj Cepl <mcepl@suse.com>
|
||||||
|
|
||||||
|
- Switch off falling tests with new patch
|
||||||
|
ignore-tests.patch instead of -k parameter for py.test.
|
||||||
|
https://bitbucket.org/cffi/cffi/issues/384/
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Mar 2 23:14:41 UTC 2018 - arun@gmx.de
|
Fri Mar 2 23:14:41 UTC 2018 - arun@gmx.de
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
# license that conforms to the Open Source Definition (Version 1.9)
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
# published by the Open Source Initiative.
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
@ -23,13 +23,18 @@ Release: 0
|
|||||||
Summary: Foreign Function Interface for Python calling C code
|
Summary: Foreign Function Interface for Python calling C code
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: Development/Languages/Python
|
Group: Development/Languages/Python
|
||||||
Url: http://cffi.readthedocs.org
|
URL: http://cffi.readthedocs.org
|
||||||
Source0: https://files.pythonhosted.org/packages/source/c/cffi/cffi-%{version}.tar.gz
|
Source0: https://files.pythonhosted.org/packages/source/c/cffi/cffi-%{version}.tar.gz
|
||||||
Source1: python-cffi-rpmlintrc
|
Source1: python-cffi-rpmlintrc
|
||||||
|
# https://bitbucket.org/cffi/cffi/issues/384/
|
||||||
|
Patch0: e2e324a2f13e3a646de6f6ff03e90ed7d37e2636.patch
|
||||||
|
# https://bitbucket.org/cffi/cffi/issues/378
|
||||||
|
Patch1: 3184b0a675fc425b821b528d7fdf744b2f08dadf.patch
|
||||||
BuildRequires: %{python_module devel}
|
BuildRequires: %{python_module devel}
|
||||||
BuildRequires: %{python_module pycparser}
|
BuildRequires: %{python_module pycparser}
|
||||||
BuildRequires: %{python_module pytest}
|
BuildRequires: %{python_module pytest}
|
||||||
BuildRequires: %{python_module setuptools}
|
BuildRequires: %{python_module setuptools}
|
||||||
|
BuildRequires: fdupes
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: python-rpm-macros
|
BuildRequires: python-rpm-macros
|
||||||
@ -43,6 +48,7 @@ is to provide a convenient and reliable way of calling C code from Python.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n cffi-%{version}
|
%setup -q -n cffi-%{version}
|
||||||
|
%autopatch -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="%{optflags}"
|
export CFLAGS="%{optflags}"
|
||||||
@ -50,12 +56,13 @@ export CFLAGS="%{optflags}"
|
|||||||
|
|
||||||
%install
|
%install
|
||||||
%python_install
|
%python_install
|
||||||
|
%python_expand %fdupes %{buildroot}%{$python_sitearch}
|
||||||
|
|
||||||
%check
|
%check
|
||||||
%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} py.test-%$python_bin_suffix -k "not test_init_once_multithread" c/ testing/
|
%python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} py.test-%$python_bin_suffix -W ignore::UserWarning c/ testing/
|
||||||
|
|
||||||
%files %{python_files}
|
%files %{python_files}
|
||||||
%doc LICENSE
|
%license LICENSE
|
||||||
%{python_sitearch}/*
|
%{python_sitearch}/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
x
Reference in New Issue
Block a user