5 Commits

Author SHA1 Message Date
Chaim Halbert
28be65992d bpo-27987 for v3.5.10 and v3.6.15: align by 16bytes on 64bit platforms 2023-02-24 12:19:13 -07:00
Netanel Shine
48b545345e
Support MacOS with CLang 3+ for CPython 3.6.15 (#2288) 2022-03-24 16:35:57 +03:00
Pedro Fonini
7ea0408966
Fix UnicodeDecodeError for CPython 3.6.15 and 3.7.12 (#2237) 2022-02-02 15:56:12 +03:00
Christian Hammond
867909c933
Fix a regression in include paths when compiling ctypes in 3.6.15/3.7.12. (#2209)
In my previous work on getting Python 3.6.15 and 3.7.12 to compile on
Apple M1, I backported logic from newer 3.8.x releases to properly find
libffi and related files on macOS.

This regressed compilation on Linux. The include search path was
incomplete, and `ffi.h` could not be found, resulting in `ctypes` being
disabled.

There was a key difference between the old logic and new logic that led
to this regression:

1. In 3.8 and newer, `detect_ctypes()` in `setup.py` took no arguments,
   and was expected to access instance variables for the include search
   path.
2. In 3.7 and earlier, `detect_ctypes()` took the path as an argument,
   and was expected to make use of it.

The backport made use of the instance variables, overriding the provided
include path. These were not equivalent. The one on the instance was not
complete, lacking the necessary directories to find `ffi.h`. Since this
could not be found, `ctypes` support was disabled.

The fix is to simply not overwrite the variables passed to the function,
and resume using them as before.

Fixes #2207
2022-01-07 05:14:22 +03:00
Christian Hammond
152457a428
Fix Python 3.6.15 compilation on macOS arm64/M1. (#2189)
This change ports several established patches to the Python 3.6.15
build, enabling compilation on arm64/Apple M1 architectures:

1. `0001-Detect-arm64-in-configure.patch` -
   Updates configure to detect arm64 architectures (port of an existing
   pyenv patch for 2.7.18).

2. `0002-bpo-36231-Support-building-on-macOS-without-usr-incl.patch` -
   Adds macOS SDK root computation logic for determining include paths
   (port of existing Python patches introduced in 2.7.17 and 3.7.4).

3. `0003-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch` -
   Fixes Tcl/Tk support on macOS (port of an existing pyenv patch
   for 2.7.18).

4. `0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch` -
   Fixes system `ffi.h`/`libffi` path determination and usage and
   enables calling of variadic functions, fixing ctypes support
   (consolidated port of existing pyenv patches for 2.7.18 that iterate
   on this logic).

5. `0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch` -
   Updates Darwin version checks to handle macOS 11's major version
   bump (port of Python patches introduced in 3.7.0 and 3.9.0).

6. `0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch` -
   Adds arm64 to the list of allowable architectures for the
   `decimal` module (port of Python patch introduced in 3.8.10).
2021-12-20 07:09:38 +03:00