-
-
Notifications
You must be signed in to change notification settings - Fork 30.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BPO-41100: macOS branch #21564
BPO-41100: macOS branch #21564
Conversation
We should consider just dropping support for macOS 10.4 here to simplify the code.
This is support for ctypes on macOS/arm64 based on PR 21249 by Lawrence D'Anna (Apple). Changes: - changed __builtin_available tests from 11.0 to 10.15 - added test to setup.py for ffi_closure_alloc and use that in malloc_closure.c - Minor change in the code path for ffi_prep_closure_var (coding style change)
The preprocessor guard in the old version doesn't work, and isn't really needed (10.4 only supported 32-bit code where unsigned long is the same as uint32_t).
This also adds an option to stop building after compiling the 3th-party dependencies, as well as a script for archiving those dependencies. This makes it easier to work on the build. There are three changes to build-installer.py related to universal2 support: 1. Add 'universal2' information to build-installer.py; 2. Building OpenSSL for arm64 requires a patch at this time; 3. For some reason I had to patch the Tcl build to avoid a build error.
Needed because my previous workaround doesn't work anymore. This uses a private API, that should be made public later...
} | ||
} else | ||
#endif | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this will fail for variadic functions on Mac OS 10.14 and below, because it will not call either ffi_prep_cif_var
nor ffi_prep_cif
(is_macosx_at_least((10,15)) or '-arch arm64' in sysconfig.get_config_var("CFLAGS"))): | ||
self.use_system_libffi = True | ||
else: | ||
self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought you said you wanted to get rid of self.use_system_libffi
and just use the system unconditionally.
Apply changes from python#21564 to the Python 3.8.5 source code
PyPy got a report that |
That function has not been deleted. In the stack-trace you link to it looks like the library is None, so I'm guessing it's a manifestation of this |
Thanks, sorry for commenting in the wrong place. |
This PR has been included in and superseded by GH-22855, |
This PR will (but does not yet) contain all changes needed to build and run on macOS 11, including "Apple Silicon" hardware.
This merges some earlier patches as well as contributions by Apple.