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

CPython < 3.11 x64 failing on m1 runners? #960

Open
masklinn opened this issue Oct 11, 2024 · 2 comments
Open

CPython < 3.11 x64 failing on m1 runners? #960

masklinn opened this issue Oct 11, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@masklinn
Copy link

masklinn commented Oct 11, 2024

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)

Here's the workflow file I'm using: https://github.com/masklinn/ci-test/blob/main/.github/workflows/crossplatform.yml

name: crossplatform

# Controls when the workflow will run
on:
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  check-cross:
    # The type of runner that the job will run on
    runs-on: macos-latest
    strategy:
      fail-fast: false
      matrix:
        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_64
            arch: x86_64
            architecture: x64
            processor: i386
          - archname: aarch64
            arch: arm64
            architecture: arm64
            processor: arm

    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      - uses: actions/setup-python@v5
        with:
          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 }}

here's the nearly successful run: https://github.com/masklinn/ci-test/actions/runs/11296863554/job/31422564472

@aparnajyothi-y
Copy link
Contributor

Hello @masklinn, Thank you for creating this issue and we will look into it :)

@masklinn
Copy link
Author

masklinn commented Oct 15, 2024

Hey @aparnajyothi-y thanks.

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.

@gowridurgad gowridurgad self-assigned this Oct 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants