mirror of
https://github.com/python/cpython.git
synced 2025-12-23 09:19:18 +00:00
Some checks are pending
Tests / Change detection (push) Waiting to run
Tests / Docs (push) Blocked by required conditions
Tests / Check if Autoconf files are up to date (push) Blocked by required conditions
Tests / Check if generated files are up to date (push) Blocked by required conditions
Tests / (push) Blocked by required conditions
Tests / Windows MSI (push) Blocked by required conditions
Tests / Ubuntu SSL tests with OpenSSL (push) Blocked by required conditions
Tests / Ubuntu SSL tests with AWS-LC (push) Blocked by required conditions
Tests / Android (aarch64) (push) Blocked by required conditions
Tests / Android (x86_64) (push) Blocked by required conditions
Tests / iOS (push) Blocked by required conditions
Tests / WASI (push) Blocked by required conditions
Tests / Hypothesis tests on Ubuntu (push) Blocked by required conditions
Tests / Address sanitizer (push) Blocked by required conditions
Tests / Sanitizers (push) Blocked by required conditions
Tests / Cross build Linux (push) Blocked by required conditions
Tests / CIFuzz (push) Blocked by required conditions
Tests / All required checks pass (push) Blocked by required conditions
Lint / lint (push) Waiting to run
mypy / Run mypy on Lib/_pyrepl (push) Waiting to run
mypy / Run mypy on Lib/test/libregrtest (push) Waiting to run
mypy / Run mypy on Lib/tomllib (push) Waiting to run
mypy / Run mypy on Tools/build (push) Waiting to run
mypy / Run mypy on Tools/cases_generator (push) Waiting to run
mypy / Run mypy on Tools/clinic (push) Waiting to run
mypy / Run mypy on Tools/jit (push) Waiting to run
mypy / Run mypy on Tools/peg_generator (push) Waiting to run
Co-authored-by: Steve Dower <steve.dower@microsoft.com> Co-authored-by: Chris Eibl <138194463+chris-eibl@users.noreply.github.com>
2.1 KiB
2.1 KiB
JIT Build Infrastructure
This document includes details about the intricacies of the JIT build infrastructure.
Updating LLVM
When we update LLVM, we need to also update the LLVM release artifact for Windows builds. This is because Windows builds automatically pull prebuilt LLVM binaries in our pipelines (e.g. notice that .github/workflows/jit.yml does not explicitly download LLVM or build it from source).
To update the LLVM release artifact for Windows builds, follow these steps:
- Go to the LLVM releases page.
- Download Windows artifacts for the desired LLVM version (e.g.
clang+llvm-21.1.4-x86_64-pc-windows-msvc.tar.xzandclang+llvm-21.1.4-aarch64-pc-windows-msvc.tar.xz). - Extract and repackage each tarball with the correct directory structure. For example:
Each tarball must contain a top-level directory named# For x86_64 (AMD64) tar -xf clang+llvm-21.1.4-x86_64-pc-windows-msvc.tar.xz mv clang+llvm-21.1.4-x86_64-pc-windows-msvc llvm-21.1.4.0 tar -cf - llvm-21.1.4.0 | pv | xz > llvm-21.1.4.0-x64.tar.xz rm -rf llvm-21.1.4.0 # For ARM64 tar -xf clang+llvm-21.1.4-aarch64-pc-windows-msvc.tar.xz mv clang+llvm-21.1.4-aarch64-pc-windows-msvc llvm-21.1.4.0 tar -cf - llvm-21.1.4.0 | pv | xz > llvm-21.1.4.0-ARM64.tar.xzllvm-{version}.0/. - Go to cpython-bin-deps.
- Create a new release with the LLVM artifacts.
- Create a new tag to match the LLVM version (e.g.
llvm-21.1.4.0). - Specify the release title (e.g.
LLVM 21.1.4). - Upload both platform-specific assets to the same release.
- Create a new tag to match the LLVM version (e.g.
Other notes
- You must make sure that the name of the artifact matches exactly what is expected in
Tools/jit/_llvm.pyandPCbuild/get_externals.py. - The artifact filename must include the architecture suffix (e.g.
llvm-21.1.4.0-x64.tar.xz,llvm-21.1.4.0-ARM64.tar.xz). - You must have permissions to create releases in the
cpython-bin-depsrepository. If you don't have permissions, you should contact one of the organization admins.