Commit 0685103
committed
Improve PyPy ARM64 QEMU stability with modern QEMU 8.x and JIT workarounds
Two critical improvements for PyPy ARM64 wheel builds on QEMU emulation:
1. Install modern QEMU 8.x using tonistiigi/binfmt
- Added step BEFORE docker/setup-buildx-action
- QEMU 8.x is much more stable for PyPy JIT
- Uses 'docker run --rm --privileged tonistiigi/binfmt --install all'
2. PyPy QEMU stability workarounds in both Dockerfiles
- ENV PYPY_DISABLE_JIT=1 # Disable JIT compiler
- ENV PYPY_GC_NTHREADS=1 # Single-threaded GC
- ENV PYPY_FORCE_CPU_COUNT=1 # Force single CPU
Why these changes:
- PyPy's JIT compiler can be unstable under QEMU ARM64 emulation
- Modern QEMU 8.x has much better ARM64 support than older versions
- Single-threaded execution avoids race conditions in QEMU
- Disabling JIT trades performance for stability (acceptable for CI)
Files modified:
- .github/workflows/wheels-arm64.yml: Add QEMU 8.x install step
- docker/Dockerfile.pypy-bookworm-manylinux-arm64: Add PyPy ENV vars
- docker/Dockerfile.pypy-trixie-manylinux-arm64: Add PyPy ENV vars
This should resolve the recurring PyPy ARM64 build failures on GitHub
Actions runners with QEMU emulation.1 parent e3115f0 commit 0685103
3 files changed
Lines changed: 19 additions & 0 deletions
File tree
- .github/workflows
- docker
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
104 | 111 | | |
105 | 112 | | |
106 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
9 | 15 | | |
10 | 16 | | |
11 | 17 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
9 | 15 | | |
10 | 16 | | |
11 | 17 | | |
| |||
0 commit comments