Skip to content

Commit fd166a9

Browse files
committed
ci: build Python 3.8 with MacOSX 10.15 SDK from older Xcode
See the inline comment and indygreg/PyOxidizer#373 for more context. The goal of this change is to get rid of the reference to __darwin_check_fd_set_overflow to restore working Python distributions for PyOxidizer. This is far from a long-term solution as we need to handle weak symbols more robustly for Python 3.9+. But it seems appropriate for Python 3.8 builds, as the introduction of this symbol was a "regression" when we transitioned to GitHub Actions and apparently introduced the buggy SDK.
1 parent 6b7fb36 commit fd166a9

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

.github/workflows/apple.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,18 @@ jobs:
183183
- name: Build
184184
run: |
185185
# Force use of 10.15 SDK on Python 3.8, as it has trouble with macOS 11 SDK.
186+
#
187+
# There is a bug in the 10.15 SDK in Xcode 11.4.1 through at least 12.1.1 where
188+
# the __darwin_check_fd_set_overflow symbol isn't properly API guarded. This
189+
# can cause relinking problems. See
190+
# https://github.com/indygreg/PyOxidizer/issues/373#issuecomment-791979944 for
191+
# the details.
192+
#
193+
# We work around this by using the 10.15 SDK from Xcode 11.3.1, which doesn't
194+
# have the bug.
186195
if [ "${{ matrix.py }}" = "cpython-3.8" ]; then
187-
export APPLE_SDK_PATH=/Applications/Xcode_12.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
188-
export APPLE_HOST_SDK_PATH=/Applications/Xcode_12.1.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
196+
export APPLE_SDK_PATH=/Applications/Xcode_11.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
197+
export APPLE_HOST_SDK_PATH=/Applications/Xcode_11.3.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
189198
else
190199
export APPLE_HOST_SDK_PATH=/Applications/Xcode_12.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk
191200

0 commit comments

Comments
 (0)