]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.8] bpo-41100: Support macOS 11 Big Sur and Apple Silicon Macs (#25806)
authorNed Deily <nad@python.org>
Sun, 2 May 2021 09:18:58 +0000 (05:18 -0400)
committerGitHub <noreply@github.com>
Sun, 2 May 2021 09:18:58 +0000 (11:18 +0200)
commitb29d0a5a7811418c0a1082ca188fd4850185e290
tree2500cdee9810b2e4a32de54e0a7acb6c5701a740
parentd8ec61f91b1ead0b7212a4e5fe59d4612ff0856c
[3.8] bpo-41100: Support macOS 11 Big Sur and Apple Silicon Macs (#25806)

* bpo-41100: Support macOS 11 and Apple Silicon on Python 3.8

This is a partial backport of bpo-41100 changes `e8b1c038b14b5fc8120aab62c9bf5fb840274cb6` and `96d906b144e6e6aa96c5ffebecbcc5d38034bbda` for Python 3.8. We introduce the ability to build Python from source for `arm64` on macOS, but we do not make a promise of support. This allows us to omit support for Universal2 binaries as well as weak-linking of symbols from the macOS SDK based on the deployment target, which are larger changes much more difficult to merge.

This also includes a backport of subsequent bpo-42688 change `7e729978fa08a360cbf936dc215ba7dd25a06a08` to fix build errors with external `libffi`.

* bpo-41116: Ensure system supplied libraries are found on macOS 11 (GH-23301) (GH-23455)

On macOS system provided libraries are in a shared library cache
and not at their usual location. This PR teaches distutils to search
in the SDK, even if there was no "-sysroot" argument in
the compiler flags.
(cherry picked from commit 404a719b5127602c1a948f8e189ab61cd3f147d8)

* bpo-42504: fix for MACOSX_DEPLOYMENT_TARGET=11 (GH-23556)

macOS releases numbering has changed as of macOS 11 Big Sur.  Previously, major releases were of the form 10.x, 10.x+1, 10.x+2, etc; as of Big Sur, they are now x, x+1, etc, so, for example, 10.15, 10.15.1, ..., 10.15.7, 11, 11.0.1, 11.1, ..., 12, 12.1, etc. Allow Python to build with single-digit deployment target values. Patch provided by FX Coudert.
(cherry picked from commit 5291639e611dc3f55a34666036f2c3424648ba50)

* bpo-42504: Ensure that get_config_var('MACOSX_DEPLOYMENT_TARGET') is a string (GH-24341) (GH-24410)

* bpo-42504: Ensure that get_config_var('MACOSX_DEPLOYMENT_TARGET') is a string
(cherry picked from commit 49926cf2bcc8b44d9b8f148d81979ada191dd9d5)

Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com>
Co-authored-by: FX Coudert <fxcoudert@gmail.com>
Co-authored-by: Max Bélanger <aeromax@gmail.com>
26 files changed:
Doc/whatsnew/3.8.rst
Lib/_osx_support.py
Lib/ctypes/macholib/dyld.py
Lib/ctypes/test/test_macholib.py
Lib/distutils/tests/test_build_ext.py
Lib/distutils/unixccompiler.py
Lib/sysconfig.py
Lib/test/test_bytes.py
Lib/test/test_platform.py
Lib/test/test_unicode.py
Mac/BuildScript/build-installer.py
Mac/BuildScript/resources/ReadMe.rtf
Mac/README.rst
Mac/Tools/pythonw.c
Misc/ACKS
Misc/NEWS.d/next/macOS/2021-04-10-17-01-18.bpo-41100.N9FhqU.rst [new file with mode: 0644]
Modules/_ctypes/callbacks.c
Modules/_ctypes/callproc.c
Modules/_ctypes/ctypes.h
Modules/_ctypes/malloc_closure.c
Modules/_decimal/libmpdec/mpdecimal.h
Modules/getpath.c
configure
configure.ac
pyconfig.h.in
setup.py