Repository navigation
Bench and toolchain handle Arch's clang-libs split, live-mirror test tier (3.5.0-B146, B147, DEV24) - #12
Merged
Conversation
… (3.5.0-B146) Arch's clang 23.1.3-4 moved the builtin headers and libclang-cpp into a new clang-libs package. The bench fetched only clang and llvm-libs, so the stock compiler failed on <stddef.h> after loading the host's (sysforge) libclang-cpp through the LD_LIBRARY_PATH fallback. - stock_pkg.resolve takes optional names, each looked up on its own since one unknown target fails a whole pacman -Sp call; a local-repo hit is refused - stock_pkg.check_complete requires libclang-cpp, libLLVM and the builtin headers in the prefix before the stock binary runs - design section and release note updated Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(3.5.0-B147, DEV24) B147: Arch's clang 23.1.3-4 split libclang-cpp and the builtin headers into clang-libs, which the first toolchain build after it adds. - gates.install_adds names members the install adds; rollback removes them with pacman -Rdd before reinstalling the snapshot, which would otherwise stop on file conflicts with the old clang - the stored recovery for such a run is the online pacman -S of the suite plus the added members, since one command cannot remove and downgrade - clang-libs joins LLVM_LOCKSTEP_SUITE (Gate 3 skew, preflight, provenance) - the toolchain pacman hook gains clang-libs, polly and openmp; a test holds its targets to the suite - pacman.remove_pkgs takes nodeps DEV24: make test-live runs network-marked tests against the live mirrors (skipped unless SYSFORGE_LIVE_TESTS=1), starting with the bench's stock fetch, unpack and probe; it fails all three ways on the pre-B146 code. Own CI job, in CI_JOBS, exempt from the release preflight. DESIGN.md gains the rubric for which tier a test belongs in; CLAUDE.md points at it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…V25 to DEV34, Q1) Toolchain to kernel handoff and the real chain (DEV25, DEV26), whether to measure a sysforge-toolchain kernel against stock (Q1), and eight scenarios the audit found uncovered: update --devel, stock install over a sysforge build, the build sandbox in the VM tier, config merge, --interactive, package PGO, unattended runs and the --frozen/--thaw flags (DEV27 to DEV34). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Arch's
clang 23.1.3-4movedlibclang-cppand the builtin headers out ofclanginto a newclang-libspackage (built from thellvmpkgbase, required byclangat its exact version).3.5.0-B146:bench toolchain. The bench fetched onlyclang+llvm-libs, so the stock compiler failed on<stddef.h>. Before failing, it had loaded the host's (sysforge)libclang-cppthrough theLD_LIBRARY_PATHfallback, so a split that moved only the library would have silently timed the sysforge frontend as "stock". The bench now resolvesclang-libsas an optional package (looked up separately, since one unknown target fails a wholepacman -Sp; a local-repo hit is refused).stock_pkg.check_completealso refuses a stock prefix missinglibclang-cpp,libLLVMor the builtin headers.3.5.0-B147:run toolchain. Build, staging, the install's dependency closure and recording already handled the split (3.5.0-F2). Rollback on the first build across it did not. The cached oldclangowns filesclang-libsnow owns, sopacman -Uof the snapshot fails on file conflicts. Rollback now removes the added members (-Rdd) first. The stored sentinel recovery for such a run is the onlinepacman -S <suite> <added>, because one command can't both remove and downgrade.clang-libsjoinsLLVM_LOCKSTEP_SUITE. The toolchain pacman hook gainsclang-libs, pluspollyandopenmp, which it never had; a new test holds its targets to the suite.3.5.0-DEV24: live-mirror tier.make test-liverunsnetwork-marked tests against the live repos (skipped unlessSYSFORGE_LIVE_TESTS=1, somake testand the gates stay offline). The first is the bench's real stock fetch, unpack and probe: it checks thatlibLLVMandlibclang-cppresolve inside the stock prefix, and compiles against the builtin headers. It runs in a newliveCI job, is inCI_JOBS, and is exempt from the release preflight likee2e. DESIGN.md §Release Process gains a rubric for which test tier a fix belongs in, and CLAUDE.md points at it.Test plan
make test: 7712 passed, 4 skipped (the live tests)make test-liveon a host with sysforge-built LLVM: 4 passed. With the B146 fix reverted, 3 fail (missing files;libclang-cpp resolves outside the stock prefix;stddef.hnot found)sysforge bench toolchainon the workstation: exit 0, stock 23.1.3-4 vs sysforge 23.1.3-3, 1.29xgates,e2eand the newlivejobTest tiers per the new rubric: B146 is covered by unit tests plus the live tier, since it was a repo-contents boundary. B147 is covered by unit and stage-level tests; a real Gate 3 rollback needs a toolchain build (DEV26).
🤖 Generated with Claude Code