Skip to content
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

Closed
wants to merge 11 commits into from

Conversation

ronaldoussoren
Copy link
Contributor

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.

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

Copy link
Contributor

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")
Copy link
Contributor

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.

jjhelmus added a commit to jjhelmus/cpython that referenced this pull request Aug 7, 2020
Apply changes from python#21564
to the Python 3.8.5 source code
@mattip
Copy link
Contributor

mattip commented Sep 29, 2020

PyPy got a report that SCDynamicStoreCopyProxies, used in _scproxy.c is no longer available. Is there something that needs to be done in this PR to support _scproxy, or is it a false flag from some user configuration? The documentation for that function does not indicate it has been deprecated, perhaps there is a user permission setting that needs to be changed?

@lawrence-danna-apple
Copy link
Contributor

PyPy got a report that SCDynamicStoreCopyProxies, used in _scproxy.c is no longer available. Is there something that needs to be done in this PR to support _scproxy, or is it a false flag from some user configuration? The documentation for that function does not indicate it has been deprecated, perhaps there is a user permission setting that needs to be changed?

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

@mattip
Copy link
Contributor

mattip commented Sep 29, 2020

Thanks, sorry for commenting in the wrong place.

@ned-deily
Copy link
Member

This PR has been included in and superseded by GH-22855,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants