Build infrastructure for the LLVM prebuilt packages that clice depends on.
build-llvm.ymlinclice-io/clicetriggers a build with a target LLVM version (e.g.,21.1.8).- The workflow clones upstream LLVM at
llvmorg-$VERSION. - Patches from
patches/$VERSION/in this repo are applied in order. - LLVM is built across a 14-job matrix (3 OS x configurations).
release-llvm.ymlprunes unused libraries and publishes to this repo's Releases as$VERSION+rN.
See /upgrade-llvm in clice-io/clice/.claude/commands/upgrade-llvm.md.
patches/
21.1.8/
0001-codegen-fix-illegal-std-template-specializations.patch
Patches are git apply-compatible diffs against the upstream tag.
Numbered prefixes ensure deterministic order.
| # | Upstream | Description |
|---|---|---|
| 0001 | PR #160804 | Fix illegal std::less/std::equal_to specializations in RDFRegisters. Required for libc++ 22 builds. |
Releases use $VERSION+rN (e.g., 21.1.8+r2):
$VERSION= upstream LLVM tag+rNincrements when toolchain, patches, or build config change
When a release is published (e.g., 21.1.8+r2), this repo is tagged at
the commit used for that build. To reproduce:
git clone --branch "21.1.8+r2" https://github.com/clice-io/clice-llvm.gitDuring development (tag doesn't exist yet), build-llvm uses main.
Each Release should record:
| Field | Example |
|---|---|
| LLVM source | llvmorg-21.1.8 |
| Compiler | clang 22.1.8 (conda-forge) |
| libstdc++ (Linux) | 15.1.0 |
| libc++ (macOS) | 22.1.8 |
| MSVC toolset (Windows) | 14.42 |
| Patches | patches/21.1.8/0001-*.patch |
| Build CI run | clice-io/clice/actions/runs/<id> |
| clice branch | chore/llvm-prebuilt-r2@<commit> |