You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As Github is shutting down the macos-12 workers, I figured I'd look at running x86 python on m1.
However, while it seems to work fine with the >= 3.11 universal binary (using arch to force running a specific architecture) as well as passing an explicit architecture to select the correct pypy or graal, the non-universal cpython binaries seem problematic e.g. 3.10 x64 fails with
Error: dyld[2227]: Library not loaded: /usr/local/opt/gettext/lib/libintl.8.dylib
Referenced from: <B5E916E8-01CA-35D0-8CA1-DB48CC803EB7> /Users/runner/hostedtoolcache/Python/3.10.15/x64/bin/python3.10
Reason: tried: '/usr/local/opt/gettext/lib/libintl.8.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/opt/gettext/lib/libintl.8.dylib' (no such file), '/usr/local/opt/gettext/lib/libintl.8.dylib' (no such file), '/usr/local/lib/libintl.8.dylib' (no such file), '/usr/lib/libintl.8.dylib' (no such file,
Error: not in dyld cache)
name: crossplatform# Controls when the workflow will runon:
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in paralleljobs:
# This workflow contains a single job called "build"check-cross:
# The type of runner that the job will run onruns-on: macos-lateststrategy:
fail-fast: falsematrix:
python-version:
- "3.x"# should be universal
- "3.10"# should be *not* universal
- "pypy-3.10"
- "graalpy-24"archname: [x86_64, aarch64]include:
- archname: x86_64arch: x86_64architecture: x64processor: i386
- archname: aarch64arch: arm64architecture: arm64processor: arm# Steps represent a sequence of tasks that will be executed as part of the jobsteps:
- uses: actions/setup-python@v5with:
python-version: ${{ matrix.python-version }}architecture: ${{ matrix.architecture }}
- name: arch(1)env:
ARCHPREFERENCE: ${{ matrix.arch }}run: | proc=$(arch python -c "import platform; print(platform.processor())") echo $proc test $proc = ${{ matrix.processor }}
Also to be clear as re-reading I think I’ve been confusing, by “3.10 specifically” I meant that as the example I tested out but would assume the issue can occur with 3.9 (and 3.8 but that’s going away) as well. Basically with the non-universal cpython binaries. I updated the post.
As Github is shutting down the macos-12 workers, I figured I'd look at running x86 python on m1.
However, while it seems to work fine with the >= 3.11 universal binary (using
arch
to force running a specific architecture) as well as passing an explicit architecture to select the correct pypy or graal, the non-universal cpython binaries seem problematic e.g. 3.10 x64 fails withHere's the workflow file I'm using: https://github.com/masklinn/ci-test/blob/main/.github/workflows/crossplatform.yml
here's the nearly successful run: https://github.com/masklinn/ci-test/actions/runs/11296863554/job/31422564472
The text was updated successfully, but these errors were encountered: