mirror of
https://github.com/python/cpython.git
synced 2026-01-06 15:32:22 +00:00
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.