aboutsummaryrefslogtreecommitdiff
path: root/lang/pypy
diff options
context:
space:
mode:
authorDavid Naylor <dbn@FreeBSD.org>2017-11-04 09:33:51 +0000
committerDavid Naylor <dbn@FreeBSD.org>2017-11-04 09:33:51 +0000
commit4cb488e0ff92041d3cae9c12c598d69c36bd0b9d (patch)
tree026e05d2ee323d8aefb3135f7d6d04df9ba54e8f /lang/pypy
parent45a2358a50bba4a378d1a2b1da73dea2984e2a55 (diff)
downloadports-4cb488e0ff92041d3cae9c12c598d69c36bd0b9d.tar.gz
ports-4cb488e0ff92041d3cae9c12c598d69c36bd0b9d.zip
lang/pypy(3): update to 5.9
- add lubunwind as dependency: required by vmprof - disable vmprof on FreeBSD 10: missing base support - implement support for handles with ctypes.CDLL: fix dynamic loading of shared objects - enable various tests that were not working on FreeBSD 9 - mark get_profile_path as xfail on FreeBSD - handle definition of char16_t and char32_t on libc++ for __cplusplus < 201103L (libstdc++ does not do this) - other minor fixes ChangeLog: - NumPy and Pandas now work on lang/pypy - Cython 0.27.1 supports more projects with PyPy - JSON parser improvements decrease memory by up to 50% and increase speed by up to 15% - CFFI updated to 1.11.1
Notes
Notes: svn path=/head/; revision=453445
Diffstat (limited to 'lang/pypy')
-rw-r--r--lang/pypy/Makefile14
-rw-r--r--lang/pypy/bsd.pypy.cffi.mk2
-rw-r--r--lang/pypy/distinfo6
-rw-r--r--lang/pypy/files/patch-lib-python_2.7_ctypes_____init____.py26
-rw-r--r--lang/pypy/files/patch-pypy_module___rawffi_alt_interp__funcptr.py58
-rw-r--r--lang/pypy/files/patch-pypy_module___vmprof_test_test____vmprof.py15
-rw-r--r--lang/pypy/files/patch-pypy_module_termios_test_test__termios.py12
-rw-r--r--lang/pypy/files/patch-pypy_module_test__lib__pypy_cffi__tests_cffi1_test__recompiler.py11
-rw-r--r--lang/pypy/files/patch-pypy_module_test__lib__pypy_pyrepl_____init____.py9
-rw-r--r--lang/pypy/files/patch-pypy_module_test__lib__pypy_pyrepl_test__readline.py11
-rw-r--r--lang/pypy/files/patch-pypy_tool_cpyext_extbuild.py19
-rw-r--r--lang/pypy/files/patch-rpython_rlib_libffi.py19
-rw-r--r--lang/pypy/files/patch-rpython_rlib_rvmprof_cintf.py14
-rw-r--r--lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_machine.c17
-rw-r--r--lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_vmp__stack.c10
-rw-r--r--lang/pypy/files/patch-rpython_rtyper_lltypesystem_ll2ctypes.py20
-rw-r--r--lang/pypy/pkg-plist3
17 files changed, 241 insertions, 25 deletions
diff --git a/lang/pypy/Makefile b/lang/pypy/Makefile
index 2f5ecbb293b6..9bd230a346bf 100644
--- a/lang/pypy/Makefile
+++ b/lang/pypy/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME?= pypy
-DISTVERSION?= 5.8.0 # Also update bsd.pypy.cffi.mk
+DISTVERSION?= 5.9.0 # Also update bsd.pypy.cffi.mk
CATEGORIES= lang python
MASTER_SITES= https://bitbucket.org/pypy/pypy/downloads/ http://buildbot.pypy.org/mirror/
DISTNAME?= ${PORTNAME}2-v${PORTVERSION}-src
@@ -15,7 +15,8 @@ LICENSE_COMB= multi
LICENSE_FILE_MIT= ${WRKSRC}/LICENSE
LIB_DEPENDS= libexpat.so:textproc/expat2 \
- libffi.so:devel/libffi
+ libffi.so:devel/libffi \
+ libunwind.so:devel/libunwind
TEST_DEPENDS= ${LOCALBASE}/${PYPY_DIR}/lib_pypy/_gdbm_cffi.${PYPY_CFFI_VER}.so:databases/pypy-gdbm \
${LOCALBASE}/${PYPY_DIR}/lib_pypy/_sqlite3_cffi.${PYPY_CFFI_VER}.so:databases/pypy-sqlite3 \
${LOCALBASE}/${PYPY_DIR}/lib_pypy/_tkinter/tklib_cffi.${PYPY_CFFI_VER}.so:x11-toolkits/pypy-tkinter
@@ -104,12 +105,9 @@ PLIST= ${.CURDIR}/pkg-plist
.include "${MASTERDIR}/bsd.pypy.mk"
.include <bsd.port.pre.mk>
-.if ${ARCH} == "i386" || ${ARCH} == "armv6"
-PYPY_BITS= 32
-.elif ${ARCH} == "amd64" || ${ARCH} == "powerpc64"
-PYPY_BITS= 64
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000
+PYPY_ARGS= --withoutmod-_vmprof
.endif
-PLIST_SUB+= PYPY_BITS="${PYPY_BITS}"
post-extract:
${FIND} ${WRKSRC} -name '*.swn' -delete
@@ -120,7 +118,7 @@ pre-build:
${MKDIR} ${WRKDIR}/build; \
(cd ${WRKSRC}/pypy/goal; \
${SETENV} ${MAKE_ENV} TMPDIR=${WRKDIR}/build \
- ${PYTHON_CMD} ../../rpython/bin/rpython --source -Ojit targetpypystandalone.py); \
+ ${PYTHON_CMD} ../../rpython/bin/rpython --source -Ojit targetpypystandalone.py ${PYPY_ARGS}); \
fi
post-build:
diff --git a/lang/pypy/bsd.pypy.cffi.mk b/lang/pypy/bsd.pypy.cffi.mk
index 571f986342d7..d3203ad3df07 100644
--- a/lang/pypy/bsd.pypy.cffi.mk
+++ b/lang/pypy/bsd.pypy.cffi.mk
@@ -11,7 +11,7 @@ PLIST_FILES= %%PYPY_DIR%%/lib_pypy/${CFFI_MODULE}_cffi.%%PYPY_CFFI_VER%%.so
CFFI_MODULE?= _${PORTNAME}
PYTHON_IMPL= pypy
-PYTHON_PORTVERSION?= 5.8.0
+PYTHON_PORTVERSION?= 5.9.0
PYTHON_PKGNAMEPREFIX= pypy-
PYTHON_CMD= ${LOCALBASE}/bin/${PYTHON_IMPL}
diff --git a/lang/pypy/distinfo b/lang/pypy/distinfo
index cf07ca8d3148..fc711ba204a2 100644
--- a/lang/pypy/distinfo
+++ b/lang/pypy/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1497478804
-SHA256 (pypy2-v5.8.0-src.tar.bz2) = 504c2d522595baf8775ae1045a217a2b120732537861d31b889d47c340b58bd5
-SIZE (pypy2-v5.8.0-src.tar.bz2) = 19163498
+TIMESTAMP = 1509042816
+SHA256 (pypy2-v5.9.0-src.tar.bz2) = de4bf05df47f1349dbac97233d9277bbaf1ef3331663ea2557fd5da3dbcfd0a7
+SIZE (pypy2-v5.9.0-src.tar.bz2) = 19175394
diff --git a/lang/pypy/files/patch-lib-python_2.7_ctypes_____init____.py b/lang/pypy/files/patch-lib-python_2.7_ctypes_____init____.py
new file mode 100644
index 000000000000..c4da33a7b185
--- /dev/null
+++ b/lang/pypy/files/patch-lib-python_2.7_ctypes_____init____.py
@@ -0,0 +1,26 @@
+--- lib-python/2.7/ctypes/__init__.py.orig 2017-10-03 10:49:20 UTC
++++ lib-python/2.7/ctypes/__init__.py
+@@ -360,14 +360,15 @@ class CDLL(object):
+ self._FuncPtr = _FuncPtr
+
+ if handle is None:
+- if flags & _FUNCFLAG_CDECL:
+- pypy_dll = _ffi.CDLL(name, mode)
+- else:
+- pypy_dll = _ffi.WinDLL(name, mode)
+- self.__pypy_dll__ = pypy_dll
+- handle = int(pypy_dll)
+- if _sys.maxint > 2 ** 32:
+- handle = int(handle) # long -> int
++ handle = 0
++ if flags & _FUNCFLAG_CDECL:
++ pypy_dll = _ffi.CDLL(name, mode, handle)
++ else:
++ pypy_dll = _ffi.WinDLL(name, mode, handle)
++ self.__pypy_dll__ = pypy_dll
++ handle = int(pypy_dll)
++ if _sys.maxint > 2 ** 32:
++ handle = int(handle) # long -> int
+ self._handle = handle
+
+ def __repr__(self):
diff --git a/lang/pypy/files/patch-pypy_module___rawffi_alt_interp__funcptr.py b/lang/pypy/files/patch-pypy_module___rawffi_alt_interp__funcptr.py
new file mode 100644
index 000000000000..699498f8cd16
--- /dev/null
+++ b/lang/pypy/files/patch-pypy_module___rawffi_alt_interp__funcptr.py
@@ -0,0 +1,58 @@
+--- pypy/module/_rawffi/alt/interp_funcptr.py.orig 2017-10-03 10:49:20 UTC
++++ pypy/module/_rawffi/alt/interp_funcptr.py
+@@ -314,7 +314,7 @@ W_FuncPtr.typedef = TypeDef(
+ # ========================================================================
+
+ class W_CDLL(W_Root):
+- def __init__(self, space, name, mode):
++ def __init__(self, space, name, mode, handle):
+ self.flags = libffi.FUNCFLAG_CDECL
+ self.space = space
+ if name is None:
+@@ -322,7 +322,7 @@ class W_CDLL(W_Root):
+ else:
+ self.name = name
+ try:
+- self.cdll = libffi.CDLL(name, mode)
++ self.cdll = libffi.CDLL(name, mode, handle)
+ except DLOpenError as e:
+ raise wrap_dlopenerror(space, e, self.name)
+ except OSError as e:
+@@ -344,9 +344,9 @@ class W_CDLL(W_Root):
+ def getidentifier(self, space):
+ return space.newint(self.cdll.getidentifier())
+
+-@unwrap_spec(name='fsencode_or_none', mode=int)
+-def descr_new_cdll(space, w_type, name, mode=-1):
+- return W_CDLL(space, name, mode)
++@unwrap_spec(name='fsencode_or_none', mode=int, handle=int)
++def descr_new_cdll(space, w_type, name, mode=-1, handle=0):
++ return W_CDLL(space, name, mode, handle)
+
+
+ W_CDLL.typedef = TypeDef(
+@@ -359,13 +359,13 @@ W_CDLL.typedef = TypeDef(
+ )
+
+ class W_WinDLL(W_CDLL):
+- def __init__(self, space, name, mode):
+- W_CDLL.__init__(self, space, name, mode)
++ def __init__(self, space, name, mode, handle):
++ W_CDLL.__init__(self, space, name, mode, handle)
+ self.flags = libffi.FUNCFLAG_STDCALL
+
+-@unwrap_spec(name='fsencode_or_none', mode=int)
+-def descr_new_windll(space, w_type, name, mode=-1):
+- return W_WinDLL(space, name, mode)
++@unwrap_spec(name='fsencode_or_none', mode=int, handle=int)
++def descr_new_windll(space, w_type, name, mode=-1, handle=0):
++ return W_WinDLL(space, name, mode, handle)
+
+
+ W_WinDLL.typedef = TypeDef(
+@@ -380,4 +380,4 @@ W_WinDLL.typedef = TypeDef(
+ # ========================================================================
+
+ def get_libc(space):
+- return W_CDLL(space, get_libc_name(), -1)
++ return W_CDLL(space, get_libc_name(), -1, 0)
diff --git a/lang/pypy/files/patch-pypy_module___vmprof_test_test____vmprof.py b/lang/pypy/files/patch-pypy_module___vmprof_test_test____vmprof.py
new file mode 100644
index 000000000000..e02c72e584c7
--- /dev/null
+++ b/lang/pypy/files/patch-pypy_module___vmprof_test_test____vmprof.py
@@ -0,0 +1,15 @@
+--- pypy/module/_vmprof/test/test__vmprof.py.orig 2017-10-30 18:35:14 UTC
++++ pypy/module/_vmprof/test/test__vmprof.py
+@@ -1,3 +1,4 @@
++import py
+ import sys
+ from rpython.tool.udir import udir
+ from pypy.tool.pytest.objspace import gettestobjspace
+@@ -107,6 +108,7 @@ class AppTestVMProf(object):
+ _vmprof.disable()
+ assert _vmprof.is_enabled() is False
+
++ @py.test.mark.xfail(sys.platform.startswith('freebsd'), reason = "not implemented")
+ def test_get_profile_path(self):
+ import _vmprof
+ tmpfile = open(self.tmpfilename, 'wb')
diff --git a/lang/pypy/files/patch-pypy_module_termios_test_test__termios.py b/lang/pypy/files/patch-pypy_module_termios_test_test__termios.py
new file mode 100644
index 000000000000..14ecd7e409b2
--- /dev/null
+++ b/lang/pypy/files/patch-pypy_module_termios_test_test__termios.py
@@ -0,0 +1,12 @@
+--- pypy/module/termios/test/test_termios.py.orig 2017-10-03 10:49:20 UTC
++++ pypy/module/termios/test/test_termios.py
+@@ -7,9 +7,6 @@ from rpython.tool.udir import udir
+ if os.name != 'posix':
+ py.test.skip('termios module only available on unix')
+
+-if sys.platform.startswith('freebsd'):
+- raise Exception('XXX seems to hangs on FreeBSD9')
+-
+ class TestTermios(object):
+ def setup_class(cls):
+ try:
diff --git a/lang/pypy/files/patch-pypy_module_test__lib__pypy_cffi__tests_cffi1_test__recompiler.py b/lang/pypy/files/patch-pypy_module_test__lib__pypy_cffi__tests_cffi1_test__recompiler.py
new file mode 100644
index 000000000000..e5c8dbbe4c97
--- /dev/null
+++ b/lang/pypy/files/patch-pypy_module_test__lib__pypy_cffi__tests_cffi1_test__recompiler.py
@@ -0,0 +1,11 @@
+--- pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py.orig 2017-10-30 18:06:00 UTC
++++ pypy/module/test_lib_pypy/cffi_tests/cffi1/test_recompiler.py
+@@ -2271,7 +2271,7 @@ def test_char16_char32_type(no_cpp=False
+ char32_t foo_4bytes(char32_t);
+ """)
+ lib = verify(ffi, "test_char16_char32_type" + no_cpp * "_nocpp", """
+- #if !defined(__cplusplus) || __cplusplus < 201103L
++ #if !defined(__cplusplus) || (!defined(_LIBCPP_VERSION) && __cplusplus < 201103L)
+ typedef uint_least16_t char16_t;
+ typedef uint_least32_t char32_t;
+ #endif
diff --git a/lang/pypy/files/patch-pypy_module_test__lib__pypy_pyrepl_____init____.py b/lang/pypy/files/patch-pypy_module_test__lib__pypy_pyrepl_____init____.py
new file mode 100644
index 000000000000..2720cc8d6c83
--- /dev/null
+++ b/lang/pypy/files/patch-pypy_module_test__lib__pypy_pyrepl_____init____.py
@@ -0,0 +1,9 @@
+--- pypy/module/test_lib_pypy/pyrepl/__init__.py.orig 2017-10-03 10:49:20 UTC
++++ pypy/module/test_lib_pypy/pyrepl/__init__.py
+@@ -1,6 +1,3 @@
+ import sys
+ import lib_pypy.pyrepl
+ sys.modules['pyrepl'] = sys.modules['lib_pypy.pyrepl']
+-
+-if sys.platform.startswith('freebsd'):
+- raise Exception('XXX seems to hangs on FreeBSD9')
diff --git a/lang/pypy/files/patch-pypy_module_test__lib__pypy_pyrepl_test__readline.py b/lang/pypy/files/patch-pypy_module_test__lib__pypy_pyrepl_test__readline.py
new file mode 100644
index 000000000000..d9740cd548cc
--- /dev/null
+++ b/lang/pypy/files/patch-pypy_module_test__lib__pypy_pyrepl_test__readline.py
@@ -0,0 +1,11 @@
+--- pypy/module/test_lib_pypy/pyrepl/test_readline.py.orig 2017-10-30 18:28:08 UTC
++++ pypy/module/test_lib_pypy/pyrepl/test_readline.py
+@@ -4,7 +4,7 @@ from .infrastructure import sane_term
+
+
+ @pytest.mark.skipif("os.name != 'posix' or 'darwin' in sys.platform or "
+- "'kfreebsd' in sys.platform")
++ "'freebsd' in sys.platform")
+ def test_raw_input():
+ import os
+ import pty
diff --git a/lang/pypy/files/patch-pypy_tool_cpyext_extbuild.py b/lang/pypy/files/patch-pypy_tool_cpyext_extbuild.py
new file mode 100644
index 000000000000..29918485e6b5
--- /dev/null
+++ b/lang/pypy/files/patch-pypy_tool_cpyext_extbuild.py
@@ -0,0 +1,19 @@
+--- pypy/tool/cpyext/extbuild.py.orig 2017-10-03 10:49:20 UTC
++++ pypy/tool/cpyext/extbuild.py
+@@ -244,13 +244,13 @@ def get_sys_info_app(base_dir):
+ if sys.platform == 'win32':
+ compile_extra = ["/we4013"]
+ link_extra = ["/LIBPATH:" + os.path.join(sys.exec_prefix, 'libs')]
+- elif sys.platform == 'darwin':
+- compile_extra = link_extra = None
+- pass
+ elif sys.platform.startswith('linux'):
+ compile_extra = [
+ "-O0", "-g", "-Werror=implicit-function-declaration", "-fPIC"]
+ link_extra = None
++ else:
++ compile_extra = link_extra = None
++ pass
+ return ExtensionCompiler(
+ builddir_base=base_dir,
+ include_extra=[get_python_inc()],
diff --git a/lang/pypy/files/patch-rpython_rlib_libffi.py b/lang/pypy/files/patch-rpython_rlib_libffi.py
new file mode 100644
index 000000000000..18147986f1f2
--- /dev/null
+++ b/lang/pypy/files/patch-rpython_rlib_libffi.py
@@ -0,0 +1,19 @@
+--- rpython/rlib/libffi.py.orig 2017-10-03 10:49:20 UTC
++++ rpython/rlib/libffi.py
+@@ -434,11 +434,12 @@ class Func(AbstractFuncPtr):
+
+ # XXX: it partially duplicate the code in clibffi.py
+ class CDLL(object):
+- def __init__(self, libname, mode=-1):
++ def __init__(self, libname, mode=-1, lib=0):
+ """Load the library, or raises DLOpenError."""
+- self.lib = rffi.cast(DLLHANDLE, 0)
+- with rffi.scoped_str2charp(libname) as ll_libname:
+- self.lib = dlopen(ll_libname, mode)
++ self.lib = rffi.cast(DLLHANDLE, lib)
++ if lib == 0:
++ with rffi.scoped_str2charp(libname) as ll_libname:
++ self.lib = dlopen(ll_libname, mode)
+
+ def __del__(self):
+ if self.lib:
diff --git a/lang/pypy/files/patch-rpython_rlib_rvmprof_cintf.py b/lang/pypy/files/patch-rpython_rlib_rvmprof_cintf.py
new file mode 100644
index 000000000000..02bf9e415ff7
--- /dev/null
+++ b/lang/pypy/files/patch-rpython_rlib_rvmprof_cintf.py
@@ -0,0 +1,14 @@
+--- rpython/rlib/rvmprof/cintf.py.orig 2017-10-03 10:49:20 UTC
++++ rpython/rlib/rvmprof/cintf.py
+@@ -47,7 +47,10 @@ else:
+ # Guessing a BSD-like Unix platform
+ compile_extra += ['-DVMPROF_UNIX']
+ compile_extra += ['-DVMPROF_MAC']
+- _libs = []
++ if sys.platform.startswith('freebsd'):
++ _libs = ['unwind']
++ else:
++ _libs = []
+
+
+ eci_kwds = dict(
diff --git a/lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_machine.c b/lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_machine.c
index b4e9cbbbeeea..6d3464f5fef5 100644
--- a/lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_machine.c
+++ b/lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_machine.c
@@ -1,20 +1,11 @@
---- rpython/rlib/rvmprof/src/shared/machine.c.orig 2017-06-05 20:40:44 UTC
+--- rpython/rlib/rvmprof/src/shared/machine.c.orig 2017-10-03 10:49:20 UTC
+++ rpython/rlib/rvmprof/src/shared/machine.c
-@@ -28,6 +28,8 @@ const char * vmp_machine_os_name(void)
- #endif
+@@ -28,7 +28,7 @@ const char * vmp_machine_os_name(void)
#elif __linux__
return "linux";
-+#elif __FreeBSD__
+ #elif __FreeBSD__
+- return "freebsd"
+ return "freebsd";
#else
#error "Unknown compiler"
#endif
-@@ -39,7 +41,7 @@ long vmp_fd_to_path(int fd, char * buffe
- char proffs[24];
- (void)snprintf(proffs, 24, "/proc/self/fd/%d", fd);
- return readlink(proffs, buffer, buffer_len);
--#elif defined(VMPROF_UNIX)
-+#elif defined(VMPROF_UNIX) && !defined(__FreeBSD__)
- fcntl(fd, F_GETPATH, buffer);
- return strlen(buffer);
- #endif
diff --git a/lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_vmp__stack.c b/lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_vmp__stack.c
new file mode 100644
index 000000000000..a5c15b62e625
--- /dev/null
+++ b/lang/pypy/files/patch-rpython_rlib_rvmprof_src_shared_vmp__stack.c
@@ -0,0 +1,10 @@
+--- rpython/rlib/rvmprof/src/shared/vmp_stack.c.orig 2017-10-03 10:49:20 UTC
++++ rpython/rlib/rvmprof/src/shared/vmp_stack.c
+@@ -29,6 +29,7 @@ static int (*unw_get_proc_name)(unw_curs
+ static int (*unw_is_signal_frame)(unw_cursor_t *) = NULL;
+ static int (*unw_getcontext)(unw_context_t *) = NULL;
+ #else
++#define UNW_LOCAL_ONLY
+ #include <libunwind.h>
+ #endif
+
diff --git a/lang/pypy/files/patch-rpython_rtyper_lltypesystem_ll2ctypes.py b/lang/pypy/files/patch-rpython_rtyper_lltypesystem_ll2ctypes.py
new file mode 100644
index 000000000000..5a199dedd5dd
--- /dev/null
+++ b/lang/pypy/files/patch-rpython_rtyper_lltypesystem_ll2ctypes.py
@@ -0,0 +1,20 @@
+--- rpython/rtyper/lltypesystem/ll2ctypes.py.orig 2017-10-03 10:49:20 UTC
++++ rpython/rtyper/lltypesystem/ll2ctypes.py
+@@ -1142,7 +1142,7 @@ if ctypes:
+ libc_name = get_libc_name() # Make sure the name is determined during import, not at runtime
+ if _FREEBSD:
+ RTLD_DEFAULT = -2 # see <dlfcn.h>
+- rtld_default_lib = ctypes.CDLL("RTLD_DEFAULT", handle=RTLD_DEFAULT, **load_library_kwargs)
++ rtld_default_lib = ctypes.CDLL("ld-elf.so.1", handle=RTLD_DEFAULT, **load_library_kwargs)
+ # XXX is this always correct???
+ standard_c_lib = ctypes.CDLL(libc_name, **load_library_kwargs)
+
+@@ -1238,7 +1238,7 @@ def get_ctypes_callable(funcptr, calling
+
+ if cfunc is None:
+ if _FREEBSD and funcname in ('dlopen', 'fdlopen', 'dlsym', 'dlfunc', 'dlerror', 'dlclose'):
+- cfunc = get_on_lib(rtld_default_lib, funcname)
++ cfunc = rtld_default_lib[funcname]
+ else:
+ cfunc = get_on_lib(standard_c_lib, funcname)
+ # XXX magic: on Windows try to load the function from 'kernel32' too
diff --git a/lang/pypy/pkg-plist b/lang/pypy/pkg-plist
index cc6de33a418b..a7913d0bfbac 100644
--- a/lang/pypy/pkg-plist
+++ b/lang/pypy/pkg-plist
@@ -22,6 +22,8 @@ bin/pypy
%%PYPY_DIR%%/include/code.h
%%PYPY_DIR%%/include/compile.h
%%PYPY_DIR%%/include/complexobject.h
+%%PYPY_DIR%%/include/cpyext_descrobject.h
+%%PYPY_DIR%%/include/cpyext_memoryobject.h
%%PYPY_DIR%%/include/cpyext_object.h
%%PYPY_DIR%%/include/cpyext_unicodeobject.h
%%PYPY_DIR%%/include/datetime.h
@@ -2125,6 +2127,7 @@ bin/pypy
%%PYPY_DIR%%/lib_pypy/cffi.egg-info/requires.txt
%%PYPY_DIR%%/lib_pypy/cffi.egg-info/top_level.txt
%%PYPY_DIR%%/lib_pypy/cffi/__init__.py
+%%PYPY_DIR%%/lib_pypy/cffi/_cffi_errors.h
%%PYPY_DIR%%/lib_pypy/cffi/_cffi_include.h
%%PYPY_DIR%%/lib_pypy/cffi/_embedding.h
%%PYPY_DIR%%/lib_pypy/cffi/_pycparser/README