[pypy-commit] [Git][pypy/pypy][branch/py3.7] 10 commits: Fix loading system libraries with ctypes on macOS Big Sur.

Matti Picus foss at heptapod.net
Sat Jan 16 14:04:16 EST 2021



Matti Picus pushed to branch branch/py3.7 at PyPy / pypy


Commits:
1fc9b188 by Ricky Zhou at 2021-01-14T00:04:12-08:00
Fix loading system libraries with ctypes on macOS Big Sur.

On Big Sur, there is no longer a separate dylib file for each system
library. Instead, they have been combined into a single shared cache
file. As a result, it no longer suffices to check file existence to
determine whether a system library is present. Fix this by calling
_dyld_shared_cache_contains_path to check the dyld shared cache as well.

The changes under lib-python/ are copied from
https://github.com/python/cpython/pull/22855.

The _dyld_shared_cache_contains_path function is exposed to the ctypes
python code using CFFI, similar to what is done in other modules, such
as lib_pypy/_sha3.

Fixes issue #3314.

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
249ca2f7 by Ricky Zhou at 2021-01-14T02:35:24-08:00
minor cleanup

 - Only define _ctypes._dyld_shared_cache_contains_path if the function
   is available.
 - Do platform filtering in _ctypes/_ctypes_build.py only.

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
5cf6930e by Ricky Zhou at 2021-01-14T02:43:57-08:00
Remove unused import.

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
6c90bb88 by Dan Villiom Podlaski Christiansen at 2021-01-15T01:30:28+01:00
Fix building from scratch on Big Sur

- The proper module name for the ctypes module is
  `_ctypes._ctypes_cffi`
- Don't rely in `dict` order.

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
a1021687 by Ricky Zhou at 2021-01-15T03:02:07-08:00
Use _dyld_shared_cache_contains_path via a weak import.

This way, the _ctypes CFFI module can be built on macOS 11 and function
properly on 10.15 (and vice-versa).

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
b79dd65d by Ricky Zhou at 2021-01-15T18:51:41-08:00
Build _ctypes._ctypes_cffi on all macOS releases.

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
1c4ebed8 by Ricky Zhou at 2021-01-15T18:58:07-08:00
Enable/disable _ctypes_build.py in build_cffi_imports.py.

If a CFFI module is enabled in build_cffi_imports.py, then it must be
built, as the script will fail if it cannot import it. Move the logic
for enabling/disabling the module out from _ctypes_build.py to
build_cffi_imports.py.

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
1a23e6ef by Ricky Zhou at 2021-01-15T19:01:29-08:00
Fix typo in comment.

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
33261fe6 by Matti Picus at 2021-01-16T21:02:24+02:00
close and document branch to be merged

--HG--
branch : py3.7-big-sur-dyld-cache

- - - - -
7188209d by Matti Picus at 2021-01-16T21:03:31+02:00
merge branch which fixes ctypes library loading on macos BigSur

--HG--
branch : py3.7

- - - - -


6 changed files:

- lib-python/3/ctypes/macholib/dyld.py
- lib-python/3/ctypes/test/test_macholib.py
- lib_pypy/_ctypes/__init__.py
- + lib_pypy/_ctypes/_ctypes_build.py
- lib_pypy/pypy_tools/build_cffi_imports.py
- pypy/doc/whatsnew-pypy3-head.rst


View it on GitLab: https://foss.heptapod.net/pypy/pypy/-/compare/c63da169246ed972fe90e1c289fc2378236fa852...7188209dbcd79e67bfe8723eb925836b57c2f4aa

-- 
View it on Heptapod: https://foss.heptapod.net/pypy/pypy/-/compare/c63da169246ed972fe90e1c289fc2378236fa852...7188209dbcd79e67bfe8723eb925836b57c2f4aa
You're receiving this email because of your account on foss.heptapod.net.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/pypy-commit/attachments/20210116/65f1c6a9/attachment.html>


More information about the pypy-commit mailing list