Skip to content

cmd/dist: standardize GoALLC toolchain builds - #88

Merged
zhouguangyuan0718 merged 7 commits into
goallc:go1.27.masterfrom
zhouguangyuan0718:codex/goallc-build-infrastructure
Aug 6, 2026
Merged

cmd/dist: standardize GoALLC toolchain builds#88
zhouguangyuan0718 merged 7 commits into
goallc:go1.27.masterfrom
zhouguangyuan0718:codex/goallc-build-infrastructure

Conversation

@zhouguangyuan0718

@zhouguangyuan0718 zhouguangyuan0718 commented Aug 5, 2026

Copy link
Copy Markdown

Summary

  • keep src/make.bash as the only Go toolchain build entry; the canonical LLVM payload builder now lives in llvm-project
  • make cmd/dist validate an installed payload, build/install the matching pass plugin, and invalidate plugin state from content rather than timestamps
  • inherit the Darwin deployment target from the payload manifest when make.bash configures the plugin
  • vendor the merged go-llvm Darwin static zstd support
  • add Linux amd64 CI that consumes the versioned GoALLC LLVM Release rather than rebuilding LLVM
  • validate the Release checksum, source revision, relocatable prefix, installed tools/headers/CMake package/libraries, then build Go and run plugin plus LLVM whitelist tests
  • make LLVM whitelist tests select and validate one payload instead of mixing per-tool fallbacks
  • build llvmtoolexec from the current checkout for the suite and select command-line-arguments in the wrapper, preserving recipe gcflags while guaranteeing LLVM plus default lowering
  • document the payload, Release, ccache, make.bash, test-tool selection, verification, and upgrade contracts

Validation

  • canonical llvm/utils/goallc/build-payload.bash completed a full Debug X86/AArch64 install locally with ccache enabled
  • direct dynamic src/make.bash completed against that payload
  • direct static make.bash completed against the same installed payload before the release split
  • pass plugin CTest: 58/58 passed
  • go test -count=1 cmd/dist cmd/llvmtoolexec
  • real llc/plugin TestLLVMInitTaskOrder smoke test
  • actionlint v1.7.7 and git diff --check
  • representative LLVM runtime recipes passed with attached, all-pattern, and split-form gcflags
  • representative runoutput and codegen tests passed while logging the configured installed payload and fresh wrapper

The Go CI downloads goallc-llvm23.1.0-v1-linux-amd64.tar.zst and its companion SHA-256 file. The Release build may still be publishing while this PR is reviewed; the workflow intentionally does not fall back to system LLVM or rebuild LLVM in the Go repository. Full whitelist feature failures were intentionally left out of scope for the test-mechanism cleanup.

@zhouguangyuan0718
zhouguangyuan0718 force-pushed the codex/goallc-build-infrastructure branch 2 times, most recently from 830911f to ed86a50 Compare August 5, 2026 16:32
@zhouguangyuan0718
zhouguangyuan0718 force-pushed the codex/goallc-build-infrastructure branch from a714b18 to 1673b4c Compare August 6, 2026 00:02
@zhouguangyuan0718
zhouguangyuan0718 merged commit ecc668a into goallc:go1.27.master Aug 6, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant